"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > TForm::Handle을 사용하여 C++ Builder 양식에서 OpenGL 프레임을 렌더링하는 방법은 무엇입니까?

TForm::Handle을 사용하여 C++ Builder 양식에서 OpenGL 프레임을 렌더링하는 방법은 무엇입니까?

2024-11-07에 게시됨
검색:877

How to Render an OpenGL Frame in a C   Builder Form Using TForm::Handle?

C Builder에서 OpenGL 프레임 렌더링

질문

C Builder의 양식 내에서 OpenGL 프레임을 렌더링하고 싶지만 제공된 OpenGL 시작 코드를 따를 때 문제가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

TForm::Handle을 창 핸들로 활용

해결책은 TForm::Handle을 창 핸들로 사용하는 데 있습니다. window handler.

샘플 구현

다음은 C Builder의 이전 버전에서 적용한 예입니다:

int TForm1::ogl_init()
{
    if (ogl_inicialized)
        return 1;
    hdc = GetDC(Form1->Handle); // Get device context
    PIXELFORMATDESCRIPTOR pfd;
    // Set pixel format for the DC
    ...
    // Create current rendering context
    hrc = wglCreateContext(hdc);
    if (hrc == NULL)
    {
        ShowMessage("Could not initialize OpenGL Rendering context !!!");
        ogl_inicialized = 0;
        return 0;
    }
    if (!wglMakeCurrent(hdc, hrc))
    {
        wglDeleteContext(hrc); // Destroy rendering context
        ogl_inicialized = 0;
        return 0;
    }
    // ...
    ogl_inicialized = 1;
    return 1;
}

추가 참고사항

  • 필요한 헤더 포함:
  • 렌더링을 트리거하는 타이머를 만듭니다.
  • 양식 크기 조정, 다시 그리기 및 마우스 휠 입력에 대한 이벤트를 처리합니다.
  • gl.h가 프로젝트에 포함되어 있는지 확인합니다.
  • 고급 OpenGL 기술에 대한 링크를 제공했습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3