Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QRhiGles2 Class Reference

#include <qrhigles2_p.h>

+ Inheritance diagram for QRhiGles2:
+ Collaboration diagram for QRhiGles2:

Classes

struct  Caps
 
struct  DeferredReleaseEntry
 
struct  OffscreenFrame
 
struct  PipelineCacheData
 

Public Types

enum  ProgramCacheResult { ProgramCacheHit , ProgramCacheMiss , ProgramCacheError }
 

Public Member Functions

 QRhiGles2 (QRhiGles2InitParams *params, QRhiGles2NativeHandles *importDevice=nullptr)
 
bool create (QRhi::Flags flags) override
 
void destroy () override
 
QRhiGraphicsPipelinecreateGraphicsPipeline () override
 
QRhiComputePipelinecreateComputePipeline () override
 
QRhiShaderResourceBindingscreateShaderResourceBindings () override
 
QRhiBuffercreateBuffer (QRhiBuffer::Type type, QRhiBuffer::UsageFlags usage, quint32 size) override
 
QRhiRenderBuffercreateRenderBuffer (QRhiRenderBuffer::Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags, QRhiTexture::Format backingFormatHint) override
 
QRhiTexturecreateTexture (QRhiTexture::Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, QRhiTexture::Flags flags) override
 
QRhiSamplercreateSampler (QRhiSampler::Filter magFilter, QRhiSampler::Filter minFilter, QRhiSampler::Filter mipmapMode, QRhiSampler::AddressMode u, QRhiSampler::AddressMode v, QRhiSampler::AddressMode w) override
 
QRhiTextureRenderTargetcreateTextureRenderTarget (const QRhiTextureRenderTargetDescription &desc, QRhiTextureRenderTarget::Flags flags) override
 
QRhiSwapChaincreateSwapChain () override
 
