C++ SDL和OpenGL的版本和实现是什么;我在用
我下载了SDL1.2.14 在Windows7上 我已经安装了Mobility Radeon X1800驱动程序 <我使用微软Visual C++ 2010 Express。< /P> 我在“VC++目录”中添加了SDL包含和库目录 我添加了以下附加依赖项: opengl32.lib; glu32.lib; SDL.lib; SDLmain.lib 我将SDL.dll添加到我的程序文件夹中 我没有添加任何opengl目录C++ SDL和OpenGL的版本和实现是什么;我在用,c++,opengl,version,implementation,sdl,C++,Opengl,Version,Implementation,Sdl,我下载了SDL1.2.14 在Windows7上 我已经安装了Mobility Radeon X1800驱动程序 我在“VC++目录”中添加了SDL包含和库目录 我添加了以下附加依赖项: opengl32.lib; glu32.lib; SDL.lib; SDLmain.lib 我将SDL.dll添加到我的程序文件夹中 我没有添加任何opengl目录 #include "SDL.h" #include "SDL_opengl.h" bool running = true; int main
#include "SDL.h"
#include "SDL_opengl.h"
bool running = true;
int main(int argc, char* args[]) {
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Surface* screen = SDL_SetVideoMode(640,480,32,SDL_OPENGL);
glViewport(0,0,640,480);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, 640/480, 1.0, 200.0);
while(running) {
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW); // Swich to the drawing perspective
glLoadIdentity();
glTranslatef(0.0,0.0,-5.0);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5f, 0.5f, 0.0f);
glVertex3f(-1.0f, 1.5f, 0.0f);
glVertex3f(-1.5f, 0.5f, 0.0f);
glEnd();
SDL_GL_SwapBuffers();
}
SDL_Quit();
return 0;
}
这个程序画一个简单的三角形。
我在上面包含了2个头文件,我的Opengl代码可以正常工作
我不知道我的三角形是在GPU还是CPU上完成的。我使用的是什么openGL版本
我的意思是,我听说微软不再更新opengl文件了,他们使用opengl 1.1或类似的CPU实现
我如何知道我使用的是哪个版本的OpenGL?我可以在运行时检查吗
如何知道我使用的是CPU还是GPU实现?我可以在运行时检查吗
谢谢你看我的问题。打电话给我
它只是重复SGI文档,并告诉您该函数位于
gl.h
和opengl32.lib
实际上,当您安装视频卡驱动程序时,它会“替换”计算机中现有的opengl,因此您将使用该版本
OpenGL的多个版本同时存在,使用哪个版本取决于用于初始化OpenGL的HDC。例如,在本地登录会话中运行的应用程序可以获得硬件加速的GL,而在远程桌面会话中运行的应用程序可以获得基于CPU的实现(Ben Voigt)
VisualStudio当前附带的头文件和lib中只有OpenGL 1.1,因此要访问更现代的内容,需要调用wglGetProcAddress以获取指向新函数的指针
在这里,您可以找到更多信息:优点,但您应该注意,“替换”并不真正准确。OpenGL的多个版本同时存在,使用哪个版本取决于用于初始化OpenGL的
HDC
。例如,在本地登录会话中运行的应用程序可以获得硬件加速的GL,而在远程桌面会话中运行的应用程序可以获得基于CPU的实现。