GraphicsContext Class

(Qt3DRender::Render::GraphicsContext)

Public Functions

GraphicsContext()
~GraphicsContext()
void activateGLHelper()
void activateRenderTarget(const Qt3DCore::QNodeId id, const AttachmentPack &attachments, GLuint defaultFboId)
bool activateShader(ProgramDNA shaderDNA)
int activateTexture(TextureScope scope, GLTexture *tex, int onUnit = -1)
GLuint activeFBO() const
Material *activeMaterial() const
QOpenGLShaderProgram *activeShader() const
void alphaTest(GLenum mode1, GLenum mode2)
bool beginDrawing(QSurface *surface)
void bindBufferBase(GLenum target, GLuint bindingIndex, GLuint buffer)
void bindFragOutputs(GLuint shader, const QHash<QString, int> &outputs)
void bindFramebuffer(GLuint fbo, GraphicsHelperInterface::FBOBindMode mode)
void bindShaderStorageBlock(GLuint programId, GLuint shaderStorageBlockIndex, GLuint shaderStorageBlockBinding)
void bindUniformBlock(GLuint programId, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
void blendEquation(GLenum mode)
void blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRGB, GLenum sAlpha, GLenum dAlpha)
void blendFunci(GLuint buf, GLenum sfactor, GLenum dfactor)
GLuint boundFrameBufferObject()
void buildUniformBuffer(const QVariant &v, const ShaderUniform &description, QByteArray &buffer)
void clearBackBuffer(QClearBuffers::BufferTypeFlags buffers)
void clearBufferf(GLint drawbuffer, const QVector4D &values)
void clearColor(const QColor &color)
void clearDepthValue(float depth)
void clearStencilValue(int stencil)
const GraphicsApiFilterData *contextInfo() const
QOpenGLShaderProgram *createShaderProgram(Shader *shaderNode)
RenderStateSet *currentStateSet() const
void deactivateTexture(GLTexture *tex)
GLuint defaultFBO() const
void depthMask(GLenum mode)
void depthTest(GLenum mode)
void disableClipPlane(int clipPlane)
void disablePrimitiveRestart()
void disablei(GLenum cap, GLuint index)
void dispatchCompute(int x, int y, int z)
void doneCurrent()
QByteArray downloadBufferContent(Buffer *buffer)
void drawArrays(GLenum primitiveType, GLint first, GLsizei count)
void drawArraysIndirect(GLenum mode, void *indirect)
void drawArraysInstanced(GLenum primitiveType, GLint first, GLsizei count, GLsizei instances)
void drawArraysInstancedBaseInstance(GLenum primitiveType, GLint first, GLsizei count, GLsizei instances, GLsizei baseinstance)
void drawElements(GLenum primitiveType, GLsizei primitiveCount, GLint indexType, void *indices, GLint baseVertex)
void drawElementsIndirect(GLenum mode, GLenum type, void *indirect)
void drawElementsInstancedBaseVertexBaseInstance(GLenum primitiveType, GLsizei primitiveCount, GLint indexType, void *indices, GLsizei instances, GLint baseVertex, GLint baseInstance)
void enableClipPlane(int clipPlane)
void enablePrimitiveRestart(int restartIndex)
void enablei(GLenum cap, GLuint index)
void endDrawing(bool swapBuffers)
void executeCommand(const RenderCommand *command)
void frontFace(GLenum mode)
GLBuffer *glBufferForRenderBuffer(Buffer *buf)
bool hasGLBufferForBuffer(Buffer *buffer)
bool hasValidGLHelper() const
int id() const
void introspectShaderInterface(Shader *shader, QOpenGLShaderProgram *shaderProgram)
bool isInitialized() const
void loadShader(Shader *shader, ShaderManager *manager)
bool makeCurrent(QSurface *surface)
char *mapBuffer(GLenum target)
GLint maxClipPlaneCount()
void memoryBarrier(QMemoryBarrier::Operations barriers)
QOpenGLContext *openGLContext()
void pointSize(bool programmable, GLfloat value)
QImage readFramebuffer(QSize size)
void releaseBuffer(Qt3DCore::QNodeId bufferId)
void releaseOpenGL()
void removeShaderProgramReference(Shader *shaderNode)
QSize renderTargetSize(const QSize &surfaceSize) const
void setActiveMaterial(Material *rmat)
void setAlphaCoverageEnabled(bool enabled)
void setClipPlane(int clipPlane, const QVector3D &normal, float distance)
void setCurrentStateSet(RenderStateSet *ss)
void setMSAAEnabled(bool enabled)
void setOpenGLContext(QOpenGLContext *ctx)
bool setParameters(ShaderParameterPack &parameterPack)
void setRenderer(Renderer *renderer)
void setSeamlessCubemap(bool enable)
void setVerticesPerPatch(GLint verticesPerPatch)
void setViewport(const QRectF &viewport, const QSize &surfaceSize)
void specifyAttribute(const Attribute *attribute, Buffer *buffer, int attributeLocation)
void specifyIndices(Buffer *buffer)
bool supportsDrawBuffersBlend() const
bool supportsVAO() const
GLboolean unmapBuffer(GLenum target)
void updateBuffer(Buffer *buffer)
QRectF viewport() const

