QRhiScissor Class

Specifies a scissor rectangle. More...

Header: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
Since: Qt 6.6

Public Functions

QRhiScissor()
QRhiScissor(int x, int y, int w, int h)
std::array<int, 4> scissor() const
void setScissor(int x, int y, int w, int h)
size_t qHash(const QRhiScissor &key, size_t seed = 0)
bool operator!=(const QRhiScissor &a, const QRhiScissor &b)
bool operator==(const QRhiScissor &a, const QRhiScissor &b)

Detailed Description

Used with QRhiCommandBuffer::setScissor(). Setting a scissor rectangle is only possible with a QRhiGraphicsPipeline that has QRhiGraphicsPipeline::UsesScissor set.

QRhi assumes OpenGL-style scissor coordinates, meaning x and y are bottom-left. Negative width or height are not allowed. However, apart from that, the flexible OpenGL semantics apply: negative x and y, partially out of bounds rectangles, etc. will be handled gracefully, clamping as appropriate. Therefore, any rendering logic targeting OpenGL can feed scissor rectangles into QRhiScissor as-is, without any adaptation.

Note: This is a RHI API with limited compatibility guarantees, see QRhi for details.

See also QRhiCommandBuffer::setScissor() and QRhiViewport.

Member Function Documentation

[constexpr noexcept] QRhiScissor::QRhiScissor()

Constructs an empty scissor.

QRhiScissor::QRhiScissor(int x, int y, int w, int h)

Constructs a scissor with the rectangle specified by x, y, w, and h.

Note: x and y are assumed to be the bottom-left position. Negative w or h are not allowed, such scissor rectangles will be ignored by QRhiCommandBuffer. Other than that, the flexible OpenGL semantics apply: negative x and y, partially out of bounds rectangles, etc. will be handled gracefully, clamping as appropriate.

std::array<int, 4> QRhiScissor::scissor() const

Returns the scissor position and size.

See also setScissor().

void QRhiScissor::setScissor(int x, int y, int w, int h)

Sets the scissor position and size to x, y, w, h.

Note: The position is always expected to be specified in a coordinate system that has its origin in the bottom-left corner, like OpenGL.

See also scissor().

Related Non-Members

[noexcept] size_t qHash(const QRhiScissor &key, size_t seed = 0)

Returns the hash value for key, using seed to seed the calculation.

[noexcept] bool operator!=(const QRhiScissor &a, const QRhiScissor &b)

Returns false if the values in the two QRhiScissor objects a and b are equal; otherwise returns true.

[noexcept] bool operator==(const QRhiScissor &a, const QRhiScissor &b)

Returns true if the values in the two QRhiScissor objects a and b are equal.

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