我对帧缓冲区对象 (FBO) 的命令 glGenFramebuffersEXT 有“访问冲突”:
void TGLForm::DrawScene()
{
wglMakeCurrent(ghDC, ghRC);
glEnable(GL_TEXTURE_2D);
GLuint framebuffer, texturefbo;
GLenum status;
glGenFramebuffersEXT(1, &framebuffer); // access violation here
我创建了一个有关 FBO 的帮助线程,检查了 glext.h 初始化是否正常,并以这种方式在预处理器行中重复:
#include "glext.h"
#include "wglext.h"
extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)wglGetProcAddress("glGenFramebuffersEXT");
extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)wglGetProcAddress("glBindFramebufferEXT");
extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)wglGetProcAddress("glFramebufferTexture2DEXT");
extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)wglGetProcAddress("glCheckFramebufferStatusEXT");
extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)wglGetProcAddress("glGenRenderbuffersEXT");
extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)wglGetProcAddress("glBindRenderbufferEXT");
extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)wglGetProcAddress("glRenderbufferStorageEXT");
extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)wglGetProcAddress("glFramebufferRenderbufferEXT");
=> 访问冲突仍然存在。
另一个帮助线程引导我下载 NVIDIA OpenGL SDK,因为我有一张 GT9800 Nvidia 卡:它没有消除“访问冲突”。
我尝试在 Borland Builder 6 中使用 GLee 和 Glew :
=> 有人知道我如何成功地将 Glew“coff”lib 转换为 Borland Builder 格式“omf”吗?
=> 我们如何将“导入库”转换为“静态库”?
-
下载并使用GLEW.h,.c源代码
#define GLEW_STATIC
#include "gl\glew.c" // ~900KB file !!!
- 我在 borland 源中使用它很多年了,没有任何问题
- 如果包含路径有问题,那么只需使用相对路径
-
不要忘记先初始化 glew
glewInit();
-
检查您是否有 FBO 支持
if (glGenFramebuffersEXT==NULL) error ...
-
固定基地运营基地使用情况
- 如果一切顺利的话
- 那么你仍然可能会遇到访问冲突!
- 如果 FBO 使用不当...
- 但这还不是你的情况......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)