какую версию и реализацию SDL и OpenGL я использую - PullRequest
3 голосов
/ 30 декабря 2010

я скачал SDL 1.2.14 в Windows 7 и у меня установлен драйвер Mobility Radeon X1800.

Я использую Microsoft Visual C ++ 2010 Express.

Я добавил каталоги включения и библиотеки SDL в «Каталоги VC ++»

Я добавил следующие дополнительные зависимости: opengl32.lib; glu32.lib; SDL.lib; SDLmain.lib;

Я добавил SDL.dll в папку с моей программой

Я не добавил никаких каталогов opengl!

#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 я использую?

Я имею в виду, что я слышал, что Microsoft больше не обновляет там файлы opengl и что они используют реализацию CPU OpenGL 1.1 или чего-то еще.

Как узнать, какую версию OpenGL я использую? А можно проверить во время выполнения?

Как узнать, использую ли я процессор или GPU? И можно ли проверить во время выполнения?

Спасибо за внимание к моей проблеме.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

звонок glGetString

Вот документация Microsoft для glGetString. Он просто повторяет документ SGI и сообщает, что функция находится в gl.h и opengl32.lib.

1 голос
/ 30 декабря 2010

На самом деле, когда вы устанавливаете драйвер вашей видеокарты, он «заменяет» opengl, существующий на вашем компьютере, поэтому вы будете использовать эту версию.

Несколько версий OpenGL присутствуют одновременно, и какая из них используется, зависит от HDC, используемого для инициализации OpenGL. Например, приложения, работающие в сеансе локального входа в систему, могут получить аппаратно-ускоренный GL, в то время как приложения, работающие в сеансе удаленного рабочего стола, получают реализацию на базе ЦП (Ben Voigt)

В настоящее время заголовок и библиотека, поставляемые с Visual Studio, содержат только OpenGL 1.1, поэтому для доступа к более современным вещам вам нужно вызвать wglGetProcAddress, чтобы получить указатели на новые функции.

Здесь вы можете найти больше информации: http://www.opengl.org/wiki/Getting_started

...