QRhi::FrameOpResult beginFrame (QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override
 
QRhi::FrameOpResult endFrame (QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override
 
QRhi::FrameOpResult beginOffscreenFrame (QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override
 
QRhi::FrameOpResult endOffscreenFrame (QRhi::EndFrameFlags flags) override
 
QRhi::FrameOpResult finish () override
 
void resourceUpdate (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
 
void beginPass (QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags) override
 
void endPass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
 
void setGraphicsPipeline (QRhiCommandBuffer *cb, QRhiGraphicsPipeline *ps) override
 
void setShaderResources (QRhiCommandBuffer *cb, QRhiShaderResourceBindings *srb, int dynamicOffsetCount, const QRhiCommandBuffer::DynamicOffset *dynamicOffsets) override
 
void setVertexInput (QRhiCommandBuffer *cb, int startBinding, int bindingCount, const QRhiCommandBuffer::VertexInput *bindings, QRhiBuffer *indexBuf, quint32 indexOffset, QRhiCommandBuffer::IndexFormat indexFormat) override
 
void setViewport (QRhiCommandBuffer *cb, const QRhiViewport &viewport) override
 
void setScissor (QRhiCommandBuffer *cb, const QRhiScissor &scissor) override
 
void setBlendConstants (QRhiCommandBuffer *cb, const QColor &c) override
 
void setStencilRef (QRhiCommandBuffer *cb, quint32 refValue) override
 
void draw (QRhiCommandBuffer *cb, quint32 vertexCount, quint32 instanceCount, quint32 firstVertex, quint32 firstInstance) override
 
void drawIndexed (QRhiCommandBuffer *cb, quint32 indexCount, quint32 instanceCount, quint32 firstIndex, qint32 vertexOffset, quint32 firstInstance) override
 
void debugMarkBegin (QRhiCommandBuffer *cb, const QByteArray &name) override
 
void debugMarkEnd (QRhiCommandBuffer *cb) override
 
void debugMarkMsg (QRhiCommandBuffer *cb, const QByteArray &msg) override
 
void beginComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags) override
 
void endComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
 
void setComputePipeline (QRhiCommandBuffer *cb, QRhiComputePipeline *ps) override
 
void dispatch (QRhiCommandBuffer *cb, int x, int y, int z) override
 
const QRhiNativeHandlesnativeHandles (QRhiCommandBuffer *cb) override
 
void beginExternal (QRhiCommandBuffer *cb) override
 
void endExternal (QRhiCommandBuffer *cb) override
 
double lastCompletedGpuTime (QRhiCommandBuffer *cb) override
 
QList< int > supportedSampleCounts () const override
 
int ubufAlignment () const override
 
bool isYUpInFramebuffer () const override
 
bool isYUpInNDC () const override
 
bool isClipDepthZeroToOne () const override
 
QMatrix4x4 clipSpaceCorrMatrix () const override
 
bool isTextureFormatSupported (QRhiTexture::Format format, QRhiTexture::Flags flags) const override
 
bool isFeatureSupported (QRhi::Feature feature) const override
 
int resourceLimit (QRhi::ResourceLimit limit) const override
 
const QRhiNativeHandlesnativeHandles () override
 
QRhiDriverInfo driverInfo () const override
 
QRhiStats statistics () override
 
bool makeThreadLocalNativeContextCurrent () override
 
void releaseCachedResources () override
 
bool isDeviceLost () const override
 
QByteArray pipelineCacheData () override
 
void setPipelineCacheData (const QByteArray &data) override
 
bool ensureContext (QSurface *surface=nullptr) const
 
QSurfaceevaluateFallbackSurface () const
 
void executeDeferredReleases ()
 
void trackedBufferBarrier (QGles2CommandBuffer *cbD, QGles2Buffer *bufD, QGles2Buffer::Access access)
 
void trackedImageBarrier (QGles2CommandBuffer *cbD, QGles2Texture *texD, QGles2Texture::Access access)
 
void enqueueSubresUpload (QGles2Texture *texD, QGles2CommandBuffer *cbD, int layer, int level, const QRhiTextureSubresourceUploadDescription &subresDesc)
 
void enqueueResourceUpdates (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)
 
void trackedRegisterBuffer (QRhiPassResourceTracker *passResTracker, QGles2Buffer *bufD, QRhiPassResourceTracker::BufferAccess access, QRhiPassResourceTracker::BufferStage stage)
 
void trackedRegisterTexture (QRhiPassResourceTracker *passResTracker, QGles2Texture *texD, QRhiPassResourceTracker::TextureAccess access, QRhiPassResourceTracker::TextureStage stage)
 
void executeCommandBuffer (QRhiCommandBuffer *cb)
 
void executeBindGraphicsPipeline (QGles2CommandBuffer *cbD, QGles2GraphicsPipeline *psD)
 
void bindCombinedSampler (QGles2CommandBuffer *cbD, QGles2Texture *texD, QGles2Sampler *samplerD, void *ps, uint psGeneration, int glslLocation, int *texUnit, bool *activeTexUnitAltered)
 
void bindShaderResources (QGles2CommandBuffer *cbD, QRhiGraphicsPipeline *maybeGraphicsPs, QRhiComputePipeline *maybeComputePs, QRhiShaderResourceBindings *srb, const uint *dynOfsPairs, int dynOfsCount)
 
QGles2RenderTargetDataenqueueBindFramebuffer (QRhiRenderTarget *rt, QGles2CommandBuffer *cbD, bool *wantsColorClear=nullptr, bool *wantsDsClear=nullptr)
 
void enqueueBarriersForPass (QGles2CommandBuffer *cbD)
 
int effectiveSampleCount (int sampleCount) const
 
QByteArray shaderSource (const QRhiShaderStage &shaderStage, QShaderVersion *shaderVersion)
 
bool compileShader (GLuint program, const QRhiShaderStage &shaderStage, QShaderVersion *shaderVersion)
 
bool linkProgram (GLuint program)
 
void registerUniformIfActive (const QShaderDescription::BlockVariable &var, const QByteArray &namePrefix, int binding, int baseOffset, GLuint program, QDuplicateTracker< int, 256 > *activeUniformLocations, QGles2UniformDescriptionVector *dst)
 
void gatherUniforms (GLuint program, const QShaderDescription::UniformBlock &ub, QDuplicateTracker< int, 256 > *activeUniformLocations, QGles2UniformDescriptionVector *dst)
 
void gatherSamplers (GLuint program, const QShaderDescription::InOutVariable &v, QGles2SamplerDescriptionVector *dst)
 
void gatherGeneratedSamplers (GLuint program, const QShader::SeparateToCombinedImageSamplerMapping &mapping, QGles2SamplerDescriptionVector *dst)
 
void sanityCheckVertexFragmentInterface (const QShaderDescription &vsDesc, const QShaderDescription &fsDesc)
 
bool isProgramBinaryDiskCacheEnabled () const
 
ProgramCacheResult tryLoadFromDiskOrPipelineCache (const QRhiShaderStage *stages, int stageCount, GLuint program, const QVector< QShaderDescription::InOutVariable > &inputVars, QByteArray *cacheKey)
 
void trySaveToDiskCache (GLuint program, const QByteArray &cacheKey)
 
void trySaveToPipelineCache (GLuint program, const QByteArray &cacheKey, bool force=false)
 
 void (QOPENGLF_APIENTRYP glPolygonMode)(GLenum
 
 void (QOPENGLF_APIENTRYP glTexImage1D)(GLenum
 
const void * void (QOPENGLF_APIENTRYP glTexStorage1D)(GLenum
 
 void (QOPENGLF_APIENTRYP glTexSubImage1D)(GLenum
 
const GLvoid * void (QOPENGLF_APIENTRYP glCopyTexSubImage1D)(GLenum
 
 void (QOPENGLF_APIENTRYP glCompressedTexImage1D)(GLenum
 
const GLvoid * void (QOPENGLF_APIENTRYP glCompressedTexSubImage1D)(GLenum
 
const GLvoid const GLvoid * void (QOPENGLF_APIENTRYP glFramebufferTexture1D)(GLenum
 
 void (QOPENGLF_APIENTRYP glFramebufferTextureMultiviewOVR)(GLenum
 
- Public Member Functions inherited from QRhiImplementation
virtual ~QRhiImplementation ()
 
virtual bool create (QRhi::Flags flags)=0
 
virtual void destroy ()=0
 
virtual QRhiGraphicsPipelinecreateGraphicsPipeline ()=0
 
virtual QRhiComputePipelinecreateComputePipeline ()=0
 
virtual QRhiShaderResourceBindingscreateShaderResourceBindings ()=0
 
virtual QRhiBuffercreateBuffer (QRhiBuffer::Type type, QRhiBuffer::UsageFlags usage, quint32 size)=0
 
virtual QRhiRenderBuffercreateRenderBuffer (QRhiRenderBuffer::Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags, QRhiTexture::Format backingFormatHint)=0
 
virtual QRhiTexturecreateTexture (QRhiTexture::Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, QRhiTexture::Flags flags)=0
 
virtual QRhiSamplercreateSampler (QRhiSampler::Filter magFilter, QRhiSampler::Filter minFilter, QRhiSampler::Filter mipmapMode, QRhiSampler::AddressMode u, QRhiSampler::AddressMode v, QRhiSampler::AddressMode w)=0
 
virtual QRhiTextureRenderTargetcreateTextureRenderTarget (const QRhiTextureRenderTargetDescription &desc, QRhiTextureRenderTarget::Flags flags)=0
 
virtual QRhiSwapChaincreateSwapChain ()=0
 
virtual QRhi::FrameOpResult beginFrame (QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags)=0
 
virtual QRhi::FrameOpResult endFrame (QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags)=0
 
virtual QRhi::FrameOpResult beginOffscreenFrame (QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags)=0
 
virtual QRhi::FrameOpResult endOffscreenFrame (QRhi::EndFrameFlags flags)=0
 
virtual QRhi::FrameOpResult finish ()=0
 
virtual void resourceUpdate (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)=0
 
virtual void beginPass (QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags)=0
 
virtual void endPass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)=0
 
virtual void setGraphicsPipeline (QRhiCommandBuffer *cb, QRhiGraphicsPipeline *ps)=0
 
virtual void setShaderResources (QRhiCommandBuffer *cb, QRhiShaderResourceBindings *srb, int dynamicOffsetCount, const QRhiCommandBuffer::DynamicOffset *dynamicOffsets)=0
 
virtual void setVertexInput (QRhiCommandBuffer *cb, int startBinding, int bindingCount, const QRhiCommandBuffer::VertexInput *bindings, QRhiBuffer *indexBuf, quint32 indexOffset, QRhiCommandBuffer::IndexFormat indexFormat)=0
 
virtual void setViewport (QRhiCommandBuffer *cb, const QRhiViewport &viewport)=0
 
virtual void setScissor (QRhiCommandBuffer *cb, const QRhiScissor &scissor)=0
 
virtual void setBlendConstants (QRhiCommandBuffer *cb, const QColor &c)=0
 
virtual void setStencilRef (QRhiCommandBuffer *cb, quint32 refValue)=0
 
virtual void draw (QRhiCommandBuffer *cb, quint32 vertexCount, quint32 instanceCount, quint32 firstVertex, quint32 firstInstance)=0
 
virtual void drawIndexed (QRhiCommandBuffer *cb, quint32 indexCount, quint32 instanceCount, quint32 firstIndex, qint32 vertexOffset, quint32 firstInstance)=0
 
virtual void debugMarkBegin (QRhiCommandBuffer *cb, const QByteArray &name)=0
 
virtual void debugMarkEnd (QRhiCommandBuffer *cb)=0
 
virtual void debugMarkMsg (QRhiCommandBuffer *cb, const QByteArray &msg)=0
 
virtual void beginComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags)=0
 
virtual void endComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)=0
 
virtual void setComputePipeline (QRhiCommandBuffer *cb, QRhiComputePipeline *ps)=0
 
virtual void dispatch (QRhiCommandBuffer *cb, int x, int y, int z)=0
 
virtual const QRhiNativeHandlesnativeHandles (QRhiCommandBuffer *cb)=0
 
virtual void beginExternal (QRhiCommandBuffer *cb)=0
 
virtual void endExternal (QRhiCommandBuffer *cb)=0
 
virtual double lastCompletedGpuTime (QRhiCommandBuffer *cb)=0
 
virtual QList< int > supportedSampleCounts () const =0
 
virtual int ubufAlignment () const =0
 
virtual bool isYUpInFramebuffer () const =0
 
virtual bool isYUpInNDC () const =0
 
virtual bool isClipDepthZeroToOne () const =0
 
virtual QMatrix4x4 clipSpaceCorrMatrix () const =0
 
virtual bool isTextureFormatSupported (QRhiTexture::Format format, QRhiTexture::Flags flags) const =0
 
virtual bool isFeatureSupported (QRhi::Feature feature) const =0
 
virtual int resourceLimit (QRhi::ResourceLimit limit) const =0
 
virtual const QRhiNativeHandlesnativeHandles ()=0
 
virtual QRhiDriverInfo driverInfo () const =0
 
virtual QRhiStats statistics ()=0
 
virtual bool makeThreadLocalNativeContextCurrent ()=0
 
virtual void releaseCachedResources ()=0
 
virtual bool isDeviceLost () const =0
 
virtual QByteArray pipelineCacheData ()=0
 
virtual void setPipelineCacheData (const QByteArray &data)=0
 
void prepareForCreate (QRhi *rhi, QRhi::Implementation impl, QRhi::Flags flags)
 
bool isCompressedFormat (QRhiTexture::Format format) const
 
void compressedFormatInfo (QRhiTexture::Format format, const QSize &size, quint32 *bpl, quint32 *byteSize, QSize *blockDim) const
 
void textureFormatInfo (QRhiTexture::Format format, const QSize &size, quint32 *bpl, quint32 *byteSize, quint32 *bytesPerPixel) const
 
bool isStencilSupportingFormat (QRhiTexture::Format format) const
 
void registerResource (QRhiResource *res, bool ownsNativeResources=true)
 
void unregisterResource (QRhiResource *res)
 
void addDeleteLater (QRhiResource *res)
 
void addCleanupCallback (const QRhi::CleanupCallback &callback)
 
bool sanityCheckGraphicsPipeline (QRhiGraphicsPipeline *ps)
 
bool sanityCheckShaderResourceBindings (QRhiShaderResourceBindings *srb)
 
void updateLayoutDesc (QRhiShaderResourceBindings *srb)
 
quint32 pipelineCacheRhiId () const
 
void pipelineCreationStart ()
 
void pipelineCreationEnd ()
 
qint64 totalPipelineCreationTime () const
 
QRhiVertexInputAttribute::Format shaderDescVariableFormatToVertexInputFormat (QShaderDescription::VariableType type) const
 
quint32 byteSizePerVertexForVertexInputFormat (QRhiVertexInputAttribute::Format format) const
 

Public Attributes

QRhi::Flags rhiFlags
 
QOpenGLContextctx = nullptr
 
bool importedContext = false
 
QSurfaceFormat requestedFormat
 
QSurfacefallbackSurface = nullptr
 
QPointer< QWindowmaybeWindow = nullptr
 
QOpenGLContextmaybeShareContext = nullptr
 
bool needsMakeCurrentDueToSwap = false
 
QOpenGLExtensionsf = nullptr
 
 GLenum = nullptr
 
 GLint
 
 GLsizei = nullptr
 
const void GLint
 
const void GLenum
 
const void GLsizei = nullptr
 
const GLvoid GLint
 
const GLvoid GLsizei = nullptr
 
const GLvoid GLenum
 
const GLvoid const GLvoid GLenum
 
const GLvoid const GLvoid GLuint
 
const GLvoid const GLvoid GLint = nullptr
 
 GLuint
 
uint vao = 0
 
struct QRhiGles2::Caps caps
 
QGles2SwapChaincurrentSwapChain = nullptr
 
QSet< GLintsupportedCompressedFormats
 
QList< int > supportedSampleCountList
 
QRhiGles2NativeHandles nativeHandlesStruct
 
QRhiDriverInfo driverInfoStruct
 
bool contextLost = false
 
QList< DeferredReleaseEntryreleaseQueue
 
struct QRhiGles2::OffscreenFrame ofr
 
QHash< QRhiShaderStage, uintm_shaderCache
 
QHash< QByteArray, PipelineCacheDatam_pipelineCache
 
- Public Attributes inherited from QRhiImplementation
QRhiq
 
bool debugMarkers = false
 
int currentFrameSlot = 0
 
bool inFrame = false
 

Additional Inherited Members

- Static Public Member Functions inherited from QRhiImplementation
static const QRhiShaderResourceBinding::DatashaderResourceBindingData (const QRhiShaderResourceBinding &binding)
 
static QRhiShaderResourceBinding::DatashaderResourceBindingData (QRhiShaderResourceBinding &binding)
 
static bool sortedBindingLessThan (const QRhiShaderResourceBinding &a, const QRhiShaderResourceBinding &b)
 
- Static Public Attributes inherited from QRhiImplementation
static const int MAX_SHADER_CACHE_ENTRIES = 128
 

Detailed Description

Definition at line 730 of file qrhigles2_p.h.

Member Enumeration Documentation

◆ ProgramCacheResult

Enumerator
ProgramCacheHit 
ProgramCacheMiss 
ProgramCacheError 

Definition at line 889 of file qrhigles2_p.h.

Constructor & Destructor Documentation

◆ QRhiGles2()

QRhiGles2::QRhiGles2 ( QRhiGles2InitParams params,
QRhiGles2NativeHandles importDevice = nullptr 
)

Definition at line 556 of file qrhigles2.cpp.

References fallbackSurface, importedContext, maybeShareContext, maybeWindow, qWarning, requestedFormat, and QOpenGLContext::shareContext().

+ Here is the call graph for this function:

Member Function Documentation

◆ beginComputePass()

void QRhiGles2::beginComputePass ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates,
QRhiCommandBuffer::BeginPassFlags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 4414 of file qrhigles2.cpp.

References cb, QGles2CommandBuffer::ComputePass, enqueueBarriersForPass(), enqueueResourceUpdates(), QGles2CommandBuffer::NoPass, Q_ASSERT, QRHI_RES, QGles2CommandBuffer::recordingPass, and QGles2CommandBuffer::resetCachedState().

+ Here is the call graph for this function:

◆ beginExternal()

◆ beginFrame()

QRhi::FrameOpResult QRhiGles2::beginFrame ( QRhiSwapChain swapChain,
QRhi::BeginFrameFlags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 2036 of file qrhigles2.cpp.

References addBoundaryCommand(), QGles2CommandBuffer::Command::BeginFrame, QGles2SwapChain::cb, contextLost, currentSwapChain, ensureContext(), executeDeferredReleases(), QRhi::FrameOpDeviceLost, QRhi::FrameOpError, QRhi::FrameOpSuccess, QRHI_RES, QGles2CommandBuffer::resetState(), and QGles2SwapChain::surface.

+ Here is the call graph for this function:

◆ beginOffscreenFrame()

QRhi::FrameOpResult QRhiGles2::beginOffscreenFrame ( QRhiCommandBuffer **  cb,
QRhi::BeginFrameFlags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 2081 of file qrhigles2.cpp.

References QRhiGles2::OffscreenFrame::active, addBoundaryCommand(), QGles2CommandBuffer::Command::BeginFrame, cb, QRhiGles2::OffscreenFrame::cbWrapper, contextLost, ensureContext(), executeDeferredReleases(), QRhi::FrameOpDeviceLost, QRhi::FrameOpError, QRhi::FrameOpSuccess, ofr, and QGles2CommandBuffer::resetState().

+ Here is the call graph for this function:

◆ beginPass()

void QRhiGles2::beginPass ( QRhiCommandBuffer cb,
QRhiRenderTarget rt,
const QColor colorClearValue,
const QRhiDepthStencilClearValue depthStencilClearValue,
QRhiResourceUpdateBatch resourceUpdates,
QRhiCommandBuffer::BeginPassFlags  flags 
)
overridevirtual

◆ bindCombinedSampler()

◆ bindShaderResources()

void QRhiGles2::bindShaderResources ( QGles2CommandBuffer cbD,
QRhiGraphicsPipeline maybeGraphicsPs,
QRhiComputePipeline maybeComputePs,
QRhiShaderResourceBindings srb,
const uint dynOfsPairs,
int  dynOfsCount 
)

Definition at line 3811 of file qrhigles2.cpp.

References QVarLengthArray< T, Prealloc >::append(), QVarLengthArray< T, Prealloc >::at(), bindCombinedSampler(), QShaderDescription::Bool, QShaderDescription::Bool2, QShaderDescription::Bool3, QShaderDescription::Bool4, QGles2Buffer::buffer, QRhiShaderResourceBinding::BufferLoad, QRhiShaderResourceBinding::BufferLoadStore, QRhiShaderResourceBinding::BufferStore, QGles2UniformState::componentCount, QVarLengthArray< T, Prealloc >::constData(), QByteArray::constData(), QRhiTexture::CubeMap, QVarLengthArray< T, Prealloc >::data(), QGles2Buffer::data, QShaderDescription::Float, GL_READ_ONLY, GL_READ_WRITE, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE0, GL_WRITE_ONLY, GLenum, QGles2Texture::glsizedintformat, GLuint, i, QRhiShaderResourceBinding::ImageLoad, QRhiShaderResourceBinding::ImageLoadStore, QRhiShaderResourceBinding::ImageStore, QShaderDescription::Int, QShaderDescription::Int2, QShaderDescription::Int3, QShaderDescription::Int4, QVarLengthArray< T, Prealloc >::isEmpty(), j, QRhiShaderResourceBindings::m_bindings, QRhiTexture::m_flags, QRhiBuffer::m_size, QRhiBuffer::m_usage, QShaderDescription::Mat2, QShaderDescription::Mat3, QShaderDescription::Mat4, QGles2UniformState::MAX_TRACKED_LOCATION, Q_ASSERT, qMax(), QRHI_RES, qrhi_std140_to_packed(), qWarning, QVarLengthArray< T, Prealloc >::resize(), QRhiShaderResourceBinding::SampledTexture, QRhiShaderResourceBinding::Sampler, QRhiImplementation::shaderResourceBindingData(), QVLABaseBase::size(), QRhiBuffer::StorageBuffer, QRhiShaderResourceBinding::Texture, QGles2Texture::texture, QShaderDescription::Uint, QShaderDescription::Uint2, QShaderDescription::Uint3, QShaderDescription::Uint4, QRhiShaderResourceBinding::UniformBuffer, QRhiTexture::UsedWithLoadStore, QGles2UniformState::v, QShaderDescription::Vec2, QShaderDescription::Vec3, and QShaderDescription::Vec4.

Referenced by executeCommandBuffer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clipSpaceCorrMatrix()

QMatrix4x4 QRhiGles2::clipSpaceCorrMatrix ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1143 of file qrhigles2.cpp.

◆ compileShader()

bool QRhiGles2::compileShader ( GLuint  program,
const QRhiShaderStage shaderStage,
QShaderVersion shaderVersion 
)

◆ create()

bool QRhiGles2::create ( QRhi::Flags  flags)
overridevirtual

Implements QRhiImplementation.

Definition at line 684 of file qrhigles2.cpp.

References QRhiTexture::ASTC_10x10, QRhiTexture::ASTC_10x5, QRhiTexture::ASTC_10x8, QRhiTexture::ASTC_12x10, QRhiTexture::ASTC_12x12, QRhiTexture::ASTC_4x4, QRhiTexture::ASTC_5x4, QRhiTexture::ASTC_5x5, QRhiTexture::ASTC_6x5, QRhiTexture::ASTC_6x6, QRhiTexture::ASTC_8x5, QRhiTexture::ASTC_8x6, QRhiTexture::ASTC_8x8, QOpenGLExtensions::ASTCTextureCompression, QRhiGles2::Caps::baseVertex, QRhiTexture::BC1, QRhiTexture::BC2, QRhiTexture::BC3, QRhiGles2::Caps::bgraExternalFormat, QRhiGles2::Caps::bgraInternalFormat, QOpenGLExtensions::BGRATextureFormat, caps, QRhiGles2::Caps::compute, contextLost, QSurfaceFormat::CoreProfile, QRhiGles2::Caps::coreProfile, ctx, QRhiGles2::Caps::ctxMajor, QRhiGles2::Caps::ctxMinor, QVarLengthArray< T, Prealloc >::data(), QOpenGLExtensions::DDSTextureCompression, QOpenGLExtensions::Depth24, QRhiGles2::Caps::depth24, QRhiGles2::Caps::depthTexture, QRhiDriverInfo::deviceName, driverInfoStruct, QOpenGLExtensions::ElementIndexUint, QRhiGles2::Caps::elementIndexUint, ensureContext(), QRhiTexture::ETC2_RGB8, QRhiTexture::ETC2_RGB8A1, QRhiTexture::ETC2_RGBA8, QOpenGLExtensions::ETC2TextureCompression, fallbackSurface, QRhiGles2::Caps::fixedIndexPrimitiveRestart, QRhiGles2::Caps::floatFormats, QOpenGLExtensions::FramebufferBlit, QOpenGLExtensions::FramebufferMultisample, QRhiGles2::Caps::geometryShader, GL_COMPRESSED_TEXTURE_FORMATS, GL_MAX_ARRAY_TEXTURE_LAYERS, GL_MAX_COMPUTE_WORK_GROUP_COUNT, GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, GL_MAX_COMPUTE_WORK_GROUP_SIZE, GL_MAX_DRAW_BUFFERS, GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, GL_MAX_FRAGMENT_UNIFORM_VECTORS, GL_MAX_SAMPLES, GL_MAX_VARYING_COMPONENTS, GL_MAX_VARYING_FLOATS, GL_MAX_VARYING_VECTORS, GL_MAX_VERTEX_ATTRIBS, GL_MAX_VERTEX_OUTPUT_COMPONENTS, GL_MAX_VERTEX_UNIFORM_COMPONENTS, GL_MAX_VERTEX_UNIFORM_VECTORS, GL_NUM_COMPRESSED_TEXTURE_FORMATS, GL_NUM_PROGRAM_BINARY_FORMATS, GL_POINT_SPRITE, GL_PRIMITIVE_RESTART_FIXED_INDEX, GL_TEXTURE_CUBE_MAP_SEAMLESS, GL_VERTEX_PROGRAM_POINT_SIZE, GLenum, QRhiGles2::Caps::gles, GLint, GLsizei, GLuint, QRhiGles2::Caps::halfAttributes, QOpenGLExtensions::HalfFloatVertex, QRhiGles2::Caps::hasDrawBuffersFunc, importedContext, QSet< T >::insert(), QRhiGles2::Caps::instancing, QRhiGles2::Caps::intAttributes, QSurfaceFormat::majorVersion(), QOpenGLExtensions::MapBufferRange, QRhiGles2::Caps::maxDrawBuffers, QRhiGles2::Caps::maxSamples, QRhiGles2::Caps::maxTextureArraySize, QRhiGles2::Caps::maxTextureSize, QRhiGles2::Caps::maxThreadGroupsPerDimension, QRhiGles2::Caps::maxThreadGroupsX, QRhiGles2::Caps::maxThreadGroupsY, QRhiGles2::Caps::maxThreadGroupsZ, QRhiGles2::Caps::maxThreadsPerThreadGroup, QRhiGles2::Caps::maxUniformVectors, QRhiGles2::Caps::maxVertexInputs, QRhiGles2::Caps::maxVertexOutputs, maybeShareContext, maybeWindow, QSurfaceFormat::minorVersion(), QRhiGles2::Caps::msaaRenderBuffer, QRhiGles2::Caps::multisampledTexture, QOpenGLExtensions::MultiView, QRhiGles2::Caps::multiView, QOpenGLExtensions::MultiViewExtended, nativeHandlesStruct, QRhiGles2::Caps::needsDepthStencilCombinedAttach, QRhiGles2::Caps::nonBaseLevelFramebufferTexture, QRhiGles2::Caps::npotTextureFull, QOpenGLFunctions::NPOTTextureRepeat, QOpenGLFunctions::NPOTTextures, QSurfaceFormat::OpenGLES, QOpenGLExtensions::PackedDepthStencil, QRhiGles2::Caps::packedDepthStencil, QSurfaceFormat::profile(), QRhiGles2::Caps::programBinary, QRhiGles2::Caps::properMapBuffer, Q_ASSERT, QByteArrayLiteral, qCDebug, qMax(), qMin(), QOPENGLF_APIENTRYP, qt_gl_global_share_context(), qWarning, QRhiGles2::Caps::r16Format, QRhiGles2::Caps::r8Format, QSurfaceFormat::renderableType(), renderer, requestedFormat, QRhiGles2::Caps::rgb10Formats, QRhiGles2::Caps::rgba8Format, rhiFlags, QOpenGLContext::screen(), QRhiGles2::Caps::screenSpaceDerivatives, QOpenGLContext::setFormat(), QOpenGLExtensions::Sized16Formats, QOpenGLExtensions::Sized8Formats, QRhiTexture::sRGB, QRhiGles2::Caps::srgbCapableDefaultFramebuffer, QOpenGLExtensions::SRGBFrameBuffer, QOpenGLExtensions::StandardDerivatives, supportedCompressedFormats, QRhiGles2::Caps::tessellation, QRhiGles2::Caps::texelFetch, QRhiGles2::Caps::texture1D, QRhiGles2::Caps::texture3D, QRhiGles2::Caps::textureCompareMode, QOpenGLFunctions::TextureRGFormats, toGlCompressedTextureFormat(), and QRhiGles2::Caps::uniformBuffers.

+ Here is the call graph for this function:

◆ createBuffer()

QRhiBuffer * QRhiGles2::createBuffer ( QRhiBuffer::Type  type,
QRhiBuffer::UsageFlags  usage,
quint32  size 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1116 of file qrhigles2.cpp.

◆ createComputePipeline()

QRhiComputePipeline * QRhiGles2::createComputePipeline ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1647 of file qrhigles2.cpp.

◆ createGraphicsPipeline()

QRhiGraphicsPipeline * QRhiGles2::createGraphicsPipeline ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1637 of file qrhigles2.cpp.

◆ createRenderBuffer()

QRhiRenderBuffer * QRhiGles2::createRenderBuffer ( QRhiRenderBuffer::Type  type,
const QSize pixelSize,
int  sampleCount,
QRhiRenderBuffer::Flags  flags,
QRhiTexture::Format  backingFormatHint 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1610 of file qrhigles2.cpp.

◆ createSampler()

QRhiSampler * QRhiGles2::createSampler ( QRhiSampler::Filter  magFilter,
QRhiSampler::Filter  minFilter,
QRhiSampler::Filter  mipmapMode,
QRhiSampler::AddressMode  u,
QRhiSampler::AddressMode  v,
QRhiSampler::AddressMode  w 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1624 of file qrhigles2.cpp.

◆ createShaderResourceBindings()

QRhiShaderResourceBindings * QRhiGles2::createShaderResourceBindings ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1642 of file qrhigles2.cpp.

◆ createSwapChain()

QRhiSwapChain * QRhiGles2::createSwapChain ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1111 of file qrhigles2.cpp.

◆ createTexture()

QRhiTexture * QRhiGles2::createTexture ( QRhiTexture::Format  format,
const QSize pixelSize,
int  depth,
int  arraySize,
int  sampleCount,
QRhiTexture::Flags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1617 of file qrhigles2.cpp.

◆ createTextureRenderTarget()

QRhiTextureRenderTarget * QRhiGles2::createTextureRenderTarget ( const QRhiTextureRenderTargetDescription desc,
QRhiTextureRenderTarget::Flags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1631 of file qrhigles2.cpp.

References desc.

◆ debugMarkBegin()

void QRhiGles2::debugMarkBegin ( QRhiCommandBuffer cb,
const QByteArray name 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1935 of file qrhigles2.cpp.

References cb, QRhiImplementation::debugMarkers, and Q_UNUSED.

◆ debugMarkEnd()

void QRhiGles2::debugMarkEnd ( QRhiCommandBuffer cb)
overridevirtual

Implements QRhiImplementation.

Definition at line 1944 of file qrhigles2.cpp.

References cb, QRhiImplementation::debugMarkers, and Q_UNUSED.

◆ debugMarkMsg()

void QRhiGles2::debugMarkMsg ( QRhiCommandBuffer cb,
const QByteArray msg 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1952 of file qrhigles2.cpp.

References cb, QRhiImplementation::debugMarkers, and Q_UNUSED.

◆ destroy()

void QRhiGles2::destroy ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1036 of file qrhigles2.cpp.

References QHash< Key, T >::clear(), ctx, ensureContext(), executeDeferredReleases(), importedContext, m_shaderCache, and vao.

+ Here is the call graph for this function:

◆ dispatch()

void QRhiGles2::dispatch ( QRhiCommandBuffer cb,
int  x,
int  y,
int  z 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 4480 of file qrhigles2.cpp.

References QGles2CommandBuffer::Command::args, QVarLengthArray< T, Prealloc >::at(), QGles2CommandBuffer::Command::Barrier, QGles2CommandBuffer::Command::Args::barrier, QGles2CommandBuffer::Command::Args::barriers, QHash< Key, T >::begin(), QRhiShaderResourceBinding::BufferLoad, QRhiShaderResourceBinding::BufferLoadStore, QRhiShaderResourceBinding::BufferStore, cb, QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QGles2CommandBuffer::ComputePass, QGles2CommandBuffer::computePassState, QGles2CommandBuffer::currentComputeSrb, QGles2CommandBuffer::Command::Dispatch, QGles2CommandBuffer::Command::Args::dispatch, QHash< Key, T >::end(), QHash< Key, T >::erase(), GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, GL_SHADER_STORAGE_BARRIER_BIT, GLbitfield(), GLuint, i, QRhiShaderResourceBinding::ImageLoad, QRhiShaderResourceBinding::ImageLoadStore, QRhiShaderResourceBinding::ImageStore, it, QRhiShaderResourceBindings::m_bindings, Q_ASSERT, QRHI_RES, qrhigl_accumulateComputeResource(), QGles2CommandBuffer::ComputePassState::Read, QGles2CommandBuffer::recordingPass, QRhiImplementation::shaderResourceBindingData(), QVLABaseBase::size(), QRhiResource::Texture, QGles2CommandBuffer::ComputePassState::writtenResources, QGles2CommandBuffer::Command::Args::x, QGles2CommandBuffer::Command::Args::y, and QGles2CommandBuffer::Command::Args::z.

+ Here is the call graph for this function:

◆ draw()

◆ drawIndexed()

◆ driverInfo()

QRhiDriverInfo QRhiGles2::driverInfo ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1441 of file qrhigles2.cpp.

References driverInfoStruct.

◆ effectiveSampleCount()

int QRhiGles2::effectiveSampleCount ( int  sampleCount) const

Definition at line 1100 of file qrhigles2.cpp.

References contains(), qBound(), qWarning, and supportedSampleCounts().

+ Here is the call graph for this function:

◆ endComputePass()

void QRhiGles2::endComputePass ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 4431 of file qrhigles2.cpp.

References cb, QGles2CommandBuffer::ComputePass, enqueueResourceUpdates(), QGles2CommandBuffer::NoPass, Q_ASSERT, QRHI_RES, and QGles2CommandBuffer::recordingPass.

+ Here is the call graph for this function:

◆ endExternal()

void QRhiGles2::endExternal ( QRhiCommandBuffer cb)
overridevirtual

◆ endFrame()

QRhi::FrameOpResult QRhiGles2::endFrame ( QRhiSwapChain swapChain,
QRhi::EndFrameFlags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 2054 of file qrhigles2.cpp.

References addBoundaryCommand(), QGles2SwapChain::cb, contextLost, currentSwapChain, QGles2CommandBuffer::Command::EndFrame, ensureContext(), executeCommandBuffer(), QGles2SwapChain::frameCount, QRhi::FrameOpDeviceLost, QRhi::FrameOpError, QRhi::FrameOpSuccess, needsMakeCurrentDueToSwap, Q_ASSERT, QRHI_RES, QRhi::SkipPresent, and QGles2SwapChain::surface.

+ Here is the call graph for this function:

◆ endOffscreenFrame()

QRhi::FrameOpResult QRhiGles2::endOffscreenFrame ( QRhi::EndFrameFlags  flags)
overridevirtual

Implements QRhiImplementation.

Definition at line 2097 of file qrhigles2.cpp.

References QRhiGles2::OffscreenFrame::active, addBoundaryCommand(), QRhiGles2::OffscreenFrame::cbWrapper, contextLost, QGles2CommandBuffer::Command::EndFrame, ensureContext(), executeCommandBuffer(), QRhi::FrameOpDeviceLost, QRhi::FrameOpError, QRhi::FrameOpSuccess, ofr, Q_ASSERT, and Q_UNUSED.

+ Here is the call graph for this function:

◆ endPass()

void QRhiGles2::endPass ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 4333 of file qrhigles2.cpp.

References QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::BlitFromRenderbuffer, QGles2CommandBuffer::Command::Args::blitFromRenderbuffer, QGles2CommandBuffer::Command::BlitFromTexture, QGles2CommandBuffer::Command::Args::blitFromTexture, cb, QRhiTextureRenderTargetDescription::cbeginColorAttachments(), QRhiTextureRenderTargetDescription::cendColorAttachments(), QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QRhiTexture::CubeMap, QGles2CommandBuffer::currentTarget, QGles2CommandBuffer::Command::Args::dstLayer, QGles2CommandBuffer::Command::Args::dstLevel, QGles2CommandBuffer::Command::Args::dstTarget, QGles2CommandBuffer::Command::Args::dstTexture, enqueueResourceUpdates(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, QGles2CommandBuffer::Command::Args::h, QSize::height(), it, QRhiColorAttachment::layer(), QRhiColorAttachment::level(), QRhiTextureRenderTarget::m_desc, QRhiTexture::m_flags, QRhiColorAttachment::multiViewCount(), QGles2CommandBuffer::NoPass, QRhiTexture::pixelSize(), QRhiRenderBuffer::pixelSize(), Q_ASSERT, QRHI_RES, qWarning, QGles2CommandBuffer::recordingPass, QRhiColorAttachment::renderBuffer(), QGles2RenderBuffer::renderbuffer, QGles2CommandBuffer::Command::Args::renderbuffer, QGles2CommandBuffer::RenderPass, QRhiColorAttachment::resolveLayer(), QRhiColorAttachment::resolveLevel(), QRhiColorAttachment::resolveTexture(), QRhiResource::resourceType(), QGles2CommandBuffer::Command::Args::srcLayer, QGles2CommandBuffer::Command::Args::srcLevel, QGles2CommandBuffer::Command::Args::srcTarget, QGles2CommandBuffer::Command::Args::srcTexture, QGles2Texture::target, QGles2CommandBuffer::Command::Args::target, QRhiColorAttachment::texture(), QGles2Texture::texture, QRhiTexture::TextureArray, QRhiResource::TextureRenderTarget, QRhiTexture::ThreeDimensional, QGles2CommandBuffer::Command::Args::w, and QSize::width().

+ Here is the call graph for this function:

◆ enqueueBarriersForPass()

void QRhiGles2::enqueueBarriersForPass ( QGles2CommandBuffer cbD)

Definition at line 4277 of file qrhigles2.cpp.

References QVarLengthArray< T, Prealloc >::append(), QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::BarriersForPass, QGles2CommandBuffer::Command::Args::barriersForPass, QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QGles2CommandBuffer::currentPassResTrackerIndex, QGles2CommandBuffer::passResTrackers, QVLABaseBase::size(), and QGles2CommandBuffer::Command::Args::trackerIndex.

Referenced by beginComputePass(), beginPass(), and endExternal().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enqueueBindFramebuffer()

QGles2RenderTargetData * QRhiGles2::enqueueBindFramebuffer ( QRhiRenderTarget rt,
QGles2CommandBuffer cbD,
bool *  wantsColorClear = nullptr,
bool *  wantsDsClear = nullptr 
)

Definition at line 4204 of file qrhigles2.cpp.

References QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::BindFramebuffer, QGles2CommandBuffer::Command::Args::bindFramebuffer, QRhiTextureRenderTargetDescription::cbeginColorAttachments(), QRhiTextureRenderTargetDescription::cendColorAttachments(), QGles2CommandBuffer::Command::cmd, QGles2RenderTargetData::colorAttCount, QGles2CommandBuffer::Command::Args::colorAttCount, QGles2CommandBuffer::commands, QGles2CommandBuffer::currentPassResTrackerIndex, QGles2TextureRenderTarget::d, QRhiTextureRenderTargetDescription::depthTexture(), QGles2CommandBuffer::Command::Args::fbo, QGles2TextureRenderTarget::framebuffer, it, QRhiTextureRenderTarget::m_desc, QRhiTextureRenderTarget::m_flags, QGles2CommandBuffer::passNeedsResourceTracking, QGles2CommandBuffer::passResTrackers, QRhiTextureRenderTarget::PreserveColorContents, QRhiTextureRenderTarget::PreserveDepthStencilContents, qEnvironmentVariableIntValue(), QRHI_RES, QRhiColorAttachment::resolveTexture(), QRhiResource::resourceType(), QGles2CommandBuffer::Command::Args::srgb, QGles2RenderTargetData::srgbUpdateAndBlend, QGles2CommandBuffer::Command::Args::stereo, QGles2RenderTargetData::stereoTarget, QGles2CommandBuffer::Command::Args::stereoTarget, QRhiResource::SwapChainRenderTarget, QRhiPassResourceTracker::TexColorOutput, QRhiPassResourceTracker::TexColorOutputStage, QRhiPassResourceTracker::TexDepthOutput, QRhiPassResourceTracker::TexDepthOutputStage, QRhiColorAttachment::texture(), QRhiResource::TextureRenderTarget, and trackedRegisterTexture().

Referenced by beginPass(), and endExternal().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enqueueResourceUpdates()

void QRhiGles2::enqueueResourceUpdates ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)

Definition at line 2357 of file qrhigles2.cpp.

References QGles2Texture::AccessFramebuffer, QGles2Texture::AccessRead, QGles2Buffer::AccessUpdate, QGles2Texture::AccessUpdate, QRhiResourceUpdateBatchPrivate::activeBufferOpCount, QRhiResourceUpdateBatchPrivate::activeTextureOpCount, QGles2CommandBuffer::Command::args, QRhiResourceUpdateBatchPrivate::BufferOp::buf, QGles2Buffer::buffer, QGles2CommandBuffer::Command::Args::buffer, QRhiResourceUpdateBatchPrivate::bufferOps, QGles2CommandBuffer::Command::BufferSubData, QGles2CommandBuffer::Command::Args::bufferSubData, cb, QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QRhiReadbackResult::completed, QRhiBufferData::constData(), QByteArray::constData(), QRhiResourceUpdateBatchPrivate::TextureOp::Copy, QGles2CommandBuffer::Command::CopyTex, QGles2CommandBuffer::Command::Args::copyTex, QRhiTexture::CubeMap, QByteArray::data(), QRhiReadbackResult::data, QRhiResourceUpdateBatchPrivate::BufferOp::data, QGles2Buffer::data, QGles2CommandBuffer::Command::Args::data, QRhiResourceUpdateBatchPrivate::TextureOp::desc, QRhiTextureCopyDescription::destinationLayer(), QRhiTextureCopyDescription::destinationLevel(), QRhiTextureCopyDescription::destinationTopLeft(), QRhiResourceUpdateBatchPrivate::TextureOp::dst, QGles2CommandBuffer::Command::Args::dstFaceTarget, QGles2CommandBuffer::Command::Args::dstLevel, QGles2CommandBuffer::Command::Args::dstTarget, QGles2CommandBuffer::Command::Args::dstTexture, QGles2CommandBuffer::Command::Args::dstX, QGles2CommandBuffer::Command::Args::dstY, QGles2CommandBuffer::Command::Args::dstZ, QRhiBuffer::Dynamic, QRhiResourceUpdateBatchPrivate::BufferOp::DynamicUpdate, enqueueSubresUpload(), QGles2CommandBuffer::Command::Args::format, QRhiResourceUpdateBatchPrivate::free(), QGles2CommandBuffer::Command::GenMip, QGles2CommandBuffer::Command::Args::genMip, QRhiResourceUpdateBatchPrivate::TextureOp::GenMips, QRhiResourceUpdateBatchPrivate::get(), QGles2CommandBuffer::Command::GetBufferSubData, QGles2CommandBuffer::Command::Args::getBufferSubData, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GLenum, QGles2CommandBuffer::Command::Args::h, QSize::height(), QSize::isEmpty(), QRhiReadbackDescription::layer(), QRhiReadbackDescription::level(), QGles2CommandBuffer::Command::Args::level, QRhiTexture::m_flags, QRhiTexture::m_format, QRhiTexture::m_pixelSize, QRhiBuffer::m_size, QRhiBuffer::m_type, QRhiBuffer::m_usage, QRhi::MAX_MIP_LEVELS, QRhiResourceUpdateBatchPrivate::BufferOp::offset, QGles2CommandBuffer::Command::Args::offset, QRhiTexture::OneDimensional, QRhiTextureCopyDescription::pixelSize(), Q_ASSERT, QRHI_RES, QRhiResourceUpdateBatchPrivate::TextureOp::rb, QRhiResourceUpdateBatchPrivate::BufferOp::Read, QRhiResourceUpdateBatchPrivate::TextureOp::Read, QGles2CommandBuffer::Command::ReadPixels, QGles2CommandBuffer::Command::Args::readPixels, QRhiResourceUpdateBatchPrivate::BufferOp::readSize, QGles2CommandBuffer::Command::Args::readTarget, QByteArray::resize(), QRhiResourceUpdateBatchPrivate::BufferOp::result, QRhiResourceUpdateBatchPrivate::TextureOp::result, QGles2CommandBuffer::Command::Args::result, QGles2CommandBuffer::retainBufferData(), QRhiBufferData::size(), QVLABaseBase::size(), QGles2CommandBuffer::Command::Args::size, QGles2CommandBuffer::Command::Args::slice3D, QRhiTextureCopyDescription::sourceLayer(), QRhiTextureCopyDescription::sourceLevel(), QRhiTextureCopyDescription::sourceTopLeft(), sp, QGles2Texture::specified, QRhiResourceUpdateBatchPrivate::TextureOp::src, QGles2CommandBuffer::Command::Args::srcFaceTarget, QGles2CommandBuffer::Command::Args::srcLevel, QGles2CommandBuffer::Command::Args::srcTarget, QGles2CommandBuffer::Command::Args::srcTexture, QGles2CommandBuffer::Command::Args::srcX, QGles2CommandBuffer::Command::Args::srcY, QGles2CommandBuffer::Command::Args::srcZ, QRhiResourceUpdateBatchPrivate::BufferOp::StaticUpload, QRhiResourceUpdateBatchPrivate::TextureOp::subresDesc, QGles2Texture::target, QGles2CommandBuffer::Command::Args::target, QGles2Buffer::targetForDataOps, QRhiReadbackDescription::texture(), QGles2Texture::texture, QGles2CommandBuffer::Command::Args::texture, QRhiTexture::TextureArray, QRhiResourceUpdateBatchPrivate::textureOps, QRhiTexture::ThreeDimensional, trackedBufferBarrier(), trackedImageBarrier(), QRhiResourceUpdateBatchPrivate::BufferOp::type, QRhiResourceUpdateBatchPrivate::TextureOp::type, QRhiBuffer::UniformBuffer, QRhiResourceUpdateBatchPrivate::TextureOp::Upload, QGles2CommandBuffer::Command::Args::w, QSize::width(), QPoint::x(), and QPoint::y().

Referenced by beginComputePass(), beginPass(), endComputePass(), endPass(), and resourceUpdate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enqueueSubresUpload()

void QRhiGles2::enqueueSubresUpload ( QGles2Texture texD,
QGles2CommandBuffer cbD,
int  layer,
int  level,
const QRhiTextureSubresourceUploadDescription subresDesc 
)

Definition at line 2222 of file qrhigles2.cpp.

References QGles2Texture::AccessUpdate, QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QRhiImplementation::compressedFormatInfo(), QGles2CommandBuffer::Command::CompressedImage, QGles2CommandBuffer::Command::Args::compressedImage, QGles2CommandBuffer::Command::CompressedSubImage, QGles2CommandBuffer::Command::Args::compressedSubImage, QRhiTexture::CubeMap, QRhiTextureSubresourceUploadDescription::data(), QGles2CommandBuffer::Command::Args::data, QRhiTextureSubresourceUploadDescription::dataStride(), QGles2CommandBuffer::Command::Args::depth, QRhiTextureSubresourceUploadDescription::destinationTopLeft(), QGles2CommandBuffer::Command::Args::dx, QGles2CommandBuffer::Command::Args::dy, QGles2CommandBuffer::Command::Args::dz, QGles2CommandBuffer::Command::Args::faceTarget, QRhiTexture::flags(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, GLenum, QGles2Texture::glformat, QGles2CommandBuffer::Command::Args::glformat, QGles2Texture::glintformat, QGles2CommandBuffer::Command::Args::glintformat, QGles2Texture::gltype, QGles2CommandBuffer::Command::Args::gltype, QGles2CommandBuffer::Command::Args::h, QSize::height(), QRhiTextureSubresourceUploadDescription::image(), QRhiImplementation::isCompressedFormat(), isCubeMap(), QByteArray::isEmpty(), QSize::isEmpty(), QImage::isNull(), QPoint::isNull(), QGles2CommandBuffer::Command::Args::level, QRhiTexture::m_arraySize, QRhiTexture::m_depth, QRhiTexture::m_flags, QRhiTexture::m_format, QRhiTexture::m_pixelSize, QRhiTexture::OneDimensional, qMax(), qWarning, QGles2CommandBuffer::retainData(), QGles2CommandBuffer::retainImage(), QGles2CommandBuffer::Command::Args::rowLength, QGles2CommandBuffer::Command::Args::rowStartAlign, QByteArray::size(), QGles2CommandBuffer::Command::Args::size, QRhiTextureSubresourceUploadDescription::sourceSize(), QRhiTextureSubresourceUploadDescription::sourceTopLeft(), sp, QGles2Texture::specified, QGles2CommandBuffer::Command::SubImage, QGles2CommandBuffer::Command::Args::subImage, QGles2Texture::target, QGles2CommandBuffer::Command::Args::target, QGles2Texture::texture, QGles2CommandBuffer::Command::Args::texture, QRhiTexture::TextureArray, QRhiImplementation::textureFormatInfo(), QRhiTexture::ThreeDimensional, trackedImageBarrier(), QRhiTexture::UsedAsCompressedAtlas, QGles2CommandBuffer::Command::Args::w, QSize::width(), and QGles2Texture::zeroInitialized.

Referenced by enqueueResourceUpdates().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ensureContext()

bool QRhiGles2::ensureContext ( QSurface surface = nullptr) const

Definition at line 601 of file qrhigles2.cpp.

References contextLost, currentSurfaceForCurrentContext(), evaluateFallbackSurface(), needsMakeCurrentDueToSwap, qWarning, QSurface::surfaceClass(), QSurface::surfaceHandle(), and QSurface::Window.

Referenced by beginExternal(), beginFrame(), beginOffscreenFrame(), create(), destroy(), endFrame(), endOffscreenFrame(), finish(), makeThreadLocalNativeContextCurrent(), and releaseCachedResources().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ evaluateFallbackSurface()

QSurface * QRhiGles2::evaluateFallbackSurface ( ) const

Definition at line 589 of file qrhigles2.cpp.

References fallbackSurface, and maybeWindow.

Referenced by ensureContext().

+ Here is the caller graph for this function:

◆ executeBindGraphicsPipeline()

void QRhiGles2::executeBindGraphicsPipeline ( QGles2CommandBuffer cbD,
QGles2GraphicsPipeline psD 
)

Definition at line 3556 of file qrhigles2.cpp.

References QRhiGraphicsPipeline::A, QGles2CommandBuffer::GraphicsPassState::ColorMask::a, QRhiGraphicsPipeline::B, QGles2CommandBuffer::GraphicsPassState::ColorMask::b, QRhiGraphicsPipeline::TargetBlend::colorWrite, QRhiGraphicsPipeline::StencilOpState::compareOp, QRhiGraphicsPipeline::StencilOpState::depthFailOp, QRhiGraphicsPipeline::TargetBlend::dstAlpha, QGles2CommandBuffer::GraphicsPassState::Blend::dstAlpha, QRhiGraphicsPipeline::TargetBlend::dstColor, QGles2CommandBuffer::GraphicsPassState::Blend::dstColor, QRhiGraphicsPipeline::TargetBlend::enable, QRhiGraphicsPipeline::StencilOpState::failOp, QGles2CommandBuffer::GraphicsPassState::StencilFace::failOp, forceUpdate(), QGles2CommandBuffer::GraphicsPassState::StencilFace::func, QRhiGraphicsPipeline::G, QGles2CommandBuffer::GraphicsPassState::ColorMask::g, GL_PATCH_VERTICES, GLenum, GLuint, QGles2CommandBuffer::graphicsPassState, QRhiGraphicsPipeline::Lines, QRhiGraphicsPipeline::LineStrip, QRhiGraphicsPipeline::m_cullMode, QRhiGraphicsPipeline::m_depthBias, QRhiGraphicsPipeline::m_depthOp, QRhiGraphicsPipeline::m_depthTest, QRhiGraphicsPipeline::m_depthWrite, QRhiGraphicsPipeline::m_flags, QRhiGraphicsPipeline::m_frontFace, QRhiGraphicsPipeline::m_lineWidth, QRhiGraphicsPipeline::m_patchControlPointCount, QRhiGraphicsPipeline::m_polygonMode, QRhiGraphicsPipeline::m_slopeScaledDepthBias, QRhiGraphicsPipeline::m_stencilBack, QRhiGraphicsPipeline::m_stencilFront, QRhiGraphicsPipeline::m_stencilReadMask, QRhiGraphicsPipeline::m_stencilTest, QRhiGraphicsPipeline::m_stencilWriteMask, QRhiGraphicsPipeline::m_targetBlends, QRhiGraphicsPipeline::m_topology, QRhiGraphicsPipeline::None, QRhiGraphicsPipeline::TargetBlend::opAlpha, QGles2CommandBuffer::GraphicsPassState::Blend::opAlpha, QRhiGraphicsPipeline::TargetBlend::opColor, QGles2CommandBuffer::GraphicsPassState::Blend::opColor, QRhiGraphicsPipeline::StencilOpState::passOp, QRhiGraphicsPipeline::Patches, QGles2GraphicsPipeline::program, qFuzzyIsNull(), qMax(), QRhiGraphicsPipeline::R, QGles2CommandBuffer::GraphicsPassState::ColorMask::r, QRhiGraphicsPipeline::TargetBlend::srcAlpha, QGles2CommandBuffer::GraphicsPassState::Blend::srcAlpha, QRhiGraphicsPipeline::TargetBlend::srcColor, QGles2CommandBuffer::GraphicsPassState::Blend::srcColor, state, toGlBlendFactor(), toGlBlendOp(), toGlCompareOp(), toGlCullMode(), toGlFrontFace(), toGlPolygonMode(), toGlStencilOp(), QRhiGraphicsPipeline::UsesScissor, QGles2CommandBuffer::GraphicsPassState::StencilFace::zfailOp, and QGles2CommandBuffer::GraphicsPassState::StencilFace::zpassOp.

Referenced by executeCommandBuffer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommandBuffer()

void QRhiGles2::executeCommandBuffer ( QRhiCommandBuffer cb)

Definition at line 2861 of file qrhigles2.cpp.

References QGles2CommandBuffer::Command::Args::a, QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::Args::b, QGles2CommandBuffer::Command::Barrier, QGles2CommandBuffer::Command::Args::barrier, QGles2CommandBuffer::Command::Args::barriers, barriersForBuffer(), QGles2CommandBuffer::Command::BarriersForPass, QGles2CommandBuffer::Command::Args::barriersForPass, barriersForTexture(), QGles2CommandBuffer::Command::Args::baseVertex, QRhiGles2::Caps::baseVertex, QGles2CommandBuffer::Command::BeginFrame, QGles2CommandBuffer::Command::BindComputePipeline, QGles2CommandBuffer::Command::Args::bindComputePipeline, QGles2CommandBuffer::Command::BindFramebuffer, QGles2CommandBuffer::Command::Args::bindFramebuffer, QGles2CommandBuffer::Command::BindGraphicsPipeline, QGles2CommandBuffer::Command::Args::bindGraphicsPipeline, QGles2CommandBuffer::Command::BindIndexBuffer, QGles2CommandBuffer::Command::Args::bindIndexBuffer, QGles2CommandBuffer::Command::Args::binding, QRhiVertexInputLayout::bindingAt(), QGles2CommandBuffer::Command::BindShaderResources, QGles2CommandBuffer::Command::Args::bindShaderResources, bindShaderResources(), QGles2CommandBuffer::Command::BindVertexBuffer, QGles2CommandBuffer::Command::Args::bindVertexBuffer, bindVertexIndexBufferWithStateReset(), QGles2CommandBuffer::Command::BlendConstants, QGles2CommandBuffer::Command::Args::blendConstants, QGles2CommandBuffer::Command::BlitFromRenderbuffer, QGles2CommandBuffer::Command::Args::blitFromRenderbuffer, QGles2CommandBuffer::Command::BlitFromTexture, QGles2CommandBuffer::Command::Args::blitFromTexture, QGles2CommandBuffer::Command::Args::buffer, bufferAccessIsWrite(), QGles2CommandBuffer::Command::BufferSubData, QGles2CommandBuffer::Command::Args::bufferSubData, QGles2CommandBuffer::Command::Args::c, caps, cb, QRhiVertexInputLayout::cbeginAttributes(), QRhiPassResourceTracker::cbeginBuffers(), QRhiPassResourceTracker::cbeginTextures(), QRhiVertexInputLayout::cendAttributes(), QRhiPassResourceTracker::cendBuffers(), QRhiPassResourceTracker::cendTextures(), QRhiVertexInputBinding::classification(), QGles2CommandBuffer::Command::Clear, QGles2CommandBuffer::Command::Args::clear, QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::Command::Args::colorAttCount, QGles2CommandBuffer::commands, QRhiGraphicsPipeline::StencilOpState::compareOp, QGles2CommandBuffer::Command::CompressedImage, QGles2CommandBuffer::Command::Args::compressedImage, QGles2CommandBuffer::Command::CompressedSubImage, QGles2CommandBuffer::Command::Args::compressedSubImage, QRhiGles2::Caps::compute, QByteArray::constData(), QGles2CommandBuffer::Command::CopyTex, QGles2CommandBuffer::Command::Args::copyTex, QRhiGles2::Caps::coreProfile, currentSwapChain, QGles2CommandBuffer::Command::Args::d, QGles2CommandBuffer::Command::Args::d0, QGles2CommandBuffer::Command::Args::d1, QByteArray::data(), QGles2CommandBuffer::Command::Args::data, QGles2CommandBuffer::Command::Args::depth, QGles2CommandBuffer::Command::Dispatch, QGles2CommandBuffer::Command::Args::dispatch, QGles2CommandBuffer::Command::Draw, QGles2CommandBuffer::Command::Args::draw, QGles2CommandBuffer::Command::DrawIndexed, QGles2CommandBuffer::Command::Args::drawIndexed, QGles2GraphicsPipeline::drawMode, QGles2CommandBuffer::Command::Args::dstFaceTarget, QGles2CommandBuffer::Command::Args::dstLayer, QGles2CommandBuffer::Command::Args::dstLevel, QGles2CommandBuffer::Command::Args::dstTarget, QGles2CommandBuffer::Command::Args::dstTexture, QGles2CommandBuffer::Command::Args::dstX, QGles2CommandBuffer::Command::Args::dstY, QGles2CommandBuffer::Command::Args::dstZ, QGles2CommandBuffer::Command::Args::dx, QGles2CommandBuffer::Command::Args::dy, QGles2CommandBuffer::GraphicsPassState::dynamic, QGles2CommandBuffer::Command::Args::dynamicOffsetCount, QGles2CommandBuffer::Command::Args::dynamicOffsetPairs, QGles2CommandBuffer::Command::Args::dz, QGles2CommandBuffer::Command::EndFrame, executeBindGraphicsPipeline(), QGles2CommandBuffer::Command::Args::faceTarget, QGles2CommandBuffer::Command::Args::fbo, QGles2CommandBuffer::Command::Args::firstIndex, QGles2CommandBuffer::Command::Args::firstVertex, QRhiVertexInputAttribute::Float, QRhiVertexInputAttribute::Float2, QRhiVertexInputAttribute::Float3, QRhiVertexInputAttribute::Float4, QGles2CommandBuffer::Command::Args::format, QGles2CommandBuffer::Command::Args::g, QGles2CommandBuffer::Command::GenMip, QGles2CommandBuffer::Command::Args::genMip, QGles2CommandBuffer::Command::GetBufferSubData, QGles2CommandBuffer::Command::Args::getBufferSubData, GL_ARRAY_BUFFER, GL_BACK_LEFT, GL_BACK_RIGHT, GL_COLOR_ATTACHMENT0, GL_DRAW_FRAMEBUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_FLOAT, GL_FRAMEBUFFER, GL_FRAMEBUFFER_SRGB, GL_HALF_FLOAT, GL_MAP_READ_BIT, GL_READ_FRAMEBUFFER, GL_RENDERBUFFER, GL_RGBA, GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_TEXTURE_3D, GL_UNPACK_ROW_LENGTH, GL_UNSIGNED_BYTE, GL_UNSIGNED_INT_2_10_10_10_REV, GLbitfield(), GLenum, QRhiGles2::Caps::gles, QGles2CommandBuffer::Command::Args::glformat, GLint, QGles2CommandBuffer::Command::Args::glintformat, GLsizei, QGles2CommandBuffer::Command::Args::gltype, GLuint, QGles2CommandBuffer::graphicsPassState, QGles2CommandBuffer::Command::Args::h, QRhiVertexInputAttribute::Half, QRhiVertexInputAttribute::Half2, QRhiVertexInputAttribute::Half3, QRhiVertexInputAttribute::Half4, QRhiGles2::Caps::hasDrawBuffersFunc, i, QGles2CommandBuffer::Command::Args::indexCount, QGles2CommandBuffer::Command::Args::instanceCount, QRhiVertexInputBinding::instanceStepRate(), QRhiGles2::Caps::instancing, QRhiGles2::Caps::intAttributes, isFeatureSupported(), it, QGles2CommandBuffer::Command::Args::level, QRhiGraphicsPipeline::m_stencilBack, QRhiGraphicsPipeline::m_stencilFront, QRhiGraphicsPipeline::m_stencilReadMask, QRhiGraphicsPipeline::m_vertexInputLayout, QGles2CommandBuffer::Command::Args::mask, QRhiGles2::Caps::maxDrawBuffers, QGles2CommandBuffer::Command::Args::maybeComputePs, QGles2CommandBuffer::Command::Args::maybeGraphicsPs, QRhiGles2::Caps::nonBaseLevelFramebufferTexture, normalize(), QGles2CommandBuffer::Command::Args::offset, QGles2CommandBuffer::passResTrackers, QRhiVertexInputBinding::PerInstance, QGles2SwapChain::pixelSize, QGles2ComputePipeline::program, QRhiGles2::Caps::properMapBuffer, QGles2CommandBuffer::Command::Args::ps, Q_LIKELY, Q_UNLIKELY, qMax(), QRHI_RES, qWarning, QGles2CommandBuffer::Command::Args::r, QRhiTexture::R8, QGles2CommandBuffer::Command::ReadPixels, QGles2CommandBuffer::Command::Args::readPixels, QGles2CommandBuffer::Command::Args::readTarget, QRhiTexture::RED_OR_ALPHA8, QRhi::RedOrAlpha8IsRed, QGles2CommandBuffer::Command::Args::ref, QGles2CommandBuffer::Command::Args::renderbuffer, QGles2CommandBuffer::GraphicsPassState::reset(), QGles2CommandBuffer::Command::ResetFrame, QByteArray::resize(), QGles2CommandBuffer::Command::Args::result, QRhiTexture::RGB10A2, QRhiTexture::RGBA16F, QRhiTexture::RGBA32F, QRhiTexture::RGBA8, QRhiSwapChain::RightBuffer, QGles2CommandBuffer::Command::Args::rowLength, QGles2CommandBuffer::Command::Args::rowStartAlign, QGles2CommandBuffer::Command::Args::s, QGles2CommandBuffer::Command::Scissor, QGles2CommandBuffer::Command::Args::scissor, QRhiVertexInputAttribute::SInt, QRhiVertexInputAttribute::SInt2, QRhiVertexInputAttribute::SInt3, QRhiVertexInputAttribute::SInt4, QGles2CommandBuffer::Command::Args::size, QGles2CommandBuffer::Command::Args::slice3D, QGles2CommandBuffer::Command::Args::srb, QGles2CommandBuffer::Command::Args::srcFaceTarget, QGles2CommandBuffer::Command::Args::srcLayer, QGles2CommandBuffer::Command::Args::srcLevel, QGles2CommandBuffer::Command::Args::srcTarget, QGles2CommandBuffer::Command::Args::srcTexture, QGles2CommandBuffer::Command::Args::srcX, QGles2CommandBuffer::Command::Args::srcY, QGles2CommandBuffer::Command::Args::srcZ, QGles2CommandBuffer::Command::Args::srgb, QRhiGles2::Caps::srgbCapableDefaultFramebuffer, state, QGles2CommandBuffer::Command::StencilRef, QGles2CommandBuffer::Command::Args::stencilRef, QGles2CommandBuffer::GraphicsPassState::stencilRef, QGles2CommandBuffer::Command::Args::stereo, QGles2CommandBuffer::Command::Args::stereoTarget, QRhiVertexInputBinding::stride(), QGles2CommandBuffer::Command::SubImage, QGles2CommandBuffer::Command::Args::subImage, QGles2CommandBuffer::Command::Args::target, QGles2CommandBuffer::Command::Args::texture, textureAccessIsWrite(), toGlCompareOp(), CommandBufferExecTrackedState::TRACKED_ATTRIB_COUNT, QGles2CommandBuffer::Command::Args::trackerIndex, QGles2CommandBuffer::Command::Args::type, QRhiVertexInputAttribute::UInt, QRhiVertexInputAttribute::UInt2, QRhiVertexInputAttribute::UInt3, QRhiVertexInputAttribute::UInt4, QRhiVertexInputAttribute::UNormByte, QRhiVertexInputAttribute::UNormByte2, QRhiVertexInputAttribute::UNormByte4, vao, QGles2CommandBuffer::Command::Args::vertexCount, QGles2CommandBuffer::Command::Viewport, QGles2CommandBuffer::Command::Args::viewport, QGles2CommandBuffer::Command::Args::w, QGles2CommandBuffer::Command::Args::x, QGles2CommandBuffer::Command::Args::y, and QGles2CommandBuffer::Command::Args::z.

Referenced by beginExternal(), endFrame(), endOffscreenFrame(), and finish().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeDeferredReleases()

void QRhiGles2::executeDeferredReleases ( )

Definition at line 1061 of file qrhigles2.cpp.

References QRhiGles2::DeferredReleaseEntry::Buffer, e, i, QRhiGles2::DeferredReleaseEntry::Pipeline, releaseQueue, QRhiGles2::DeferredReleaseEntry::RenderBuffer, QRhiGles2::DeferredReleaseEntry::Texture, and QRhiGles2::DeferredReleaseEntry::TextureRenderTarget.

Referenced by beginFrame(), beginOffscreenFrame(), and destroy().

+ Here is the caller graph for this function:

◆ finish()

◆ gatherGeneratedSamplers()

void QRhiGles2::gatherGeneratedSamplers ( GLuint  program,
const QShader::SeparateToCombinedImageSamplerMapping mapping,
QGles2SamplerDescriptionVector dst 
)

Definition at line 4793 of file qrhigles2.cpp.

◆ gatherSamplers()

void QRhiGles2::gatherSamplers ( GLuint  program,
const QShaderDescription::InOutVariable v,
QGles2SamplerDescriptionVector dst 
)

Definition at line 4779 of file qrhigles2.cpp.

◆ gatherUniforms()

void QRhiGles2::gatherUniforms ( GLuint  program,
const QShaderDescription::UniformBlock ub,
QDuplicateTracker< int, 256 > *  activeUniformLocations,
QGles2UniformDescriptionVector dst 
)

Definition at line 4742 of file qrhigles2.cpp.

References QShaderDescription::UniformBlock::binding, QShaderDescription::UniformBlock::members, QByteArray::number(), qWarning, registerUniformIfActive(), QShaderDescription::Struct, and QShaderDescription::UniformBlock::structName.

+ Here is the call graph for this function:

◆ isClipDepthZeroToOne()

bool QRhiGles2::isClipDepthZeroToOne ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1138 of file qrhigles2.cpp.

◆ isDeviceLost()

bool QRhiGles2::isDeviceLost ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1474 of file qrhigles2.cpp.

References contextLost.

◆ isFeatureSupported()

bool QRhiGles2::isFeatureSupported ( QRhi::Feature  feature) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1308 of file qrhigles2.cpp.

References QRhi::BaseInstance, QRhi::BaseVertex, QRhiGles2::Caps::baseVertex, caps, QRhi::Compute, QRhiGles2::Caps::compute, QRhiGles2::Caps::coreProfile, QRhiGles2::Caps::ctxMajor, QRhi::CustomInstanceStepRate, QRhi::DebugMarkers, QRhi::ElementIndexUint, QRhiGles2::Caps::elementIndexUint, QRhiGles2::Caps::fixedIndexPrimitiveRestart, QRhi::GeometryShader, QRhiGles2::Caps::geometryShader, QRhiGles2::Caps::gles, QRhi::HalfAttributes, QRhiGles2::Caps::halfAttributes, QRhi::ImageDataStride, QRhi::Instancing, QRhiGles2::Caps::instancing, QRhi::IntAttributes, QRhiGles2::Caps::intAttributes, QRhiGles2::Caps::maxTextureArraySize, QRhiGles2::Caps::msaaRenderBuffer, QRhiGles2::Caps::multisampledTexture, QRhi::MultisampleRenderBuffer, QRhi::MultisampleTexture, QRhi::MultiView, QRhiGles2::Caps::multiView, QRhiGles2::Caps::nonBaseLevelFramebufferTexture, QRhi::NonDynamicUniformBuffers, QRhi::NonFillPolygonMode, QRhi::NonFourAlignedEffectiveIndexBufferOffset, QRhiGles2::Caps::npotTextureFull, QRhi::NPOTTextureRepeat, QRhi::OneDimensionalTextureMipmaps, QRhi::OneDimensionalTextures, QRhi::PipelineCacheDataLoadSave, QRhi::PrimitiveRestart, QRhiGles2::Caps::programBinary, QRhiGles2::Caps::properMapBuffer, QRhi::ReadBackAnyTextureFormat, QRhi::ReadBackNonBaseMipLevel, QRhi::ReadBackNonUniformBuffer, QRhi::RedOrAlpha8IsRed, QRhi::RenderBufferImport, QRhi::RenderTo3DTextureSlice, QRhi::RenderToNonBaseMipLevel, QRhi::RenderToOneDimensionalTexture, QRhi::ScreenSpaceDerivatives, QRhiGles2::Caps::screenSpaceDerivatives, QRhi::Tessellation, QRhiGles2::Caps::tessellation, QRhi::TexelFetch, QRhiGles2::Caps::texelFetch, QRhiGles2::Caps::texture1D, QRhiGles2::Caps::texture3D, QRhi::TextureArrayRange, QRhi::TextureArrays, QRhi::ThreeDimensionalTextureMipmaps, QRhi::ThreeDimensionalTextures, QRhi::Timestamps, QRhi::TriangleFanTopology, QRhi::VertexShaderPointSize, and QRhi::WideLines.

Referenced by executeCommandBuffer().

+ Here is the caller graph for this function:

◆ isProgramBinaryDiskCacheEnabled()

bool QRhiGles2::isProgramBinaryDiskCacheEnabled ( ) const

Definition at line 4830 of file qrhigles2.cpp.

References QOpenGLProgramBinarySupportCheckWrapper::get(), and QOpenGLProgramBinarySupportCheck::isSupported().

Referenced by tryLoadFromDiskOrPipelineCache(), and trySaveToDiskCache().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isTextureFormatSupported()

◆ isYUpInFramebuffer()

bool QRhiGles2::isYUpInFramebuffer ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1128 of file qrhigles2.cpp.

◆ isYUpInNDC()

bool QRhiGles2::isYUpInNDC ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1133 of file qrhigles2.cpp.

◆ lastCompletedGpuTime()

double QRhiGles2::lastCompletedGpuTime ( QRhiCommandBuffer cb)
overridevirtual

Implements QRhiImplementation.

Definition at line 2030 of file qrhigles2.cpp.

References cb, and Q_UNUSED.

◆ linkProgram()

bool QRhiGles2::linkProgram ( GLuint  program)

Definition at line 4686 of file qrhigles2.cpp.

References QByteArray::constData(), QByteArray::data(), GL_INFO_LOG_LENGTH, GL_LINK_STATUS, GLint, GLsizei, qWarning, and QByteArray::resize().

+ Here is the call graph for this function:

◆ makeThreadLocalNativeContextCurrent()

bool QRhiGles2::makeThreadLocalNativeContextCurrent ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1453 of file qrhigles2.cpp.

References QRhiGles2::OffscreenFrame::active, currentSwapChain, ensureContext(), QRhiImplementation::inFrame, ofr, and QGles2SwapChain::surface.

+ Here is the call graph for this function:

◆ nativeHandles() [1/2]

const QRhiNativeHandles * QRhiGles2::nativeHandles ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1436 of file qrhigles2.cpp.

References nativeHandlesStruct.

◆ nativeHandles() [2/2]

const QRhiNativeHandles * QRhiGles2::nativeHandles ( QRhiCommandBuffer cb)
overridevirtual

Implements QRhiImplementation.

Definition at line 1961 of file qrhigles2.cpp.

References cb, and Q_UNUSED.

◆ pipelineCacheData()

QByteArray QRhiGles2::pipelineCacheData ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1488 of file qrhigles2.cpp.

References QByteArray::constData(), QRhiDriverInfo::deviceName, driverInfoStruct, header(), i, it, m_pipelineCache, QRhiImplementation::pipelineCacheRhiId(), Q_ASSERT, Q_STATIC_ASSERT, qMin(), QSet< T >::size(), QByteArray::size(), and Qt::Uninitialized.

+ Here is the call graph for this function:

◆ registerUniformIfActive()

void QRhiGles2::registerUniformIfActive ( const QShaderDescription::BlockVariable var,
const QByteArray namePrefix,
int  binding,
int  baseOffset,
GLuint  program,
QDuplicateTracker< int, 256 > *  activeUniformLocations,
QGles2UniformDescriptionVector dst 
)

Definition at line 4706 of file qrhigles2.cpp.

References QGles2UniformDescription::arrayDim, QGles2UniformDescription::binding, QVariant::constData(), QGles2UniformDescription::glslLocation, QDuplicateTracker< T, Prealloc >::hasSeen(), QGles2UniformDescription::offset, qWarning, QGles2UniformDescription::size, QShaderDescription::Struct, QGles2UniformDescription::type, and var.

Referenced by gatherUniforms().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ releaseCachedResources()

void QRhiGles2::releaseCachedResources ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1461 of file qrhigles2.cpp.

References QHash< Key, T >::clear(), ensureContext(), m_pipelineCache, and m_shaderCache.

+ Here is the call graph for this function:

◆ resourceLimit()

◆ resourceUpdate()

void QRhiGles2::resourceUpdate ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 4197 of file qrhigles2.cpp.

References cb, enqueueResourceUpdates(), QGles2CommandBuffer::NoPass, Q_ASSERT, and QRHI_RES.

+ Here is the call graph for this function:

◆ sanityCheckVertexFragmentInterface()

void QRhiGles2::sanityCheckVertexFragmentInterface ( const QShaderDescription vsDesc,
const QShaderDescription fsDesc 
)

Definition at line 4807 of file qrhigles2.cpp.

References QShaderDescription::inputVariables(), QShaderDescription::isValid(), QShaderDescription::outputVariables(), and qWarning.

+ Here is the call graph for this function:

◆ setBlendConstants()

◆ setComputePipeline()

◆ setGraphicsPipeline()

◆ setPipelineCacheData()

void QRhiGles2::setPipelineCacheData ( const QByteArray data)
overridevirtual

Implements QRhiImplementation.

Definition at line 1543 of file qrhigles2.cpp.

References QString::constData(), QByteArray::constData(), QRhiDriverInfo::deviceName, driverInfoStruct, header(), headerSize, i, m_pipelineCache, QRhiImplementation::pipelineCacheRhiId(), qCDebug, qMin(), QByteArray::size(), and Qt::Uninitialized.

+ Here is the call graph for this function:

◆ setScissor()

◆ setShaderResources()

void QRhiGles2::setShaderResources ( QRhiCommandBuffer cb,
QRhiShaderResourceBindings srb,
int  dynamicOffsetCount,
const QRhiCommandBuffer::DynamicOffset dynamicOffsets 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1670 of file qrhigles2.cpp.

References QGles2CommandBuffer::Command::args, QVarLengthArray< T, Prealloc >::at(), QGles2CommandBuffer::Command::BindShaderResources, QGles2CommandBuffer::Command::Args::bindShaderResources, QRhiShaderResourceBinding::BufferLoad, QRhiShaderResourceBinding::BufferLoadStore, QRhiShaderResourceBinding::BufferStore, QRhiPassResourceTracker::BufStorageLoad, QRhiPassResourceTracker::BufStorageLoadStore, QRhiPassResourceTracker::BufStorageStore, cb, QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QGles2CommandBuffer::currentComputePipeline, QGles2CommandBuffer::currentComputeSrb, QGles2CommandBuffer::currentGraphicsPipeline, QGles2CommandBuffer::currentGraphicsSrb, QGles2CommandBuffer::currentPassResTrackerIndex, QGles2GraphicsPipeline::currentSrb, QGles2ComputePipeline::currentSrb, QGles2GraphicsPipeline::currentSrbGeneration, QGles2ComputePipeline::currentSrbGeneration, QGles2CommandBuffer::currentSrbGeneration, QGles2CommandBuffer::Command::Args::dynamicOffsetCount, QGles2CommandBuffer::Command::Args::dynamicOffsetPairs, QGles2ShaderResourceBindings::generation, QGles2ShaderResourceBindings::hasDynamicOffset, i, QRhiShaderResourceBinding::ImageLoad, QRhiShaderResourceBinding::ImageLoadStore, QRhiShaderResourceBinding::ImageStore, QRhiShaderResourceBindings::m_bindings, QRhiGraphicsPipeline::m_shaderResourceBindings, QRhiComputePipeline::m_shaderResourceBindings, QGles2CommandBuffer::MAX_DYNAMIC_OFFSET_COUNT, QGles2CommandBuffer::Command::Args::maybeComputePs, QGles2CommandBuffer::Command::Args::maybeGraphicsPs, QGles2CommandBuffer::NoPass, QGles2CommandBuffer::passNeedsResourceTracking, QGles2CommandBuffer::passResTrackers, Q_ASSERT, QRHI_RES, qWarning, QGles2CommandBuffer::recordingPass, QRhiShaderResourceBinding::SampledTexture, QRhiImplementation::shaderResourceBindingData(), QVLABaseBase::size(), QGles2CommandBuffer::Command::Args::srb, QRhiPassResourceTracker::TexSample, QRhiPassResourceTracker::TexStorageLoad, QRhiPassResourceTracker::TexStorageLoadStore, QRhiPassResourceTracker::TexStorageStore, QRhiShaderResourceBinding::Texture, QRhiPassResourceTracker::toPassTrackerBufferStage(), QRhiPassResourceTracker::toPassTrackerTextureStage(), trackedRegisterBuffer(), trackedRegisterTexture(), and QRhiShaderResourceBinding::UniformBuffer.

+ Here is the call graph for this function:

◆ setStencilRef()

◆ setVertexInput()

void QRhiGles2::setVertexInput ( QRhiCommandBuffer cb,
int  startBinding,
int  bindingCount,
const QRhiCommandBuffer::VertexInput bindings,
QRhiBuffer indexBuf,
quint32  indexOffset,
QRhiCommandBuffer::IndexFormat  indexFormat 
)
overridevirtual

◆ setViewport()

◆ shaderSource()

QByteArray QRhiGles2::shaderSource ( const QRhiShaderStage shaderStage,
QShaderVersion shaderVersion 
)

Definition at line 4576 of file qrhigles2.cpp.

References caps, QRhiGles2::Caps::coreProfile, QRhiGles2::Caps::ctxMajor, QRhiGles2::Caps::ctxMinor, QRhiGles2::Caps::gles, QShaderVersion::GlslEs, QShader::GlslShader, qWarning, QRhiShaderStage::shader(), QShader::shader(), and QRhiShaderStage::shaderVariant().

Referenced by compileShader(), and tryLoadFromDiskOrPipelineCache().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statistics()

QRhiStats QRhiGles2::statistics ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1446 of file qrhigles2.cpp.

References QRhiImplementation::totalPipelineCreationTime().

+ Here is the call graph for this function:

◆ supportedSampleCounts()

QList< int > QRhiGles2::supportedSampleCounts ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1090 of file qrhigles2.cpp.

References QList< T >::append(), caps, i, QList< T >::isEmpty(), QRhiGles2::Caps::maxSamples, and supportedSampleCountList.

Referenced by effectiveSampleCount().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trackedBufferBarrier()

void QRhiGles2::trackedBufferBarrier ( QGles2CommandBuffer cbD,
QGles2Buffer bufD,
QGles2Buffer::Access  access 
)

Definition at line 2180 of file qrhigles2.cpp.

References QGles2Buffer::UsageState::access, QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::Barrier, QGles2CommandBuffer::Command::Args::barrier, QGles2CommandBuffer::Command::Args::barriers, barriersForBuffer(), bufferAccessIsWrite(), QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QRhiBuffer::m_usage, QGles2CommandBuffer::NoPass, Q_ASSERT, QGles2CommandBuffer::recordingPass, QRhiBuffer::StorageBuffer, and QGles2Buffer::usageState.

Referenced by enqueueResourceUpdates().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trackedImageBarrier()

void QRhiGles2::trackedImageBarrier ( QGles2CommandBuffer cbD,
QGles2Texture texD,
QGles2Texture::Access  access 
)

Definition at line 2203 of file qrhigles2.cpp.

References QGles2Texture::UsageState::access, QGles2CommandBuffer::Command::args, QGles2CommandBuffer::Command::Barrier, QGles2CommandBuffer::Command::Args::barrier, QGles2CommandBuffer::Command::Args::barriers, barriersForTexture(), QGles2CommandBuffer::Command::cmd, QGles2CommandBuffer::commands, QRhiTexture::m_flags, QGles2CommandBuffer::NoPass, Q_ASSERT, QGles2CommandBuffer::recordingPass, textureAccessIsWrite(), QGles2Texture::usageState, and QRhiTexture::UsedWithLoadStore.

Referenced by enqueueResourceUpdates(), and enqueueSubresUpload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trackedRegisterBuffer()

void QRhiGles2::trackedRegisterBuffer ( QRhiPassResourceTracker passResTracker,
QGles2Buffer bufD,
QRhiPassResourceTracker::BufferAccess  access,
QRhiPassResourceTracker::BufferStage  stage 
)

Definition at line 2807 of file qrhigles2.cpp.

References QGles2Buffer::UsageState::access, QRhiPassResourceTracker::registerBuffer(), toGlAccess(), toPassTrackerUsageState(), and QGles2Buffer::usageState.

Referenced by setShaderResources(), and setVertexInput().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ trackedRegisterTexture()

void QRhiGles2::trackedRegisterTexture ( QRhiPassResourceTracker passResTracker,
QGles2Texture texD,
QRhiPassResourceTracker::TextureAccess  access,
QRhiPassResourceTracker::TextureStage  stage 
)

Definition at line 2817 of file qrhigles2.cpp.

References QGles2Texture::UsageState::access, QRhiPassResourceTracker::registerTexture(), toGlAccess(), toPassTrackerUsageState(), and QGles2Texture::usageState.

Referenced by enqueueBindFramebuffer(), and setShaderResources().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tryLoadFromDiskOrPipelineCache()

◆ trySaveToDiskCache()

void QRhiGles2::trySaveToDiskCache ( GLuint  program,
const QByteArray cacheKey 
)

Definition at line 4948 of file qrhigles2.cpp.

References QByteArray::constData(), isProgramBinaryDiskCacheEnabled(), and qCDebug.

+ Here is the call graph for this function:

◆ trySaveToPipelineCache()

void QRhiGles2::trySaveToPipelineCache ( GLuint  program,
const QByteArray cacheKey,
bool  force = false 
)

Definition at line 4960 of file qrhigles2.cpp.

References caps, QByteArray::data(), GL_PROGRAM_BINARY_LENGTH, GLenum, GLint, m_pipelineCache, QRhiGles2::Caps::programBinary, and Qt::Uninitialized.

+ Here is the call graph for this function:

◆ ubufAlignment()

int QRhiGles2::ubufAlignment ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 1121 of file qrhigles2.cpp.

◆ void() [1/9]

QRhiGles2::void ( QOPENGLF_APIENTRYP  glCompressedTexImage1D)

◆ void() [2/9]

const GLvoid * QRhiGles2::void ( QOPENGLF_APIENTRYP  glCompressedTexSubImage1D)

◆ void() [3/9]

const GLvoid * QRhiGles2::void ( QOPENGLF_APIENTRYP  glCopyTexSubImage1D)

◆ void() [4/9]

const GLvoid const GLvoid * QRhiGles2::void ( QOPENGLF_APIENTRYP  glFramebufferTexture1D)

◆ void() [5/9]

QRhiGles2::void ( QOPENGLF_APIENTRYP  glFramebufferTextureMultiviewOVR)

◆ void() [6/9]

QRhiGles2::void ( QOPENGLF_APIENTRYP  glPolygonMode)

◆ void() [7/9]

QRhiGles2::void ( QOPENGLF_APIENTRYP  glTexImage1D)

◆ void() [8/9]

const void * QRhiGles2::void ( QOPENGLF_APIENTRYP  glTexStorage1D)

◆ void() [9/9]

QRhiGles2::void ( QOPENGLF_APIENTRYP  glTexSubImage1D)

Member Data Documentation

◆ caps

◆ contextLost

bool QRhiGles2::contextLost = false
mutable

◆ ctx

QOpenGLContext* QRhiGles2::ctx = nullptr

Definition at line 903 of file qrhigles2_p.h.

Referenced by create(), and destroy().

◆ currentSwapChain

◆ driverInfoStruct

QRhiDriverInfo QRhiGles2::driverInfoStruct

Definition at line 1041 of file qrhigles2_p.h.

Referenced by create(), driverInfo(), pipelineCacheData(), and setPipelineCacheData().

◆ f

QOpenGLExtensions* QRhiGles2::f = nullptr

Definition at line 910 of file qrhigles2_p.h.

◆ fallbackSurface

QSurface* QRhiGles2::fallbackSurface = nullptr

Definition at line 906 of file qrhigles2_p.h.

Referenced by QRhiGles2(), create(), and evaluateFallbackSurface().

◆ GLenum [1/4]

◆ GLenum [2/4]

const void QRhiGles2::GLenum

Definition at line 914 of file qrhigles2_p.h.

◆ GLenum [3/4]

const GLvoid QRhiGles2::GLenum

Definition at line 921 of file qrhigles2_p.h.

◆ GLenum [4/4]

const GLvoid const GLvoid QRhiGles2::GLenum

Definition at line 923 of file qrhigles2_p.h.

◆ GLint [1/4]

◆ GLint [2/4]

const void QRhiGles2::GLint

Definition at line 914 of file qrhigles2_p.h.

◆ GLint [3/4]

const GLvoid QRhiGles2::GLint

Definition at line 917 of file qrhigles2_p.h.

◆ GLint [4/4]

const GLvoid const GLvoid QRhiGles2::GLint = nullptr

Definition at line 924 of file qrhigles2_p.h.

◆ GLsizei [1/3]

const GLvoid QRhiGles2::GLsizei = nullptr

Definition at line 912 of file qrhigles2_p.h.

Referenced by compileShader(), create(), executeCommandBuffer(), and linkProgram().

◆ GLsizei [2/3]

const void QRhiGles2::GLsizei = nullptr

Definition at line 914 of file qrhigles2_p.h.

◆ GLsizei [3/3]

const GLvoid QRhiGles2::GLsizei = nullptr

Definition at line 918 of file qrhigles2_p.h.

◆ GLuint [1/2]

const GLvoid const GLvoid QRhiGles2::GLuint

◆ GLuint [2/2]

QRhiGles2::GLuint

Definition at line 925 of file qrhigles2_p.h.

◆ importedContext

bool QRhiGles2::importedContext = false

Definition at line 904 of file qrhigles2_p.h.

Referenced by QRhiGles2(), create(), and destroy().

◆ m_pipelineCache

◆ m_shaderCache

QHash<QRhiShaderStage, uint> QRhiGles2::m_shaderCache

Definition at line 1080 of file qrhigles2_p.h.

Referenced by compileShader(), destroy(), and releaseCachedResources().

◆ maybeShareContext

QOpenGLContext* QRhiGles2::maybeShareContext = nullptr

Definition at line 908 of file qrhigles2_p.h.

Referenced by QRhiGles2(), and create().

◆ maybeWindow

QPointer<QWindow> QRhiGles2::maybeWindow = nullptr

Definition at line 907 of file qrhigles2_p.h.

Referenced by QRhiGles2(), create(), and evaluateFallbackSurface().

◆ nativeHandlesStruct

QRhiGles2NativeHandles QRhiGles2::nativeHandlesStruct

Definition at line 1040 of file qrhigles2_p.h.

Referenced by create(), and nativeHandles().

◆ needsMakeCurrentDueToSwap

bool QRhiGles2::needsMakeCurrentDueToSwap = false
mutable

Definition at line 909 of file qrhigles2_p.h.

Referenced by endFrame(), and ensureContext().

◆ ofr

◆ releaseQueue

QList<DeferredReleaseEntry> QRhiGles2::releaseQueue

Definition at line 1072 of file qrhigles2_p.h.

Referenced by executeDeferredReleases().

◆ requestedFormat

QSurfaceFormat QRhiGles2::requestedFormat

Definition at line 905 of file qrhigles2_p.h.

Referenced by QRhiGles2(), and create().

◆ rhiFlags

QRhi::Flags QRhiGles2::rhiFlags

Definition at line 902 of file qrhigles2_p.h.

Referenced by create().

◆ supportedCompressedFormats

QSet<GLint> QRhiGles2::supportedCompressedFormats

Definition at line 1038 of file qrhigles2_p.h.

Referenced by create(), and isTextureFormatSupported().

◆ supportedSampleCountList

QList<int> QRhiGles2::supportedSampleCountList
mutable

Definition at line 1039 of file qrhigles2_p.h.

Referenced by supportedSampleCounts().

◆ vao

uint QRhiGles2::vao = 0

Definition at line 928 of file qrhigles2_p.h.

Referenced by beginExternal(), destroy(), and executeCommandBuffer().


The documentation for this class was generated from the following files: