我在GLFW3 documentation中寻找本机API访问以获取HWND
,但它不在我的GLFW/glfw3.h
文件中。是否有任何#define
可以由编译器找到?我也无法使用text-finder
在文件本身中手动找到它,那么如何获得它?
PS。我无法标记glfw3
。
编辑:
码:
#define GLFW_INCLUDE_GLU
#define GLFW_EXPOSE_NATIVE_WGL
#define GLFW_EXPOSE_NATIVE_WIN32
#include <GL/GLFW/glfw3native.h>
#include <GL/GLFW/glfw3.h>
#include <ctime>
#include <cstdlib>
...
int main()
{
//glfw setup
...
//bla bla bla
...
//all I want to do is to call this one
ScreenToClient( glfwGetWin32Window(window), &point);
}
最佳答案
在对您的问题感到困惑之后,我尝试了一下,我认为包含顺序就是您的问题。一个最小的代码示例,可以在Linux上模仿您在Windows上尝试执行的操作,可以按预期进行编译和运行:
#define GLFW_EXPOSE_NATIVE_X11
#define GLFW_EXPOSE_NATIVE_GLX
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>
int main (int argc, char ** argv)
{
glfwInit();
GLFWwindow* window = glfwCreateWindow (256, 256, "GLFW", nullptr, nullptr);
glfwGetX11Window(window);
glfwTerminate();
return 0;
}
编辑:添加了
glfwTerminate()
的倾斜,以进行适当的清理。请注意,当然应该进行适当的错误检查,但是为了说明一个最小的示例,以上内容就足够了。