Static Public Members

GLuint byteSizeFromType(GLint type)
GLint elementType(GLint type)
GLint glDataTypeFromAttributeDataType(QAttribute::VertexBaseType dataType)
GLint tupleSizeFromType(GLint type)

Member Function Documentation

GraphicsContext::GraphicsContext()

Default constructs an instance of GraphicsContext.

GraphicsContext::~GraphicsContext()

Destroys the instance of GraphicsContext.

void GraphicsContext::activateGLHelper()

void GraphicsContext::activateRenderTarget(const Qt3DCore::QNodeId id, const AttachmentPack &attachments, GLuint defaultFboId)

bool GraphicsContext::activateShader(ProgramDNA shaderDNA)

int GraphicsContext::activateTexture(TextureScope scope, GLTexture *tex, int onUnit = -1)

GLuint GraphicsContext::activeFBO() const

Material *GraphicsContext::activeMaterial() const

See also setActiveMaterial().

QOpenGLShaderProgram *GraphicsContext::activeShader() const

void GraphicsContext::alphaTest(GLenum mode1, GLenum mode2)

bool GraphicsContext::beginDrawing(QSurface *surface)

void GraphicsContext::bindBufferBase(GLenum target, GLuint bindingIndex, GLuint buffer)

void GraphicsContext::bindFragOutputs(GLuint shader, const QHash<QString, int> &outputs)

void GraphicsContext::bindFramebuffer(GLuint fbo, GraphicsHelperInterface::FBOBindMode mode)

void GraphicsContext::bindShaderStorageBlock(GLuint programId, GLuint shaderStorageBlockIndex, GLuint shaderStorageBlockBinding)

void GraphicsContext::bindUniformBlock(GLuint programId, GLuint uniformBlockIndex, GLuint uniformBlockBinding)

void GraphicsContext::blendEquation(GLenum mode)

void GraphicsContext::blendFuncSeparatei(GLuint buf, GLenum sRGB, GLenum dRGB, GLenum sAlpha, GLenum dAlpha)

void GraphicsContext::blendFunci(GLuint buf, GLenum sfactor, GLenum dfactor)

GLuint GraphicsContext::boundFrameBufferObject()

void GraphicsContext::buildUniformBuffer(const QVariant &v, const ShaderUniform &description, QByteArray &buffer)

[static] GLuint GraphicsContext::byteSizeFromType(GLint type)

void GraphicsContext::clearBackBuffer(QClearBuffers::BufferTypeFlags buffers)

void GraphicsContext::clearBufferf(GLint drawbuffer, const QVector4D &values)

void GraphicsContext::clearColor(const QColor &color)

void GraphicsContext::clearDepthValue(float depth)

void GraphicsContext::clearStencilValue(int stencil)

const GraphicsApiFilterData *GraphicsContext::contextInfo() const

QOpenGLShaderProgram *GraphicsContext::createShaderProgram(Shader *shaderNode)

RenderStateSet *GraphicsContext::currentStateSet() const

See also setCurrentStateSet().

void GraphicsContext::deactivateTexture(GLTexture *tex)

GLuint GraphicsContext::defaultFBO() const

void GraphicsContext::depthMask(GLenum mode)

void GraphicsContext::depthTest(GLenum mode)

void GraphicsContext::disableClipPlane(int clipPlane)

void GraphicsContext::disablePrimitiveRestart()

void GraphicsContext::disablei(GLenum cap, GLuint index)

void GraphicsContext::dispatchCompute(int x, int y, int z)

void GraphicsContext::doneCurrent()

