草庐IT

windows - wglext - 扩展未安装在 OpenGL 上下文中

我正在尝试使用wglSwapIntervalEXT(intinterval)通过WGL_EXT_swap_control在OpenGl中禁用垂直同步。我试图包含wglextheader,但经过大量搜索后,它似乎没有安装在我的电脑上(使用opengl扩展查看器找到它)。我已尝试安装windowssdk并更新.net框架,但仍然无法安装此扩展。无论如何要包括这个。我的显卡是nVidiaGTX770m。或者是否有更简单的方法来禁用垂直同步。谢谢 最佳答案 因此,一位friend成功地解决了这个问题。因此,如果有人需要帮助,这应该与您正在寻

c++ - 在 Windows 上测量 Opengl 的运行时间?

这个问题在这里已经有了答案:glCreateShaderiscrashing(5个答案)关闭6年前。我想测量opengl中渲染函数的运行时间。我用nupenglVisualStudio2015上的Nuget插件。在下面的代码中,我想测量绘制三角形的时间。但是,它在glGenQueries(2,queryID)处崩溃请在下方或github上查看我的代码#include#include#includevoiddisplay(void){GLuint64startTime,stopTime;unsignedintqueryID[2];//generatetwoqueriesglGenQuer

c++ - 手动检索和存储指向 OpenGL 函数的指针时出现问题

我在手动检索和存储指向OpenGL函数的指针时遇到了一些麻烦,这是我的代码的“简化片段”版本:#ifdefWIN32#include#endif#includeclassCGLManager{public://ManagerfunctionsboolGetAnyGLFuncAddress(constchar*_cName,void*_pFunc);boolLoadFunctions(void);//OpenGLfunctionsvoid(APIENTRY*glBegin)(GLenummode);void(APIENTRY*glEnd)(void);void(APIENTRY*glVe

c++ - OpenGL——多个 glDrawArrays() 调用只显示第一次的结果?

所以我遍历了几个网格,每个网格都存储在自己的GL_ARRAY_BUFFER中,但它们共享相同的glVertexAttribPointer结构。我在for循环中遍历每个渲染/绘制过程:if(sConfig.mRendering.isRenderTypeActive(RENDER_TYPE_SINGLE_MESH)||sConfig.mRendering.isRenderTypeActive(RENDER_TYPE_TWO_MESH)){constintmesh_count=sConfig.mRendering.isRenderTypeActive(RENDER_TYPE_TWO_MESH

c - wglCreateContext 失败,错误为 "The pixel format is invalid"

我正在尝试使用上下文访问整个屏幕。这是我当前的代码(目前只有这个文件):#include#include#include#include#includeintmain(intargc,char*argv[]){HDChdc=GetDC(NULL);HGLRChglrc;hglrc=wglCreateContext(hdc);//Handleerrorsif(hglrc==NULL){DWORDerrorCode=GetLastError();LPVOIDlpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAG

windows - 如何让自定义视频媒体/流接收器在媒体基础中请求 RGB32 帧?

我正在尝试为OpenGL应用程序中的视频播放制作自定义媒体接收器(没有各种WGL_NV_DX_INTEROP,因为我不确定我的所有目标设备是否都支持它)。到目前为止,我所做的是编写一个接受RGB32样本的自定义流接收器,并使用媒体session设置播放,但是我在播放mp4文件的初始测试中遇到了问题:生成的拓扑中的一个(或多个)MFT不断失败,错误代码为MF_E_TRANSFORM_NEED_MORE_INPUT,因此我的流接收器从未接收到样本请求了几个样本后,媒体session收到事件MF_E_ATTRIBUTENOTFOUND,但我仍然不知道它来自哪里但是,如果我将流接收器配置为接收

c++ - 如何正确添加状态栏?

目前它漂浮在我渲染的窗口之上,我认为这不太好,原因如下:1)我浪费渲染时间来渲染不可见的东西。2)当我无论如何都不会每帧更新整个状态栏时,它必须每帧再次渲染。那么我如何创建一个窗口,在其中为我的状态栏留出空间,而我的任何OpenGL内容都无法在该区域呈现?此时我只是调整我的视口(viewport),为状态栏创建空白空间,但这会导致我当前的做事方式出现一些问题。我必须让我的代码看起来更困惑才能让它工作。 最佳答案 http://www.gamedev.net/community/forums/topic.asp?topic_id=29

c++ - OpenGL - 使用 glTexImage2d 用纹理填充整个屏幕

两个问题——在OpenGL中使用纹理填充整个窗口的最佳方法是什么?我想使用glTexImage2D接收包含颜色数据的整数数组,我该怎么做呢?(我在glTexImage2D上找到了几页引用资料,但使用它的教程会很棒)澄清:我以前做过纹理。我只是需要这两个特定部分的帮助。 最佳答案 glTexImage2D只是上传纹理数据,仅此而已。获得纹理后,绘制一个四倍于屏幕大小的纹理映射,然后将纹理像素绘制到屏幕上。为此通常使用正射投影。 关于c++-OpenGL-使用glTexImage2d用纹理填

windows - 在 AutoIt 中捕获带窗口的 OpenGL 窗口的屏幕截图?

对于我的图形类,我需要以像素完美的方式匹配OpenGL示例输出。我想如果我可以生成示例,向它发送一些输入,然后截取确切的OpenGL区域的屏幕截图,对我的区域执行相同的操作,然后比较这些屏幕截图,那会很酷。我还认为AutoIT之类的东西是执行此类操作的最简单方法。我知道我可以使用截屏功能,但我不确定如何获得窗口OpenGL区域的确切坐标和大小(不是标题栏/周围窗口的东西)。如果有人能帮助我,那就太棒了。或者,如果有人能想到比AutoIt更简单的解决方案,并且能为我指明正确的方向,那也太好了。编辑:我也无权访问示例输出程序的源代码。 最佳答案

windows - Windows 内部的 OpenGL

我正在Windows上创建一个OpenGL应用程序。我不能使用GLUT,因为我想渲染到多个窗口。我知道如何使用wgl来做到这一点,但它非常困惑,我想知道引擎盖下发生了什么。首先,我必须创建一个具有所需像素格式的窗口。然后我将此窗口连接到OpenGL,一切正常。驱动程序如何知道在哪里渲染?窗口数据存储在哪里?我正在寻找某种解释,但找不到任何好的解释。 最佳答案 Iknowhowtodoitbyusingwgl,butitisverymessyandIwouldliketoknowwhatishappeningunderthehood.