2017-02-17 21 views
2

내가하고 싶은 일은 창을 만들지 않고도 OpenGL 기능으로 일부 렌더링을하는 것뿐입니다. OpenGL을 플랫폼 윈도우 시스템과 바인딩하기 위해 glx와 같은 라이브러리를 사용해야합니까?OpenGL을 오프 스크린 프레임 버퍼로 렌더링 할 때 윈도우 시스템 지원이 여전히 필요합니까?

내가 필요하지 않으면 OpenGL 컨텍스트가 어디에 생성 되었습니까? glXCreateContext와 같은 함수를 사용하여 OpenGL 컨텍스트를 생성해야합니다. 그러나 제가 기억한다면, 모든 OpenGL 프로그램은 문맥이 필요합니다. 그래서 모순이있는 것 같습니까?

누군가 나를 위해 이것을 분명히 할 수 있기를 바랍니다.

+0

[구현] (http://stackoverflow.com/a/41272146/44729)에 따라 다릅니다. – genpfault

답변

2

OpenGL 자체 (사양)는 윈도우 시스템 통합에 대한 요구 사항과 렌더링 컨텍스트를 얻을 수있는 위치 및 방법에 대한 요구 사항을 부과하지 않습니다. OpenGL 구현이 오프 스크린 컨텍스트 생성을 제공하는 것은 매우 합법적입니다. 실질적인 질문은 다음과 같습니다. 어떤 OpenGL 구현이이를 수행하며 API는 무엇입니까?

DRI/DRM/Mesa 창이있는 Linux의 경우 KMS 지원 GPU의 GBM API/라이브러리를 사용하여 화면이없는 OpenGL 컨텍스트를 만들 수 있습니다.

또한 Mesa에는 OSMesa (Off-Screen-Mesa) 변형이 있지만 현재 소프트웨어 기반 렌더링 (llvmpipe 또는 softpipe) 만 수행하지만 나중에 GPU 지원을 추가 할 수 있습니다.

EGL (컨텍스트 관리 용 Khronos 교차 플랫폼 API)은 또한 드라이버가 지원할 수있는 선택 사항 인 창없는/화면없는 컨텍스트 생성 옵션을 제공합니다. 적어도 NVidia 독점 드라이버가 지원합니다 : https://devblogs.nvidia.com/parallelforall/egl-eye-opengl-visualization-without-x-server/

+0

귀하의 설명은 나에게 의미가 있습니다, 감사합니다! –