首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >更新的显卡不更新opengl32.dll

更新的显卡不更新opengl32.dll
EN

Stack Overflow用户
提问于 2019-04-07 06:22:19
回答 1查看 612关注 0票数 1

上周我一直在尝试在正方形上绘制纹理,但没有效果。正方形绘制,但没有纹理。我使用的是OpenGL,Delphi XE3和Windows10。

问题出在glGenerateMipmap函数上。我的旧版本的opengl没有MipMap函数。所以我把我的卡换成了新的(OGL4.6),现在有了这些功能。但它仍然不起作用。

问题是,旧的opengl32.dll没有改变,它仍然没有功能。

所以问题是:程序如何找到MipMap函数?有没有可能用新功能更新opengl32.dll?或者我的程序需要引用一些其他的dll?或者应该更新winapi.opengl单元?

根据khronos的说法,除非设置了MipMap,否则不会绘制纹理。https://www.khronos.org/opengl/wiki/Common_Mistakes#Creating_a_complete_texture

我尝试使用以下命令链接到DLL中的glGenerateMipmap函数:

代码语言:javascript
代码运行次数:0
运行
复制
  procedure glGenerateMipmap (target: GLenum); stdcall; external OpenGL32; 

它将进行编译,但在运行时会中止。

EN

回答 1

Stack Overflow用户

发布于 2019-04-07 07:01:59

opengl32.dll没有改变是件好事,因为它不应该改变。opengl32.dll是一个操作系统组件。唯一应该接触到此文件的是Windows本身,例如,在更新期间。

Windows提供了一个通用的OpenGL实现,它应该始终可用(可以求助于软件渲染)。这个通用实现只支持API1.1,这就是为什么opengl32.dll只导出基本的OpenGL 1.1API函数。除此之外,可以将其他OpenGL实现以可安装客户端驱动程序的形式插入到系统中。在为您的图形处理器安装驱动程序时,图形处理器供应商通常会安装并注册这样的ICD,以便使用您的图形处理器运行OpenGL。当通过WGL APIs创建OpenGL上下文时,操作系统将look for and load一个合适的ICD,并将您的OpenGL上下文设置为与此ICD对话。导出到opengl32.dll中的ICD1.1API函数实际上只是转发到OpenGL。

ICD可以(并且通常确实)在通过opengl32.dll公开的基本OpenGL 1.1API之上提供额外的功能。要访问这些附加功能,您必须通过wglGetProcAddress()手动加载相应的函数。由于编写所有代码以例如加载整个OpenGL 4.6核心配置文件API相当单调乏味,因此通常使用诸如GLEW或glad之类的uses a library来处理该…

对于Delphi来说,我猜dglOpenGL可能会很有趣。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55553964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档