이 페이지에서

QCanvasOffscreenCanvas Class

QCanvasOffscreenCanvas는 ` QCanvasPainter `가 대상으로 삼을 수 있는 오프스크린 캔버스를 나타냅니다. 더 보기...

헤더: #include <QCanvasOffscreenCanvas>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
다음부터: Qt 6.11

공개 유형

enum class Flag { PreserveContents, MipMaps }
flags Flags

공개 함수

QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)
QCanvasOffscreenCanvas(QCanvasOffscreenCanvas &&other)
~QCanvasOffscreenCanvas()
QColor fillColor() const
QCanvasOffscreenCanvas::Flags flags() const
int height() const
bool isNull() const
void setFillColor(QColor color)
QSize size() const
QRhiTexture *texture() const
int width() const
QCanvasOffscreenCanvas &operator=(const QCanvasOffscreenCanvas &canvas)
bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

상세 설명

오프스크린 캔버스는 본질적으로 색상 버퍼( QRhiTexture)이며, 경우에 따라 다른 관련 그래픽 리소스를 포함할 수도 있습니다. 콘텐츠가 캔버스의 색상 버퍼에 렌더링된 후, 캔버스를 페인터(painter)에 registered 하여 QCanvasImage 를 가져올 수 있으며, 이 는 drawImage() 호출에서 사용하거나 image pattern 로 사용할 수 있습니다.

오프스크린 캔버스를 생성하려면 QCanvasPainter::createCanvas()를 호출하십시오. 드로잉 명령으로 오프스크린 캔버스를 대상으로 하려면, 저수준 API를 사용할 때는 적절한 QCanvasRhiPaintDriver::beginPaint() 오버로드를 호출하고, 편의 위젯이나 Qt Quick 항목 클래스를 사용할 때는 QCanvasPainterWidget::beginCanvasPainting() 또는 QCanvasPainterItemRenderer::beginCanvasPainting()를 호출하십시오.

QCanvasImage 및 QCanvasBrush 와 마찬가지로, QCanvasOffscreenCanvas는 명시적으로 공유됩니다. 자세한 내용은 ‘암시적 데이터 공유(Implicit Data Sharing )’ 및 ‘ QSharedDataPointer ’를 참조하십시오.

참고: QCanvasImage 와마찬가지로 , QCanvasOffscreenCanvas는 단순히 핸들을 포함하는 객체로 볼 수 있습니다. 분리(detach)가 발생하더라도, 실제 리소스(예: 기본 텍스처 및 그 안의 이미지 데이터)는 실제로 복사되거나 복제되지 않습니다. 실제 그래픽 리소스(예: QRhiTexture)의 진정한 소유자는 createCanvas()를 통해 QCanvasOffscreenCanvas를 할당해 준 QCanvasPainter 입니다.

캔버스는 항상 이를 생성한 QCanvasPainter 에 속합니다. 캔버스를 수동으로 소멸시키려면 destroyCanvas()을 호출해야 합니다. 하지만 대부분의 경우, 페인터가 자체 소멸 과정에서 캔버스를 자동으로 소멸시키기 때문에 이 작업은 필요하지 않습니다.

멤버 유형 문서

enum class QCanvasOffscreenCanvas::Flag
flags QCanvasOffscreenCanvas::Flags

캔버스에 적용할 플래그를 지정합니다.

상수값설명
QCanvasOffscreenCanvas::Flag::PreserveContents0x01캔버스에 그리기를 수행할 때 캔버스의 내용이 보존됨을 나타냅니다. 이는 GPU 아키텍처에 따라 성능에 부정적인 영향을 미칠 수 있습니다. 자세한 내용은 QRhiTextureRenderTarget::PreserveColorContents 를 참조하십시오. 샘플 수가 1보다 클 경우 이 플래그를 설정하는 것은 지원되지 않습니다.
QCanvasOffscreenCanvas::Flag::MipMaps0x02addImage캔버스의 백킹 텍스처에 밉매핑이 활성화되어야 함을 나타냅니다. 샘플 수가 1보다 클 때는 이 플래그 설정이 지원되지 않습니다. GenerateMipmaps ()를 호출할 때 플래그가 설정되어 있으면 밉맵 시퀀스가 생성된다는 점에 유의하십시오. 이는 밉맵 체인이 재생성되도록 캔버스의 내용이 변경될 때마다 addImage()를 호출해야 함을 의미합니다. 밉맵을 빈번하게 생성하면 성능에 부정적인 영향을 미칠 수 있습니다.

Flags 유형은 QFlags<Flag>에 대한 typedef입니다. 이 유형은 Flag 값들의 OR 조합을 저장합니다.

멤버 함수 문서

QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)

복사 생성자.

[constexpr noexcept default] QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(QCanvasOffscreenCanvas &&other)

QCanvasOffscreenCanvas 의 인스턴스를 move-construct로 생성합니다.

[noexcept] QCanvasOffscreenCanvas::~QCanvasOffscreenCanvas()

소멸자.

QColor QCanvasOffscreenCanvas::fillColor() const

현재 채우기 색상을 반환합니다.

setFillColor()도 참조하십시오 .

QCanvasOffscreenCanvas::Flags QCanvasOffscreenCanvas::flags() const

캔버스가 생성될 때 사용된 플래그를 반환합니다.

이 플래그는 불변이며, 캔버스가 생성된 후에는 변경할 수 없습니다.

int QCanvasOffscreenCanvas::height() const

이 캔버스의 높이를 픽셀 단위로 반환합니다.

width() 및 size()도 참조하십시오 .

bool QCanvasOffscreenCanvas::isNull() const

이 캔버스에 유효한 데이터가 있으면 true를 반환합니다.

일반적으로 이 값은 항상 true입니다.

texture()도 참조하십시오 .

void QCanvasOffscreenCanvas::setFillColor(QColor color)

채우기(투명) 색상을 color 로 설정합니다.

기본적으로 이 값은 createCanvas() 함수에 전달된 값으로 설정됩니다.

fillColor()도 참조하십시오 .

QSize QCanvasOffscreenCanvas::size() const

이 캔버스의 크기(너비와 높이)를 픽셀 단위로 반환합니다.

width() 및 height()도 참조하십시오 .

QRhiTexture *QCanvasOffscreenCanvas::texture() const

이 오프스크린 캔버스를 뒷받침하는 텍스처를 반환합니다.

isNull()도 참조하십시오 .

int QCanvasOffscreenCanvas::width() const

이 캔버스의 너비를 픽셀 단위로 반환합니다.

height() 및 size()도 참조하십시오 .

QCanvasOffscreenCanvas &QCanvasOffscreenCanvas::operator=(const QCanvasOffscreenCanvas &canvas)

지정된 canvas 의 얕은 복사본을 이 캔버스에 할당하고, 이 캔버스에 대한 참조를 반환합니다. 얕은 복사에 대한 자세한 내용은 암시적 데이터 공유 문서를 참조하십시오.

참고: 기본 리소스(예: ` QRhiTexture`과 같은 그래픽 리소스)는 절대 복사되거나 복제되지 않습니다.

관련 비멤버

[noexcept] bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

캔버스 핸들 lhs 이 rhs 과 다를 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.

operator==()도 참조하십시오 .

[noexcept] bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

캔버스 핸들 lhs 가 rhs 와 같을 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

참고: 동일하다는 것은 두 캔버스 객체의 채우기 색상이 같고, 동일한 그래픽 리소스를 참조하고 있음을 의미합니다. 내용(픽셀 데이터)은 비교되지 않습니다.

operator!=()도 참조하십시오 .

© 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.