QByteArray GraphicsContext::downloadBufferContent(Buffer *buffer)

void GraphicsContext::drawArrays(GLenum primitiveType, GLint first, GLsizei count)

void GraphicsContext::drawArraysIndirect(GLenum mode, void *indirect)

void GraphicsContext::drawArraysInstanced(GLenum primitiveType, GLint first, GLsizei count, GLsizei instances)

void GraphicsContext::drawArraysInstancedBaseInstance(GLenum primitiveType, GLint first, GLsizei count, GLsizei instances, GLsizei baseinstance)

void GraphicsContext::drawElements(GLenum primitiveType, GLsizei primitiveCount, GLint indexType, void *indices, GLint baseVertex)

void GraphicsContext::drawElementsIndirect(GLenum mode, GLenum type, void *indirect)

void GraphicsContext::drawElementsInstancedBaseVertexBaseInstance(GLenum primitiveType, GLsizei primitiveCount, GLint indexType, void *indices, GLsizei instances, GLint baseVertex, GLint baseInstance)

[static] GLint GraphicsContext::elementType(GLint type)

void GraphicsContext::enableClipPlane(int clipPlane)

void GraphicsContext::enablePrimitiveRestart(int restartIndex)

void GraphicsContext::enablei(GLenum cap, GLuint index)

void GraphicsContext::endDrawing(bool swapBuffers)

void GraphicsContext::executeCommand(const RenderCommand *command)

void GraphicsContext::frontFace(GLenum mode)

GLBuffer *GraphicsContext::glBufferForRenderBuffer(Buffer *buf)

[static] GLint GraphicsContext::glDataTypeFromAttributeDataType(QAttribute::VertexBaseType dataType)

bool GraphicsContext::hasGLBufferForBuffer(Buffer *buffer)

bool GraphicsContext::hasValidGLHelper() const

int GraphicsContext::id() const

void GraphicsContext::introspectShaderInterface(Shader *shader, QOpenGLShaderProgram *shaderProgram)

bool GraphicsContext::isInitialized() const

void GraphicsContext::loadShader(Shader *shader, ShaderManager *manager)

bool GraphicsContext::makeCurrent(QSurface *surface)

char *GraphicsContext::mapBuffer(GLenum target)

GLint GraphicsContext::maxClipPlaneCount()

void GraphicsContext::memoryBarrier(QMemoryBarrier::Operations barriers)

QOpenGLContext *GraphicsContext::openGLContext()

See also setOpenGLContext().

void GraphicsContext::pointSize(bool programmable, GLfloat value)

QImage GraphicsContext::readFramebuffer(QSize size)

void GraphicsContext::releaseBuffer(Qt3DCore::QNodeId bufferId)

void GraphicsContext::releaseOpenGL()

void GraphicsContext::removeShaderProgramReference(Shader *shaderNode)

QSize GraphicsContext::renderTargetSize(const QSize &surfaceSize) const

void GraphicsContext::setActiveMaterial(Material *rmat)

See also activeMaterial().

void GraphicsContext::setAlphaCoverageEnabled(bool enabled)

void GraphicsContext::setClipPlane(int clipPlane, const QVector3D &normal, float distance)

void GraphicsContext::setCurrentStateSet(RenderStateSet *ss)

See also currentStateSet().

void GraphicsContext::setMSAAEnabled(bool enabled)

void GraphicsContext::setOpenGLContext(QOpenGLContext *ctx)

See also openGLContext().

bool GraphicsContext::setParameters(ShaderParameterPack &parameterPack)

void GraphicsContext::setRenderer(Renderer *renderer)

void GraphicsContext::setSeamlessCubemap(bool enable)

void GraphicsContext::setVerticesPerPatch(GLint verticesPerPatch)

void GraphicsContext::setViewport(const QRectF &viewport, const QSize &surfaceSize)

See also viewport().

void GraphicsContext::specifyAttribute(const Attribute *attribute, Buffer *buffer, int attributeLocation)

void GraphicsContext::specifyIndices(Buffer *buffer)

bool GraphicsContext::supportsDrawBuffersBlend() const

bool GraphicsContext::supportsVAO() const

[static] GLint GraphicsContext::tupleSizeFromType(GLint type)

GLboolean GraphicsContext::unmapBuffer(GLenum target)

void GraphicsContext::updateBuffer(Buffer *buffer)

QRectF GraphicsContext::viewport() const

See also setViewport().