opengl - 存根 glOrthof 以使用 glOrtho
问题描述
我正在编写同时针对嵌入式 VxWorks 653 系统和 Windows 的图形代码(VxWorks 是我们提供的主要目标,Windows 是我们要测试的桌面环境)。
我们的VxWorks 653图形驱动使用glOrthof,没有glOrtho,所以我们的图形渲染代码使用glOrthof。为了在 Windows 上保持一致性,我在设置期间执行了此操作:
glOrthof = (PFNGLORTHOFPROC)wglGetProcAddress("glOrthof");
获取我们的 NVidia 驱动程序支持的 glOrthof 的 OpenGL 扩展功能。
这适用于 NVidia 驱动程序,但我们的一些开发人员仍坚持使用英特尔驱动程序。对于他们,我尝试了这个:
glOrthof = (PFNGLORTHOFPROC)&graphics_support_glOrthof;
static void WINAPI graphics_support_glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
{
glOrtho((GLdouble)left, (GLdouble)right, (GLdouble)bottom, (GLdouble)top, (GLdouble)zNear, (GLdouble)zFar);
}
当我们的图形渲染循环调用 glOrthof 时,这个存根被命中,我可以看到(通过函数断点)glOrtho 在 opengl32.dll 中被调用,并且我传入的参数匹配。但是,我的显示器完全是白色的,我得到了值 1281 (GL_INVALID_VLAUE) 作为来自 glGetError() 的返回码。
我解决这个问题的解决方案是简单地
#define glOrthof glOrtho
在我的 Windows 目标上,但我想知道为什么这个存根失败了?
解决方案
推荐阅读
- c - 查找 C167 Siemens 的编译器
- matlab - 具有约束的classdef的Matlab构造
- r - 连接到 Azure SQL - 基于令牌
- python - 无法让我的 python 脚本替换 \u 代码
- python - 怎么修?TypeError:“HTTPConnection”对象不可调用
- regex - Groovy:如何检查列表是否包含另一个列表中包含正则表达式格式的项目
- html - 向上滚动时无法让导航栏隐藏内容
- c++ - 调用 void 函数时出错
操作员 - python - 将 HTTP 上传的数据返回到 sanic 服务器
- python - 如何在 Discord.py 中发布公告命令?