> 백엔드 개발 > C++ > 본문

현재 OpenGL 초기화 및 종료 코드가 Intel HD 3000에 적합합니까? 여러 OpenGL 컨텍스트를 관리하는 더 나은 방법이 있습니까?

DDD
풀어 주다: 2024-10-28 10:11:02
원래의
502명이 탐색했습니다.

 Is the current OpenGL initialization and exit code suitable for Intel HD 3000, and are there better ways to manage multiple OpenGL contexts?

Intel HD 3000에서 적절한 OpenGL 초기화는 무엇입니까?

문제:

Intel HD 3000 그래픽 카드에서 , 단일 애플리케이션에서 여러 OpenGL 컨텍스트를 생성하면 예측할 수 없는 동작이 발생합니다.

  1. 이전 버전의 앱은 두 번째 렌더링 컨텍스트를 생성하지 못합니다.
  2. OpenGL 기반 소프트웨어로 변경한 후 , 두 번째 렌더링 컨텍스트를 생성할 수 있지만 릴리스 후에는 유효하지 않게 됩니다.

현재 초기화 및 종료 코드:

<code class="c++">// Initialization code
int OpenGLscreen::init(void *f, int textures)
{
    // ...
    hrc = wglCreateContext(hdc);
    // ...
    if(wglMakeCurrent(hdc, hrc) == false)
        {
        // ...
        }
    // ...
}

// Exit code
void OpenGLscreen::exit()
{
    if (!_init) return;
    wglMakeCurrent(hdc,hrc);        // use this context if multiple OpenGLs are used
    // ...
    wglMakeCurrent(NULL, NULL);     // release current rendering context
    wglDeleteContext(hrc);          // destroy rendering context
    hrc=NULL;
    _init=0;
}</code>
로그인 후 복사

질문:

  1. 현재 OpenGL 초기화/종료 코드가 올바르지 않습니까?
  2. OpenGL을 초기화하고 종료하는 더 좋은 방법이 있습니까?
  3. 다른 OpenGL 사이를 올바르게 전환하는 방법 렌더링 컨텍스트?

답변:

  1. 현재 OpenGL 초기화 및 종료 코드는 올바르게 보이지만 GLEW와 같은 로더 라이브러리를 사용하는 것이 좋습니다.
  2. GLEW 또는 glfw와 같은 로더 라이브러리를 사용하세요. 이러한 라이브러리는 OpenGL 컨텍스트 생성 및 함수 로딩을 단순화합니다.
  3. wglMakeCurrent 사용은 올바른 것으로 보이지만 컨텍스트 전환에 대한 Intel 특유의 문제를 조사해야 할 수도 있습니다.

위 내용은 현재 OpenGL 초기화 및 종료 코드가 Intel HD 3000에 적합합니까? 여러 OpenGL 컨텍스트를 관리하는 더 나은 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