我目前正在遵循一个教程,其中有创建窗口的初始化代码
private void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
errorCallback = GLFWErrorCallback.createPrint(System.err);
glfwSetErrorCallback(errorCallback);
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
// Configure our window
glfwDefaultWindowHints(); // optional, the current window hints are already the default
glfwWindowHint(GLFW_VISIBLE, GL_FALSE); // the window will stay hidden after creation
glfwWindowHint(GLFW_RESIZABLE, GL_TRUE); // the window will be resizable
int WIDTH = 300;
int HEIGHT = 300;
// Create the window
window = glfwCreateWindow(WIDTH, HEIGHT, "Hello World!", NULL, NULL);
if (window == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(window, keyCallback = new GLFWKeyCallback() {
@Override
public void invoke(long window, int key, int scancode, int action, int mods) {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in our rendering loop
}
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
window,
(vidmode.width() - WIDTH) / 2,
(vidmode.height() - HEIGHT) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(window);
// Enable v-sync
glfwSwapInterval(1);
// Make the window visible
glfwShowWindow(window);
}
注意< code > glfwWindowHint(GLFW _ VISIBLE,GL _ FALSE);提示被禁用,那么在创建窗口、设置按键回调、绑定opengl上下文之后,它又被启用< code > glfwShowWindow(window);
留档不建议这样做,删除两行似乎不会改变任何事情。为什么首先禁用提示?
教程:https://lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content/chapter1/chapter1.html
它禁用了Visability,因此它可以设置大小、更改位置和初始化上下文,而无需客户端见证。从GLFW文档中的窗口可视性部分:
窗口模式窗口最初可以使用GLFW_VISIBLE窗口提示创建隐藏。创建隐藏的窗口在显示之前对用户完全不可见。如果您需要在显示窗口之前进一步设置窗口,例如将其移动到特定位置,这可能会很有用。
你的程序遵循这个确切的例子
glfwSetWindowPos(
window,
(vidmode.width() - WIDTH) / 2,
(vidmode.height() - HEIGHT) / 2
);
我正试图在Android上创建一个360视频球体(就像纸板上的那个)。我在OpenGL ES1中绘制了一个球体,并用一张照片完成了这项工作。0,然后将纹理附加到它。之后,我可以使用传感器值来旋转球体。 然而,我不知道如何将图片更改为视频。我尝试过使用texSubImage2D()逐帧渲染,但速度非常慢。我的视频可能会达到4k左右的密度,因为我需要一个好的质量,即使只显示了一小部分。 我读过一些关于
如果我使用SDL,我会有任何已知的限制吗?(我经常读到SDL有点僵硬)
我发现需要绑定到的,设置如下: 在设计时。但是,我需要从具有不同数据上下文的子控件绑定到它: 由于 是为 设置的,因此我的 的数据设置为收款人集合中的各个对象。我的视图有一个属性,我需要从转换器中的引用该属性来确定项目的可见性。 我可以根据对象的属性设置可见性,如下所示: 但是我真正需要绑定到的是的的属性。有没有办法从子控件中获取该上下文?我使用的是WinRT,所以我没有绑定源的好处。 编辑 正如
我目前正在考虑处理OpenGL上下文重新创建。 我使用GLFW库创建OpenGL上下文,GL3W用于扩展加载器。 我的问题很简单:在重建上下文时,我是否应该考虑再次调用gl3wInit()?
基本上,我有一个带有DataTemplate选择器的ListView,它基于ListView项使用特定的DataTemplate。 现在,在DataTemplate中,我有一个带有命令的按钮,应该绑定到父视图(或ListView)本身的ViewModel上。 注意,我只想绑定按钮的Command属性,因为文本和其他属性需要绑定到按钮的当前绑定上下文。 DataTemplate的BindingCon
问题内容: 我正在使用一个有趣的世界编辑器,并使用Java和JLWGL。到目前为止一切正常。现在,我尝试创建一个窗口,可以在其中添加要使用的地形或新模型。问题是,当我尝试从主界面创建地形并创建并显示该地形时,但是当我尝试通过按钮事件监听器调用该地形时,出现错误: 在当前线程中未找到OpenGL上下文。 我基本上知道为什么会得到错误。我用来获取输入并单击按钮的框架没有opengl上下文。 现在的问题