virtual | ~RenderState() |
virtual const QRegion * | clipRegion() const = 0 |
virtual void * | get(const char *state) const |
virtual const QMatrix4x4 * | projectionMatrix() const = 0 |
virtual bool | scissorEnabled() const = 0 |
virtual QRect | scissorRect() const = 0 |
virtual bool | stencilEnabled() const = 0 |
virtual int | stencilValue() const = 0 |
[virtual]
RenderState::~RenderState()Destroys the instance of RenderState. The destructor is virtual.
[pure virtual]
const QRegion *RenderState::clipRegion()
constReturns the current clip region or null for backends where clipping is implemented via stencil or scissoring.
The software backend uses no projection, scissor or stencil, meaning most of the render state is not in use. However, the clip region that can be set on the QPainter still has to be communicated since reconstructing this manually in render() is not reasonable. It can therefore be queried via this function. The region is in world coordinates and can be passed to QPainter::setClipRegion() with Qt::ReplaceClip. This must be done before calling QPainter::setTransform() since the clip region is already mapped to the transform provided in QSGRenderNode::matrix().
[virtual]
void *RenderState::get(const char *state) constReturns pointer to a state value.
Reserved for future use.
[pure virtual]
const QMatrix4x4 *RenderState::projectionMatrix() constReturns pointer to the current projection matrix.
The model-view matrix can be retrieved with QSGRenderNode::matrix(). Typically projection * modelview
is the matrix that is then used in the vertex shader to transform
the vertices.
[pure virtual]
bool RenderState::scissorEnabled() constReturns the current state of scissoring.
Note: Only relevant for graphics APIs that have a dedicated on/off state of scissoring.
[pure virtual]
QRect RenderState::scissorRect() constReturns the current scissor rectangle when clipping is active.
Note: Be aware of the differences between graphics APIs: for some the scissor rect is only active when scissoring is enabled (for example, OpenGL), while for others the scissor rect is equal to the viewport rect when there is no need to scissor away anything (for example, Direct3D 12).
[pure virtual]
bool RenderState::stencilEnabled() constReturns the current state of stencil testing.
Note: With graphics APIs where stencil testing is enabled in pipeline state objects, instead of individual state-setting commands, it is up to the implementation of render()
to enable stencil testing with operations KEEP
, comparison function EQUAL
, and a read and write mask of 0xFF
.
[pure virtual]
int RenderState::stencilValue() constReturns the current stencil reference value when clipping is active.
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: