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 &v, 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 &v, size_t seed = 0)

Returns the hash value for v, 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.