BLOG main image
FunnyPR (32)
OpenGL (20)
PatternRecognition (7)
Tips (2)
XML (1)
DataMining (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2014. 4. 19. 14:19

◆ 윈도우즈 OPENGL - 픽셀 포맷 설정 


필요에 맞는 픽셀 포맷을 찾기 위해 모든 픽셀 포맷을 나열하고 하나씩 확인하는 과정은 상당히 복잡함

따라서 단축함수 ChoosePixelFormat를 제공

 - 먼저 사용자가 원하는 3D 창의 속성들을 포함하는 픽셀 포맷 구조체를 만듬

 - ChoosePixelFormat는  만들어진 사용자 요구 픽셀 포맷 구조체에 가장 유사한 픽셀 포맷을 찾아 이에 해당하는 Index를 리턴함

 - 이 index를 SetPixelFormat에 전달하여 픽셀 포맷을 지정함


[step 1] 원하는 PIXELFORMATDESCRIPTOR을 만듬

[step 2] ChoosePixelFormat 로 유사한 픽셀 포맷 Index를 얻음

[step 3] SetPixelFormat에 획득한 index를 넣어 픽셀 포맷을 지정


----소스 코드 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Select the pixel format for a given device context
void SetDCPixelFormat(HDC hDC)
    {
    int nPixelFormat;  
 
    static PIXELFORMATDESCRIPTOR pfd = {
        sizeof(PIXELFORMATDESCRIPTOR),    // Size of this structure
        1,                                // Version of this structure    
        PFD_DRAW_TO_WINDOW |            // Draw to Window (not to bitmap)
        PFD_SUPPORT_OPENGL |            // Support OpenGL calls in window
        PFD_DOUBLEBUFFER,                // Double buffered mode
        PFD_TYPE_RGBA,                    // RGBA Color mode
        8,                                // Want 8 bit color 
        0,0,0,0,0,0,                    // Not used to select mode
        0,0,                            // Not used to select mode
        0,0,0,0,0,                        // Not used to select mode
        16,                                // Size of depth buffer
        0,                                // Not used to select mode
        0,                                // Not used to select mode
        PFD_MAIN_PLANE,                    // Draw in main plane
        0,                                // Not used to select mode
        0,0,0 };                        // Not used to select mode
 
    // Choose a pixel format that best matches that described in pfd
    nPixelFormat = ChoosePixelFormat(hDC, &pfd);
 
    // Set the pixel format for the device context
    SetPixelFormat(hDC, nPixelFormat, &pfd);
    }




'OpenGL' 카테고리의 다른 글

OpenGL: Basic knowledge for 3D programing  (0) 2014.04.19
Windows OpenGL: Making Window Application with OpenGL  (0) 2014.04.19
Windows OpenGL: Rendering Context  (0) 2014.04.19
OPENGL color define  (0) 2014.04.16
Setting Up OpenGL in an MFC control  (0) 2014.04.15