2010-12-30 1 views
3

Windows 7에 SDL 1.2.14 을 다운로드했으며 에 Mobility Radeon X1800 드라이버를 설치했습니다.어떤 SDL 및 OpenGL 버전과 구현을 사용하고 있습니까

Microsoft Visual C++ 2010 Express를 사용하고 있습니다.

은 내가 SDL 포함하고 "VC++ 디렉토리"에 라이브러리 디렉토리

나는 다음과 같은 추가 종속성 추가 추가 : opengl32.lib을; glu32.lib; SDL.lib; SDLmain.lib;

나는

내가 어떤 OpenGL은 디렉토리를 추가하지 않은 내 프로그램 폴더에 SDL.dll를 추가!

#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 파일을 더 이상 업데이트하지 않으며 OpenGL 1.1 또는 그 이상의 CPU 구현을 사용한다고 들었습니다.

사용중인 OpenGL의 버전을 어떻게 알 수 있습니까? 그리고 런타임에 확인할 수 있습니까?

CPU 또는 GPU 구현을 사용하고 있는지 어떻게 알 수 있습니까? 그리고 런타임에 확인할 수 있습니까?

내 문제를 살펴 주셔서 감사합니다.

답변

1

실제로 비디오 카드 드라이버를 설치하면 컴퓨터에있는 기존 OpenGL을 "대체"하여 해당 버전을 사용하게됩니다.

여러 버전의 OpenGL이 동시에 존재하며 사용되는 것은 OpenGL을 초기화하는 데 사용되는 HDC에 따라 다릅니다. 예를 들어 로컬 로그인 세션에서 실행되는 응용 프로그램은 하드웨어 가속 GL을 얻을 수 있지만 원격 데스크톱 세션에서 실행되는 응용 프로그램은 CPU 기반 구현을 얻습니다 (Ben Voigt)

Visual Studio에서만 제공되는 현재 헤더 및 lib에는 OpenGL 1.1이 포함되어 있으므로 최신 기능에 액세스하려면 wglGetProcAddress를 호출하여 새 기능에 대한 포인터를 얻어야합니다. 여기

당신이 더 많은 정보를 찾을 수 있습니다 http://www.opengl.org/wiki/Getting_started

+1

좋은 점을,하지만 당신은 "대체"알고 있어야 정말 정확하지 않습니다. 여러 버전의 OpenGL이 동시에 존재하며, 어느 것이 사용되는지는 OpenGL을 초기화하는 데 사용되는 'HDC'에 따라 다릅니다. 예를 들어 로컬 로그인 세션에서 실행중인 응용 프로그램은 하드웨어 가속 GL을 얻을 수있는 반면 원격 데스크톱 세션에서 실행중인 응용 프로그램은 CPU 기반 구현을 얻습니다. –

+0

감사합니다. 정보를 업데이트 해주십시오. – bcsanches