다음을 통해 공유


OpenGL 이미지 인쇄

향상된 메타파일로 렌더링된 OpenGL 이미지를 인쇄할 수 있습니다. HDC(프린터 디바이스)로 렌더링하는 경우 메타파일 스풀러에서 지원해야 합니다. OpenGL은 깊이, 색 및 기타 버퍼에 메모리를 사용하여 그래픽 출력을 프린터에 저장합니다. 일반적인 프린터 해상도는 그래픽 출력을 저장하는 데 상당한 양의 메모리가 필요하기 때문에 OpenGL 이미지를 인쇄하려면 시스템에서 사용할 수 있는 것보다 더 많은 메모리가 필요할 수 있습니다. 이러한 제한을 극복하기 위해 OpenGL의 현재 구현은 대역에서 OpenGL 그래픽을 인쇄합니다. 그러나 이렇게 하면 OpenGL 이미지를 인쇄하는 데 걸리는 시간이 늘어나게 됩니다.

OpenGL 이미지를 인쇄하기 전에 StartDoc 함수를 호출하여 DC(프린터 디바이스 컨텍스트)의 초기화를 완료해야 합니다. StartDoc를 호출한 후 HGLRC(렌더링 컨텍스트)를 만들어 프린터 디바이스에 렌더링할 수 있습니다. StartDoc를 호출하기 전에 렌더링 컨텍스트를 만드는 경우 메타파일이 스풀링되는지 여부를 확인할 수 없습니다.

다음 코드 샘플에서는 OpenGL 이미지를 인쇄하는 방법을 보여줍니다.

HDC            hDC;
DOCINFO        di;
HGLRC          hglrc;

// Call StartDoc to start the document 
StartDoc( hDC, &di );

// Prepare the printer driver to accept data 
StartPage(hDC);

// Create a rendering context using the metafile DC 
hglrc = wglCreateContext ( hDCmetafile );

// Do OpenGL rendering operations here 
    . . .
wglMakeCurrent(NULL, NULL); // Get rid of rendering context 
    . . .
EndPage(hDC); // Finish writing to the page 
EndDoc(hDC); // End the print job

메타파일 사용에 대한 자세한 내용은 고급 메타파일 작업을 참조하세요.