小编App*_*ell的帖子

如何在Retina Display上使JavaFX应用程序不模糊

MacBook Pro Retina屏幕上的JavaFX应用程序显得模糊.有没有办法显示应用程序锐利?在博客文章/评论中提到目前的情况如此:http://fxexperience.com/2012/11/retina-display-macbook-pro/

这是fxml的示例:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import javafx.scene.control.*?>


<VBox xmlns:fx="http://javafx.com/fxml">
    <MenuBar>
        <Menu text="File">
            <items>
                <MenuItem text="Exit"/>
            </items>
        </Menu>
    </MenuBar>
</VBox>
Run Code Online (Sandbox Code Playgroud)

示例代码:

import javafx.application.Application
import javafx.fxml.FXMLLoader
import javafx.scene.Scene
import javafx.scene.layout.VBox
import javafx.scene.paint.Color
import javafx.stage.Stage

object CreateFX extends App {
    override def main(args: Array[String]) = {
      println("CreateFX starting up...")
      Application.launch(classOf[CreateFX], args: _*)
    }
}

class CreateFX extends Application {
    def start(stage: Stage): Unit = {
        println("start "+stage)

        stage.setTitle("CreateFX")

        val root: VBox = FXMLLoader.load(getClass().getResource("MainScreenVBox.fxml"))//new VBox

        val scene …
Run Code Online (Sandbox Code Playgroud)

scala javafx retina-display javafx-2

9
推荐指数
1
解决办法
1616
查看次数

AWS APIGateway CORS for Lambda Proxy不适用

我已经使用POSTLambda Proxy方法设置了一个APIGateway资源,并OPTIONS为CORS头设置了一个方法.

OPTIONS方法返回以下标头:

$ curl -i -X OPTIONS https://xxxxxxxxx.execute-api.eu-central-1.amazonaws.com/dev/endpoint1

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 0
Connection: keep-alive
Date: Sat, 18 Feb 2017 17:07:17 GMT
x-amzn-RequestId: xxxx
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
Access-Control-Allow-Methods: POST,OPTIONS
X-Cache: Miss from cloudfront
Via: 1.1 xxxx.cloudfront.net (CloudFront)
X-Amz-Cf-Id: xxxx==
Run Code Online (Sandbox Code Playgroud)

然而,当我POST使用生成的Javascript SDK 调用端点时,Chrome浏览器控制台会显示以下错误:

XMLHttpRequest cannot load https://xxxx.execute-api.eu-central-1.amazonaws.com/dev/endpoint1.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8080' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

以及Firefox:

Cross-Origin Request Blocked: 
The Same …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services aws-lambda aws-api-gateway

8
推荐指数
1
解决办法
5514
查看次数

根据与相机的距离调整点精灵的大小

我正在使用仅用于大学的核心OpenGL 3.3编写Wolfenstein 3D的克隆,我遇到了精灵的一些问题,即让它们根据距离正确缩放.

据我所知,以前版本的OGL实际上会为你做这件事,但是这个功能已被删除,而我所有重新实现它的尝试都导致完全失败.

我目前的实施方式是可以在距离上通过,在中距离时不是太破旧,而在近距离时也是如此.

主要问题(我认为)是我对我正在使用的数学没有理解.
精灵的目标大小略大于视口,因此当你接近它时它应该"走出画面",但事实并非如此.它变小了,这让我很困惑.
我录制了一个小视频,以防单词不够.(我在右边)

预期结果 实际结果

谁能指引我到我错的地方,并解释原因?

代码:
C++

// setup
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
glEnable(GL_PROGRAM_POINT_SIZE);

// Drawing
glUseProgram(StaticsProg);
glBindVertexArray(statixVAO);
glUniformMatrix4fv(uStatixMVP, 1, GL_FALSE, glm::value_ptr(MVP));
glDrawArrays(GL_POINTS, 0, iNumSprites);
Run Code Online (Sandbox Code Playgroud)

顶点着色器

#version 330 core

layout(location = 0) in vec2 pos;
layout(location = 1) in int spriteNum_;

flat out int spriteNum;

uniform mat4 MVP;

const float constAtten  = 0.9;
const float linearAtten = 0.6;
const float quadAtten   = 0.001;

void main() {
    spriteNum = spriteNum_;
    gl_Position = MVP * vec4(pos.x + 1, pos.y, 0.5, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl point-sprites opengl-3

7
推荐指数
2
解决办法
7677
查看次数

如何从成员函数指针中删除const限定符

我正在使用包含以下代码的库:

template <typename M>
void _register_member(lua_State *state,
                      const char *member_name,
                      M T::*member) {
    std::function<M(T*)> lambda_get = [member](T *t) {
                //^ error here
        return t->*member;
    };
    //...
Run Code Online (Sandbox Code Playgroud)

但是,此代码不接受const成员函数指针.传递它们会产生错误Function cannot return function type 'void () const'或const成员函数的任何类型.

如何从传递的成员函数中删除const限定符或如何应用std::remove_const

c++ templates pointers function-pointers c++11

7
推荐指数
1
解决办法
1535
查看次数

映射父对象内的对象数组 - Mantle iOS

我有一些看起来像这样的json数据:

    {
       items: [
                { // object 1
                  aProperty: "aValue",
                  anotherProperty: "anotherValue",
                  anObjectProperty: {}
                 },
                 { //object 2
                  aProperty: "aValue",
                  anotherProperty: "anotherValue",
                  anObjectProperty: {}
                 } 
       ]
    }
Run Code Online (Sandbox Code Playgroud)

我想使用Mantle将这个json映射到两个对象的数组中.

这将如下所示:

    @interface MyObject : MTLModel <MTLJSONSerializing>

    @property (nonatomic, strong) NSString *myProperty;
    @property (nonatomic, strong) NSString *anotherProperty;
    @property (nonatomic, strong) NSObject *anObject;

    @end

    @implementation MyObject

    + (NSDictionary *)JSONKeyPathsByPropertyKey {
        return @{
                 @"myProperty": @"myProperty",
                 @"anotherProperty" : @"anotherProperty",
                 @"anObject": @"anObject"
                 };
    }

    @end
Run Code Online (Sandbox Code Playgroud)

但是,这需要我去json中找到"items"键,然后解析该键内部的内容.

相反,我希望Mantle只为我绘制整个对象.所以,我提出了这个解决方案:

    @interface MyObjects : MTLModel <MTLJSONSerializing>

    @property (nonatomic) NSArray *items;

    @end …
Run Code Online (Sandbox Code Playgroud)

objective-c ios github-mantle

7
推荐指数
1
解决办法
5842
查看次数

Dev C++编译错误,权限被拒绝

我想使用dev c ++编译器编译代码程序,但我的编译器没有编译我的代码.程序包含两个文件,一个是头文件,另一个是实现.cpp文件.我想编译的代码是正确和有效的,但它没有在我的电脑上编译(Windows 7)请帮忙

我得到的错误是

  Permission denied 
  ld returned 1 exit status 
  C:\Makefile.win [Build Error]  [Project1.exe] Error 1 
Run Code Online (Sandbox Code Playgroud)

这是我的编译日志

Compiler: Default compiler
Building Makefile: "C:\Makefile.win"
Executing  make...
make.exe -f "C:\Makefile.win" all
g++.exe -c testProgDoublyLinkedList.cpp -o testProgDoublyLinkedList.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"   

g++.exe testProgDoublyLinkedList.o  -o "Project1.exe" -L"C:/Dev-Cpp/lib" -mwindows  

C:\Dev-Cpp\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot open output file Project1.exe: Permission denied
collect2: ld returned 1 exit status

make.exe: *** [Project1.exe] Error 1

Execution terminated
Run Code Online (Sandbox Code Playgroud)

c++ compilation dev-c++

6
推荐指数
2
解决办法
7万
查看次数

'sizeof'无效应用于不完整类型'SDL_Window'

创建指向SDL_Window结构的指针并将其分配给shared_ptr,会产生上述错误.

课程的一部分:

#include <SDL2/SDL.h>

class Application {
    static std::shared_ptr<SDL_Window> window;
}
Run Code Online (Sandbox Code Playgroud)

定义:

#include "Application.h"
std::shared_ptr<SDL_Window> Application::window{};

bool Application::init() {  
    SDL_Window *window_ = nullptr;
    if((window_ = SDL_CreateWindow(title.c_str(),
                                  SDL_WINDOWPOS_UNDEFINED,
                                  SDL_WINDOWPOS_UNDEFINED,
                                  window_width,
                                  window_height,
                                  NULL)
        ) == nullptr) {
        std::cerr << "creating window failed: " << SDL_GetError() << std::endl;
    }

    window.reset(window_);
}
Run Code Online (Sandbox Code Playgroud)

错误出现在'window.reset()'.是什么原因以及如何解决此问题?

c++ struct sdl shared-ptr

6
推荐指数
2
解决办法
1250
查看次数

lua_open使用luaJIT返回null

使用最近的luaJIT lua_open返回null.常规的lua库不会发生这种情况.

lua_State *L = lua_open();
std::cout << L << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出: 0x0

我怎样才能让luaJIT工作?

SSCCE:

#include <iostream>
#include <luajit-2.0/lua.hpp>
//linked library: libluajit-5.1.a

int main(int argc, const char * argv[])
{
    lua_State *L = luaL_newstate(); // lua_open();
    std::cout << L << std::endl; // 0x0
}
Run Code Online (Sandbox Code Playgroud)

其他信息:从源内置在OSX 10.9(尝试都2.0.2和从GIT)与makemake install.使用编译器:

$ cc --version
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

(使用luajit命令行应用程序luajit工作正常,测试脚本可以正常执行.)

c++ lua embedding luajit lua-api

6
推荐指数
1
解决办法
2156
查看次数

Freetype和OpenGL的问题

嘿,我在装载Freetype 2库的openGL中绘制文本时遇到了一个奇怪的问题.这是我所看到的截图.

例如http://img203.imageshack.us/img203/3316/freetypeweird.png

这是我的代码位,用于加载和呈现我的文本.

class Font
{
    Font(const String& filename)
    {
       if (FT_New_Face(Font::ftLibrary, "arial.ttf", 0, &mFace)) {
          cout << "UH OH!" << endl;
       }

       FT_Set_Char_Size(mFace, 16 * 64, 16 * 64, 72, 72);
    }

    Glyph* GetGlyph(const unsigned char ch)
    {
       if(FT_Load_Char(mFace, ch, FT_LOAD_RENDER))
          cout << "OUCH" << endl;

       FT_Glyph glyph;

       if(FT_Get_Glyph( mFace->glyph, &glyph ))
          cout << "OUCH" << endl;

       FT_BitmapGlyph bitmap_glyph = (FT_BitmapGlyph)glyph;

       Glyph* thisGlyph = new Glyph;
       thisGlyph->buffer = bitmap_glyph->bitmap.buffer;
       thisGlyph->width = bitmap_glyph->bitmap.width;
       thisGlyph->height = bitmap_glyph->bitmap.rows;

       return thisGlyph;
    } …
Run Code Online (Sandbox Code Playgroud)

c++ opengl fonts text freetype

5
推荐指数
1
解决办法
5768
查看次数

什么是glUniformBlockBinding用于?

假设我有一个在索引处带有UniformBlock的着色器程序0.

绑定UniformBuffer以下显然足以将UniformBuffer绑定到块:

glUseProgram(program);
glBindBuffer(GL_UNIFORM_BUFFER, buffer);
glBindBufferBase(GL_UNIFORM_BUFFER, 0, buffer);
Run Code Online (Sandbox Code Playgroud)

glUniformBlockBinding当我将缓冲区绑定到与着色器程序中使用的索引不同的索引时,我只需要使用它.

//...
glBindBufferBase(GL_UNIFORM_BUFFER, 1, buffer)
glUniformBlockBinding(program, 0, 1); // bind uniform block 1 to index 0
Run Code Online (Sandbox Code Playgroud)

我明白了吗?glUniformBlockBinding如果我使用缓冲区在适当的块具有不同索引的不同程序中,我是否只需要使用?

opengl

5
推荐指数
1
解决办法
2678
查看次数