如何使用GLFW确定OpenGL 3.3窗口的可绘制区域的大小
How to determine size of the drawable area of an OpenGL 3.3 window using GLFW
我正在尝试使用GLFW和OpenGL 3.3创建一个游戏/应用程序。我希望能够检测到与窗口侧面的碰撞,但窗口的可绘制区域似乎与使用glfwCreateWindow()
设置的窗口大小不同。
所以我的问题是,如何获得可绘制区域,即窗口的大小减去边框?我宁愿不必使用WinAPI,使其更跨平台,而glfwGetWindowFrameSize()
在GLFW 3.1中,它还没有完成。
编辑:我的问题让我觉得我需要使用GLFW来实现这一点,但这不是真的。我只是想注意,我正在使用GLFW作为窗口/输入处理程序。
您需要glfwGetFramebufferSize
。
glfwGetVideoMode
返回指定监视器的视频模式,而不是窗口的大小。对于全屏窗口,它们恰好是相同的,但对于其他窗口,它们可能非常不同。
从外观上看,您不需要来知道窗口的大小,我假设是以像素为单位?如果你想对窗口的边界进行碰撞检测,你只需要检测顶点的NDC,一旦它达到x或y=(-1,1),你就会发生碰撞。尽管如此,如果您想获得OpenGL上下文的像素大小,请使用glfwGetVideoMode()
。
相关文章:
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 将QGraphicsItem的移动区域限制在多边形区域内
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 在绘制信号上保留绘图区域"图像"
- Allegro 5如何绘制缩放位图区域
- 绘制轮廓,同时删除较小的区域
- 如何在C++中绘制纹理/位图的区域
- 如何在MFC对话框的静态区域中绘制图像
- 如何使用GLFW确定OpenGL 3.3窗口的可绘制区域的大小
- 在gtk绘图区域中单击时选择绘制的线
- 需要用android opencv在柜台区域绘制一个矩形
- GTKMM::在GTk::绘图区域使用单个Gdk::PixBuf绘制多个图像
- 是否有一种方法可以在Qt中重新绘制区域
- 在雷达图像上绘制区域而不是点
- 在窗口中绘制之前是否有必要使更新区域无效?