티스토리 뷰
https://doc.qt.io/qt-5/qopenglwindow.html
을 러프하게 번역한 내용
* 소개
QWindow 의 서브클래스로 OpenGL을 그리기 위해서 사용한다.
QOpenGLWindow는 QWindow의 개선된 버전이고 OpenGL 렌더링을 하는 윈도우들을 QOpenGLWidget과
호환되는 API들을 사용해서 쉽게 생성할 수 있도록 해준다.
QOpenGLWidget과는 다르게 QOpenGLWindow는 Widget들에 대한 종속성이 없고, 더 나은 성능을 보여준다.
일반적으로 QOpenGLWindow를 상속받는 서브클래스는 아래의 가상 함수들을 재상속 받아야한다.
+ initializeGL
OpenGL 리소스 초기화를 위해서 사용함
+ resizeGL
변환 행렬들 설정과 Window 사이즈에 종속적인 리소스들을 설정하기 위해 사용
+ paintGL
QPainter 를 이용하거나 OpenGL 커맨드를 사용하기 위해서
다시 그리기 위해서는 update 함수를 사용하면 된다. 하지만 update()의 호출이 paintGL()을 즉시 호출하지는 않는다.
update()를 연속적으로 여러 번 호출하게 되면 동작을 바꾸지 않을 것 이다.
context에 대해 특별한 설정을 요청하기 위해서는 다른 QWindow에서 하던 것 처럼 setFormat을 사용하면 된다.
QWindow와는 다르게 QOpenGLWindow는 painter를 스스로 열고 QPaint 기반의 드로잉을 할 수 있다.
QOpenGLWindow는 여러 번의 업데이트 동작들을 지원하는데, 기본적으로 NoPartialUpdate는 일반적인 OpenGL 기반의
QWindow나 레거시 QGLWidget들과 동일하다.
이와 반대로, PartialUpdateBlit 과 PartialUpdateBlen는 QOpenGLWidget의 작동방식과 더욱 유사한데,
항상 추가적인 프레임 버퍼 객체가 있는 방식이기 때문이다. 이러한 모드들은 성능을 조금 희생하는 대신에
각 각의 페인트마다 작은 영역들만 다시 그리고 나머지 부분은 이전의 프레임 그대로 놔둔다.
그러한 동작은 QPainter를 이용해서 점진적으로 그려나가는 어플리케이션에서 유용하다. 왜냐하면
이러한 방식은 각 각의 paintGL 호출시에 전체 윈도우를 새로 그리지 않아도 되기 때문이다.
QOpenGLWidget과 비슷하게, QOpenGLWindow 는 Qt::AA_ShareOpenGLContexts 속성을 지원하는데
이것을 사용하도록 설정이 되어있으면 모든 QOpenGLWindow 인스턴스들의 OpenGL context들은 서로서로 공유하게 된다.
이렇게 되면 서로 공유 가능한 OpenGL 리소스에 접근할 수 있다.
- Total
- Today
- Yesterday
- 14714 복습법
- CMake probouf
- CMAke 파일이름 추출
- buffer-over-flow
- get_filename_component
- review reminder
- CMake 반복문
- 14714 앱
- 복습 어플
- CMake for문
- CMake 기초
- 14714 어플
- 14714 공부법
- 복습 계획어플
- 14714 어플리케이션
- 함수포인터 오버라이트
- 14714 플래너
- CMake 강좌
- CMake get file name
- CMake get_filename_Component
- 14714 review
- aws 프리티어 요금청구
- 토리파 공부법
- CMake run proto compiler
- aws 청구문의
- CMake for
- react-native
- CMake run protoc
- function pointer overflow
- 14714 공부법 어플리케이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |