开发者

what SDL and OpenGL version and implementation I'm using

I downloaded SDL 1.2.14 on Windows 7 and I have Mobility Radeon X1800 driver installed.

I'm using Microsoft Visual C++ 2010 Express.

I added the SDL include and library directories in the "VC++ Directories"

I added the following Additional Dependencies: 开发者_JAVA技巧 opengl32.lib; glu32.lib; SDL.lib; SDLmain.lib;

I added the SDL.dll to my program folder

I didn't add any opengl directories!

#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;
}

This program draws a simple triangle. I include 2 header files above and my Opengl code just works!

I don't know if my triangle is done on a the GPU or CPU. And what openGL version I'm using?

I mean i heard that Microsoft don't update there opengl files any longer and that they use CPU implementation of OpenGL 1.1 or something.

How do I know what version of OpenGL I'm using? And can I check at run time?

How do I know if I'm using a CPU or GPU implementation? And can I check at run time?

Thanks for look at my problem.


call glGetString

Here is Microsoft's documentation for glGetString. It just repeats the SGI doc and tells you the function is found in gl.h and opengl32.lib.


Actually when you install your video card driver it "replaces" the opengl existing in your machine, so you will be using that version.

Multiple versions of OpenGL are present at the same time, and which one is used depends on the HDC used to initialize OpenGL. For example, applications running in the local login session can get hardware-accelerated GL while those running in a remote desktop session get the CPU-based implementation ( Ben Voigt )

The currently header and lib that comes with Visual Studio only has OpenGL 1.1 in it, so to access more modern stuff you need to call the wglGetProcAddress to get pointers to the new functions.

Here you can find more information: http://www.opengl.org/wiki/Getting_started

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