QCanvasPainterFactory Class
QCanvasPainterFactory는 QCanvasPainter 의 인스턴스와 관련 렌더링 엔진을 관리합니다. 더 보기...
| 헤더: | #include <QCanvasPainterFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| 다음부터: | Qt 6.11 |
공개 함수
| QCanvasPainterFactory() | |
| QCanvasPainter * | create(QRhi *rhi) |
| void | destroy() |
| bool | isValid() const |
| QCanvasRhiPaintDriver * | paintDriver() |
| QCanvasPainter * | painter() |
정적 공용 멤버
| QCanvasPainterFactory * | sharedInstance(QRhi *rhi) |
상세 설명
QCanvasPainter 를 통해 렌더링하는 애플리케이션은 페인터 클래스의 인스턴스를 직접 생성하지 않고, QCanvasPainterFactory를 사용해야 합니다.
참고: 이 클래스는 QCanvasPainterWidget 이나 QCanvasPainterItem 과 같은 편의 클래스 없이 QCanvasPainter 를 사용할 때만 관련이 있습니다. 이러한 편의 클래스는 애플리케이션에 QCanvasPainter 인스턴스를 제공하기 때문입니다.
다음은 기존에 성공적으로 초기화된 QRhi 와 함께 사용할 QCanvasPainter 를 가져오는 예제 코드 조각입니다:
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory);
QCanvasPainter *painter = factory->create(rhi);
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();동일한 스레드에서 동일한 QRhi 를 사용하는 모든 그리기 코드는, 각 컴포넌트마다 전용 페인터(그리고 그에 따른 팩토리)를 두는 대신, 동일한 QCanvasPainter 를 공유하고 재사용하는 것이 권장됩니다. 이는 새로운 QCanvasPainterFactory를 생성하는 대신 sharedInstance()를 호출함으로써 달성할 수 있습니다:
QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi);
QCanvasPainter *painter = factory->painter();
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();멤버 함수 문서
QCanvasPainterFactory::QCanvasPainterFactory()
생성자.
sharedInstance()도 참조하십시오 .
QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)
이 팩토리에 대해 아직 초기화되지 않은 경우, QCanvasPainter 렌더링 인프라를 초기화합니다.
페인터를 반환하며, 렌더러를 초기화할 수 없는 경우에는 null을 반환합니다.
이 팩토리는 rhi 과 연결되며, destroy()을 호출한 후 create()를 다시 호출하지 않는 한 다른 QRhi 와 함께 사용할 수 없습니다.
이 함수를 반복해서 호출해도 아무런 효과가 없으며, 아무런 문제도 일으키지 않습니다. 페인터 인프라를 재초기화하고자 하는 경우(다른 rhi 를 사용할 수도 있음), 먼저 destroy()를 호출하십시오.
참고: sharedInstance()를 사용하여 팩토리 인스턴스를 가져온 경우에는 이 함수를 호출할 필요가없습니다 .
destroy(), isValid(), painter()도 참조하십시오 .
void QCanvasPainterFactory::destroy()
렌더링 인프라를 해제합니다. 일반적으로 이 함수를 호출할 필요는 없습니다. 대신, 이 함수 호출 뒤에 create()이 이어질 때 사용됩니다.
create()도 참조하십시오 .
bool QCanvasPainterFactory::isValid() const
create()이 성공적으로 호출된 경우 true를 반환합니다.
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
페인트 드라이버 객체를 반환하며, ` isValid()`의 결과가 false인 경우 null을 반환합니다.
참고: 반환된객체는 호출자가 소유하지 않습니다.
QCanvasPainter *QCanvasPainterFactory::painter()
페인터를 반환하며, isValid()의 결과가 false인 경우 null을 반환합니다.
참고: 반환된객체는 호출자가 소유하지 않습니다.
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
주어진 rhi 와 연관된 QCanvasPainterFactory 인스턴스를 반환합니다.
동일한 ` rhi `를 사용하여 이 함수를 호출하면 항상 동일한 ` QCanvasPainterFactory`가 반환됩니다.
반환된 팩토리에서 ` create()`를 호출할 필요가 없으며, ` painter()`를 즉시 조회할 수 있습니다. 결과가 항상 이미 초기화되어 있으므로 ` isValid()`는 true를 반환하기 때문입니다.
이 함수는 스레드 안전합니다. 그러나 QRhi 의 스레딩 규칙이 평소와 같이 적용됩니다. 즉, QRhi 객체와, 더 나아가 해당 QRhi 와 연관된 QCanvasPainterFactory, QCanvasRhiPaintDriver, QCanvasPainter 의 인스턴스는 모두 단일 스레드에서만 사용되어야 합니다.
참고: 반환된 QCanvasPainterFactory 는 호출자가 소유하는 것이 아니며, rhi 가 소멸되면 무효화됩니다.
painter()도 참조하십시오 .
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.