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를 사용해야 합니다.
참고: 이 클래스는 애플리케이션에 QCanvasPainter 인스턴스를 제공하기 때문에 QCanvasPainterWidget 또는 QCanvasPainterItem 와 같은 편의 클래스 없이 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()가 거짓이면 null을 반환합니다.
참고: 반환된 객체는 호출자가 소유하지 않습니다.
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
주어진 rhi 과 연관된 QCanvasPainterFactory 인스턴스를 반환합니다.
동일한 rhi 으로 이 함수를 호출하면 항상 동일한 QCanvasPainterFactory 이 반환됩니다.
반환된 팩토리에서 create()를 호출할 필요가 없으며, 결과는 항상 이미 초기화되어 있으므로 isValid()가 참을 반환하므로 painter()를 바로 쿼리할 수 있습니다.
이 함수는 스레드 안전합니다. 그러나 QRhi 스레딩 규칙은 평소와 같이 적용됩니다. QRhi 객체, 더 나아가 해당 객체와 연관된 QCanvasPainterFactory, QCanvasRhiPaintDriver, QCanvasPainter 의 인스턴스 QRhi 는 모두 동일한 단일 스레드에서 사용될 것으로 예상됩니다.
참고: 반환된 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.