Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qrhigles2.cpp File Reference

(c8502d7ef3a85b0af2fc01329cd8d9111968fd55)

#include "qrhigles2_p.h"
#include <QOffscreenSurface>
#include <QOpenGLContext>
#include <QtCore/qmap.h>
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/private/qopenglextensions_p.h>
#include <QtGui/private/qopenglprogrambinarycache_p.h>
#include <QtGui/private/qwindow_p.h>
#include <kernel/qplatformintegration.h>
#include <qpa/qplatformopenglcontext.h>
#include <qmath.h>
#include <limits>
Include dependency graph for qrhigles2.cpp:

Go to the source code of this file.

Classes

struct  QGles2PipelineCacheDataHeader
struct  CommandBufferExecTrackedState

Macros

#define GL_BGRA   0x80E1
 \variable QRhiGles2NativeHandles::context
#define GL_R8   0x8229
#define GL_R8I   0x8231
#define GL_R8UI   0x8232
#define GL_R32I   0x8235
#define GL_R32UI   0x8236
#define GL_RG32I   0x823B
#define GL_RG32UI   0x823C
#define GL_RGBA32I   0x8D82
#define GL_RGBA32UI   0x8D70
#define GL_RG8   0x822B
#define GL_RG   0x8227
#define GL_RG_INTEGER   0x8228
#define GL_R16   0x822A
#define GL_RG16   0x822C
#define GL_RED   0x1903
#define GL_RED_INTEGER   0x8D94
#define GL_RGBA_INTEGER   0x8D99
#define GL_RGBA8   0x8058
#define GL_RGBA32F   0x8814
#define GL_RGBA16F   0x881A
#define GL_R16F   0x822D
#define GL_R32F   0x822E
#define GL_HALF_FLOAT   0x140B
#define GL_DEPTH_COMPONENT16   0x81A5
#define GL_DEPTH_COMPONENT24   0x81A6
#define GL_DEPTH_COMPONENT32F   0x8CAC
#define GL_DEPTH32F_STENCIL8   0x8CAD
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV   0x8DAD
#define GL_UNSIGNED_INT_24_8   0x84FA
#define GL_STENCIL_INDEX   0x1901
#define GL_STENCIL_INDEX8   0x8D48
#define GL_DEPTH24_STENCIL8   0x88F0
#define GL_DEPTH_STENCIL_ATTACHMENT   0x821A
#define GL_DEPTH_STENCIL   0x84F9
#define GL_PRIMITIVE_RESTART_FIXED_INDEX   0x8D69
#define GL_FRAMEBUFFER_SRGB   0x8DB9
#define GL_READ_FRAMEBUFFER   0x8CA8
#define GL_DRAW_FRAMEBUFFER   0x8CA9
#define GL_MAX_DRAW_BUFFERS   0x8824
#define GL_TEXTURE_COMPARE_MODE   0x884C
#define GL_COMPARE_REF_TO_TEXTURE   0x884E
#define GL_TEXTURE_COMPARE_FUNC   0x884D
#define GL_MAX_SAMPLES   0x8D57
#define GL_SHADER_STORAGE_BUFFER   0x90D2
#define GL_READ_ONLY   0x88B8
#define GL_WRITE_ONLY   0x88B9
#define GL_READ_WRITE   0x88BA
#define GL_COMPUTE_SHADER   0x91B9
#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT   0x00000001
#define GL_ELEMENT_ARRAY_BARRIER_BIT   0x00000002
#define GL_UNIFORM_BARRIER_BIT   0x00000004
#define GL_BUFFER_UPDATE_BARRIER_BIT   0x00000200
#define GL_SHADER_STORAGE_BARRIER_BIT   0x00002000
#define GL_COMMAND_BARRIER_BIT   0x00000040
#define GL_TEXTURE_FETCH_BARRIER_BIT   0x00000008
#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT   0x00000020
#define GL_PIXEL_BUFFER_BARRIER_BIT   0x00000080
#define GL_TEXTURE_UPDATE_BARRIER_BIT   0x00000100
#define GL_FRAMEBUFFER_BARRIER_BIT   0x00000400
#define GL_ALL_BARRIER_BITS   0xFFFFFFFF
#define GL_VERTEX_PROGRAM_POINT_SIZE   0x8642
#define GL_POINT_SPRITE   0x8861
#define GL_MAP_READ_BIT   0x0001
#define GL_MAP_WRITE_BIT   0x0002
#define GL_MAP_INVALIDATE_BUFFER_BIT   0x0008
#define GL_TEXTURE_2D_MULTISAMPLE   0x9100
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY   0x9102
#define GL_TEXTURE_EXTERNAL_OES   0x8D65
#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS   0x90EB
#define GL_MAX_COMPUTE_WORK_GROUP_COUNT   0x91BE
#define GL_MAX_COMPUTE_WORK_GROUP_SIZE   0x91BF
#define GL_TEXTURE_CUBE_MAP_SEAMLESS   0x884F
#define GL_CONTEXT_LOST   0x0507
#define GL_PROGRAM_BINARY_LENGTH   0x8741
#define GL_NUM_PROGRAM_BINARY_FORMATS   0x87FE
#define GL_UNPACK_ROW_LENGTH   0x0CF2
#define GL_TEXTURE_3D   0x806F
#define GL_TEXTURE_WRAP_R   0x8072
#define GL_TEXTURE_RECTANGLE   0x84F5
#define GL_TEXTURE_2D_ARRAY   0x8C1A
#define GL_MAX_ARRAY_TEXTURE_LAYERS   0x88FF
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS   0x8B4A
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS   0x8B49
#define GL_MAX_VERTEX_UNIFORM_VECTORS   0x8DFB
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS   0x8DFD
#define GL_RGB10_A2   0x8059
#define GL_UNSIGNED_INT_2_10_10_10_REV   0x8368
#define GL_MAX_VARYING_COMPONENTS   0x8B4B
#define GL_MAX_VARYING_FLOATS   0x8B4B
#define GL_MAX_VARYING_VECTORS   0x8DFC
#define GL_TESS_CONTROL_SHADER   0x8E88
#define GL_TESS_EVALUATION_SHADER   0x8E87
#define GL_PATCH_VERTICES   0x8E72
#define GL_LINE   0x1B01
#define GL_FILL   0x1B02
#define GL_PATCHES   0x000E
#define GL_GEOMETRY_SHADER   0x8DD9
#define GL_BACK_LEFT   0x0402
#define GL_BACK_RIGHT   0x0403
#define GL_TEXTURE_1D   0x0DE0
#define GL_TEXTURE_1D_ARRAY   0x8C18
#define GL_MAX_VERTEX_OUTPUT_COMPONENTS   0x9122
#define GL_TIMESTAMP   0x8E28
#define GL_QUERY_RESULT   0x8866
#define GL_QUERY_RESULT_AVAILABLE   0x8867
#define GL_BUFFER   0x82E0
#define GL_PROGRAM   0x82E2
#define GL_DEPTH_CLAMP   0x864F
#define GL_DRAW_INDIRECT_BUFFER   0x8F3F

Functions

static QSurfacecurrentSurfaceForCurrentContext (QOpenGLContext *ctx)
static GLenum toGlCompressedTextureFormat (QRhiTexture::Format format, QRhiTexture::Flags flags)
static void toGlTextureFormat (QRhiTexture::Format format, const QRhiGles2::Caps &caps, GLenum *glintformat, GLenum *glsizedintformat, GLenum *glformat, GLenum *gltype)
static void addBoundaryCommand (QGles2CommandBuffer *cbD, QGles2CommandBuffer::Command::Cmd type, GLuint tsQuery=0)
static bool bufferAccessIsWrite (QGles2Buffer::Access access)
static bool textureAccessIsWrite (QGles2Texture::Access access)
static GLbitfield barriersForBuffer ()
static GLbitfield barriersForTexture ()
static GLenum toGlTopology (QRhiGraphicsPipeline::Topology t)
static GLenum toGlCullMode (QRhiGraphicsPipeline::CullMode c)
static GLenum toGlFrontFace (QRhiGraphicsPipeline::FrontFace f)
static GLenum toGlBlendFactor (QRhiGraphicsPipeline::BlendFactor f)
static GLenum toGlBlendOp (QRhiGraphicsPipeline::BlendOp op)
static GLenum toGlCompareOp (QRhiGraphicsPipeline::CompareOp op)
static GLenum toGlStencilOp (QRhiGraphicsPipeline::StencilOp op)
static GLenum toGlPolygonMode (QRhiGraphicsPipeline::PolygonMode mode)
static GLenum toGlMinFilter (QRhiSampler::Filter f, QRhiSampler::Filter m)
static GLenum toGlMagFilter (QRhiSampler::Filter f)
static GLenum toGlWrapMode (QRhiSampler::AddressMode m)
static GLenum toGlTextureCompareFunc (QRhiSampler::CompareOp op)
static QGles2Buffer::Access toGlAccess (QRhiPassResourceTracker::BufferAccess access)
static QRhiPassResourceTracker::UsageState toPassTrackerUsageState (const QGles2Buffer::UsageState &bufUsage)
static QGles2Texture::Access toGlAccess (QRhiPassResourceTracker::TextureAccess access)
static QRhiPassResourceTracker::UsageState toPassTrackerUsageState (const QGles2Texture::UsageState &texUsage)
static void bindVertexIndexBufferWithStateReset (CommandBufferExecTrackedState *state, QOpenGLExtensions *f, GLenum target, GLuint buffer)
template<typename T>
static void qrhi_std140_to_packed (T *dst, int vecSize, int elemCount, const void *src)
static qint64 qrhi_std140_read_size (QShaderDescription::VariableType type, int arrayDim)
template<typename T>
void qrhigl_accumulateComputeResource (T *writtenResources, QRhiResource *resource, QRhiShaderResourceBinding::Type bindingType, int loadTypeVal, int storeTypeVal, int loadStoreTypeVal)
static GLenum toGlShaderType (QRhiShaderStage::Type type)
 Q_GLOBAL_STATIC (QOpenGLProgramBinaryCache, qrhi_programBinaryCache)
static QShader::Stage toShaderStage (QRhiShaderStage::Type type)
static bool isGraphicsStage (const QRhiShaderStage &shaderStage)

Macro Definition Documentation

◆ GL_ALL_BARRIER_BITS

#define GL_ALL_BARRIER_BITS   0xFFFFFFFF

Definition at line 402 of file qrhigles2.cpp.

◆ GL_BACK_LEFT

#define GL_BACK_LEFT   0x0402

Definition at line 554 of file qrhigles2.cpp.

◆ GL_BACK_RIGHT

#define GL_BACK_RIGHT   0x0403

Definition at line 558 of file qrhigles2.cpp.

◆ GL_BGRA

#define GL_BGRA   0x80E1

\variable QRhiGles2NativeHandles::context

Definition at line 162 of file qrhigles2.cpp.

◆ GL_BUFFER

#define GL_BUFFER   0x82E0

Definition at line 590 of file qrhigles2.cpp.

◆ GL_BUFFER_UPDATE_BARRIER_BIT

#define GL_BUFFER_UPDATE_BARRIER_BIT   0x00000200

Definition at line 370 of file qrhigles2.cpp.

◆ GL_COMMAND_BARRIER_BIT

#define GL_COMMAND_BARRIER_BIT   0x00000040

Definition at line 378 of file qrhigles2.cpp.

◆ GL_COMPARE_REF_TO_TEXTURE

#define GL_COMPARE_REF_TO_TEXTURE   0x884E

Definition at line 326 of file qrhigles2.cpp.

◆ GL_COMPUTE_SHADER

#define GL_COMPUTE_SHADER   0x91B9

Definition at line 354 of file qrhigles2.cpp.

◆ GL_CONTEXT_LOST

#define GL_CONTEXT_LOST   0x0507

Definition at line 454 of file qrhigles2.cpp.

◆ GL_DEPTH24_STENCIL8

#define GL_DEPTH24_STENCIL8   0x88F0

Definition at line 290 of file qrhigles2.cpp.

◆ GL_DEPTH32F_STENCIL8

#define GL_DEPTH32F_STENCIL8   0x8CAD

Definition at line 270 of file qrhigles2.cpp.

◆ GL_DEPTH_CLAMP

#define GL_DEPTH_CLAMP   0x864F

Definition at line 598 of file qrhigles2.cpp.

◆ GL_DEPTH_COMPONENT16

#define GL_DEPTH_COMPONENT16   0x81A5

Definition at line 258 of file qrhigles2.cpp.

◆ GL_DEPTH_COMPONENT24

#define GL_DEPTH_COMPONENT24   0x81A6

Definition at line 262 of file qrhigles2.cpp.

◆ GL_DEPTH_COMPONENT32F

#define GL_DEPTH_COMPONENT32F   0x8CAC

Definition at line 266 of file qrhigles2.cpp.

◆ GL_DEPTH_STENCIL

#define GL_DEPTH_STENCIL   0x84F9

Definition at line 298 of file qrhigles2.cpp.

◆ GL_DEPTH_STENCIL_ATTACHMENT

#define GL_DEPTH_STENCIL_ATTACHMENT   0x821A

Definition at line 294 of file qrhigles2.cpp.

◆ GL_DRAW_FRAMEBUFFER

#define GL_DRAW_FRAMEBUFFER   0x8CA9

Definition at line 314 of file qrhigles2.cpp.

◆ GL_DRAW_INDIRECT_BUFFER

#define GL_DRAW_INDIRECT_BUFFER   0x8F3F

Definition at line 602 of file qrhigles2.cpp.

◆ GL_ELEMENT_ARRAY_BARRIER_BIT

#define GL_ELEMENT_ARRAY_BARRIER_BIT   0x00000002

Definition at line 362 of file qrhigles2.cpp.

◆ GL_FILL

#define GL_FILL   0x1B02

Definition at line 542 of file qrhigles2.cpp.

◆ GL_FLOAT_32_UNSIGNED_INT_24_8_REV

#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV   0x8DAD

Definition at line 274 of file qrhigles2.cpp.

◆ GL_FRAMEBUFFER_BARRIER_BIT

#define GL_FRAMEBUFFER_BARRIER_BIT   0x00000400

Definition at line 398 of file qrhigles2.cpp.

◆ GL_FRAMEBUFFER_SRGB

#define GL_FRAMEBUFFER_SRGB   0x8DB9

Definition at line 306 of file qrhigles2.cpp.

◆ GL_GEOMETRY_SHADER

#define GL_GEOMETRY_SHADER   0x8DD9

Definition at line 550 of file qrhigles2.cpp.

◆ GL_HALF_FLOAT

#define GL_HALF_FLOAT   0x140B

Definition at line 254 of file qrhigles2.cpp.

◆ GL_LINE

#define GL_LINE   0x1B01

Definition at line 538 of file qrhigles2.cpp.

◆ GL_MAP_INVALIDATE_BUFFER_BIT

#define GL_MAP_INVALIDATE_BUFFER_BIT   0x0008

Definition at line 422 of file qrhigles2.cpp.

◆ GL_MAP_READ_BIT

#define GL_MAP_READ_BIT   0x0001

Definition at line 414 of file qrhigles2.cpp.

◆ GL_MAP_WRITE_BIT

#define GL_MAP_WRITE_BIT   0x0002

Definition at line 418 of file qrhigles2.cpp.

◆ GL_MAX_ARRAY_TEXTURE_LAYERS

#define GL_MAX_ARRAY_TEXTURE_LAYERS   0x88FF

Definition at line 486 of file qrhigles2.cpp.

◆ GL_MAX_COMPUTE_WORK_GROUP_COUNT

#define GL_MAX_COMPUTE_WORK_GROUP_COUNT   0x91BE

Definition at line 442 of file qrhigles2.cpp.

◆ GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS

#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS   0x90EB

Definition at line 438 of file qrhigles2.cpp.

◆ GL_MAX_COMPUTE_WORK_GROUP_SIZE

#define GL_MAX_COMPUTE_WORK_GROUP_SIZE   0x91BF

Definition at line 446 of file qrhigles2.cpp.

◆ GL_MAX_DRAW_BUFFERS

#define GL_MAX_DRAW_BUFFERS   0x8824

Definition at line 318 of file qrhigles2.cpp.

◆ GL_MAX_FRAGMENT_UNIFORM_COMPONENTS

#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS   0x8B49

Definition at line 494 of file qrhigles2.cpp.

◆ GL_MAX_FRAGMENT_UNIFORM_VECTORS

#define GL_MAX_FRAGMENT_UNIFORM_VECTORS   0x8DFD

Definition at line 502 of file qrhigles2.cpp.

◆ GL_MAX_SAMPLES

#define GL_MAX_SAMPLES   0x8D57

Definition at line 334 of file qrhigles2.cpp.

◆ GL_MAX_VARYING_COMPONENTS

#define GL_MAX_VARYING_COMPONENTS   0x8B4B

Definition at line 514 of file qrhigles2.cpp.

◆ GL_MAX_VARYING_FLOATS

#define GL_MAX_VARYING_FLOATS   0x8B4B

Definition at line 518 of file qrhigles2.cpp.

◆ GL_MAX_VARYING_VECTORS

#define GL_MAX_VARYING_VECTORS   0x8DFC

Definition at line 522 of file qrhigles2.cpp.

◆ GL_MAX_VERTEX_OUTPUT_COMPONENTS

#define GL_MAX_VERTEX_OUTPUT_COMPONENTS   0x9122

Definition at line 574 of file qrhigles2.cpp.

◆ GL_MAX_VERTEX_UNIFORM_COMPONENTS

#define GL_MAX_VERTEX_UNIFORM_COMPONENTS   0x8B4A

Definition at line 490 of file qrhigles2.cpp.

◆ GL_MAX_VERTEX_UNIFORM_VECTORS

#define GL_MAX_VERTEX_UNIFORM_VECTORS   0x8DFB

Definition at line 498 of file qrhigles2.cpp.

◆ GL_NUM_PROGRAM_BINARY_FORMATS

#define GL_NUM_PROGRAM_BINARY_FORMATS   0x87FE

Definition at line 462 of file qrhigles2.cpp.

◆ GL_PATCH_VERTICES

#define GL_PATCH_VERTICES   0x8E72

Definition at line 534 of file qrhigles2.cpp.

◆ GL_PATCHES

#define GL_PATCHES   0x000E

Definition at line 546 of file qrhigles2.cpp.

◆ GL_PIXEL_BUFFER_BARRIER_BIT

#define GL_PIXEL_BUFFER_BARRIER_BIT   0x00000080

Definition at line 390 of file qrhigles2.cpp.

◆ GL_POINT_SPRITE

#define GL_POINT_SPRITE   0x8861

Definition at line 410 of file qrhigles2.cpp.

◆ GL_PRIMITIVE_RESTART_FIXED_INDEX

#define GL_PRIMITIVE_RESTART_FIXED_INDEX   0x8D69

Definition at line 302 of file qrhigles2.cpp.

◆ GL_PROGRAM

#define GL_PROGRAM   0x82E2

Definition at line 594 of file qrhigles2.cpp.

◆ GL_PROGRAM_BINARY_LENGTH

#define GL_PROGRAM_BINARY_LENGTH   0x8741

Definition at line 458 of file qrhigles2.cpp.

◆ GL_QUERY_RESULT

#define GL_QUERY_RESULT   0x8866

Definition at line 582 of file qrhigles2.cpp.

◆ GL_QUERY_RESULT_AVAILABLE

#define GL_QUERY_RESULT_AVAILABLE   0x8867

Definition at line 586 of file qrhigles2.cpp.

◆ GL_R16

#define GL_R16   0x822A

Definition at line 214 of file qrhigles2.cpp.

◆ GL_R16F

#define GL_R16F   0x822D

Definition at line 246 of file qrhigles2.cpp.

◆ GL_R32F

#define GL_R32F   0x822E

Definition at line 250 of file qrhigles2.cpp.

◆ GL_R32I

#define GL_R32I   0x8235

Definition at line 178 of file qrhigles2.cpp.

◆ GL_R32UI

#define GL_R32UI   0x8236

Definition at line 182 of file qrhigles2.cpp.

◆ GL_R8

#define GL_R8   0x8229

Definition at line 166 of file qrhigles2.cpp.

◆ GL_R8I

#define GL_R8I   0x8231

Definition at line 170 of file qrhigles2.cpp.

◆ GL_R8UI

#define GL_R8UI   0x8232

Definition at line 174 of file qrhigles2.cpp.

◆ GL_READ_FRAMEBUFFER

#define GL_READ_FRAMEBUFFER   0x8CA8

Definition at line 310 of file qrhigles2.cpp.

◆ GL_READ_ONLY

#define GL_READ_ONLY   0x88B8

Definition at line 342 of file qrhigles2.cpp.

◆ GL_READ_WRITE

#define GL_READ_WRITE   0x88BA

Definition at line 350 of file qrhigles2.cpp.

◆ GL_RED

#define GL_RED   0x1903

Definition at line 222 of file qrhigles2.cpp.

◆ GL_RED_INTEGER

#define GL_RED_INTEGER   0x8D94

Definition at line 226 of file qrhigles2.cpp.

◆ GL_RG

#define GL_RG   0x8227

Definition at line 206 of file qrhigles2.cpp.

◆ GL_RG16

#define GL_RG16   0x822C

Definition at line 218 of file qrhigles2.cpp.

◆ GL_RG32I

#define GL_RG32I   0x823B

Definition at line 186 of file qrhigles2.cpp.

◆ GL_RG32UI

#define GL_RG32UI   0x823C

Definition at line 190 of file qrhigles2.cpp.

◆ GL_RG8

#define GL_RG8   0x822B

Definition at line 202 of file qrhigles2.cpp.

◆ GL_RG_INTEGER

#define GL_RG_INTEGER   0x8228

Definition at line 210 of file qrhigles2.cpp.

◆ GL_RGB10_A2

#define GL_RGB10_A2   0x8059

Definition at line 506 of file qrhigles2.cpp.

◆ GL_RGBA16F

#define GL_RGBA16F   0x881A

Definition at line 242 of file qrhigles2.cpp.

◆ GL_RGBA32F

#define GL_RGBA32F   0x8814

Definition at line 238 of file qrhigles2.cpp.

◆ GL_RGBA32I

#define GL_RGBA32I   0x8D82

Definition at line 194 of file qrhigles2.cpp.

◆ GL_RGBA32UI

#define GL_RGBA32UI   0x8D70

Definition at line 198 of file qrhigles2.cpp.

◆ GL_RGBA8

#define GL_RGBA8   0x8058

Definition at line 234 of file qrhigles2.cpp.

◆ GL_RGBA_INTEGER

#define GL_RGBA_INTEGER   0x8D99

Definition at line 230 of file qrhigles2.cpp.

◆ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT

#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT   0x00000020

Definition at line 386 of file qrhigles2.cpp.

◆ GL_SHADER_STORAGE_BARRIER_BIT

#define GL_SHADER_STORAGE_BARRIER_BIT   0x00002000

Definition at line 374 of file qrhigles2.cpp.

◆ GL_SHADER_STORAGE_BUFFER

#define GL_SHADER_STORAGE_BUFFER   0x90D2

Definition at line 338 of file qrhigles2.cpp.

◆ GL_STENCIL_INDEX

#define GL_STENCIL_INDEX   0x1901

Definition at line 282 of file qrhigles2.cpp.

◆ GL_STENCIL_INDEX8

#define GL_STENCIL_INDEX8   0x8D48

Definition at line 286 of file qrhigles2.cpp.

◆ GL_TESS_CONTROL_SHADER

#define GL_TESS_CONTROL_SHADER   0x8E88

Definition at line 526 of file qrhigles2.cpp.

◆ GL_TESS_EVALUATION_SHADER

#define GL_TESS_EVALUATION_SHADER   0x8E87

Definition at line 530 of file qrhigles2.cpp.

◆ GL_TEXTURE_1D

#define GL_TEXTURE_1D   0x0DE0

Definition at line 562 of file qrhigles2.cpp.

◆ GL_TEXTURE_1D_ARRAY

#define GL_TEXTURE_1D_ARRAY   0x8C18

Definition at line 566 of file qrhigles2.cpp.

◆ GL_TEXTURE_2D_ARRAY

#define GL_TEXTURE_2D_ARRAY   0x8C1A

Definition at line 482 of file qrhigles2.cpp.

◆ GL_TEXTURE_2D_MULTISAMPLE

#define GL_TEXTURE_2D_MULTISAMPLE   0x9100

Definition at line 426 of file qrhigles2.cpp.

◆ GL_TEXTURE_2D_MULTISAMPLE_ARRAY

#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY   0x9102

Definition at line 430 of file qrhigles2.cpp.

◆ GL_TEXTURE_3D

#define GL_TEXTURE_3D   0x806F

Definition at line 470 of file qrhigles2.cpp.

◆ GL_TEXTURE_COMPARE_FUNC

#define GL_TEXTURE_COMPARE_FUNC   0x884D

Definition at line 330 of file qrhigles2.cpp.

◆ GL_TEXTURE_COMPARE_MODE

#define GL_TEXTURE_COMPARE_MODE   0x884C

Definition at line 322 of file qrhigles2.cpp.

◆ GL_TEXTURE_CUBE_MAP_SEAMLESS

#define GL_TEXTURE_CUBE_MAP_SEAMLESS   0x884F

Definition at line 450 of file qrhigles2.cpp.

◆ GL_TEXTURE_EXTERNAL_OES

#define GL_TEXTURE_EXTERNAL_OES   0x8D65

Definition at line 434 of file qrhigles2.cpp.

◆ GL_TEXTURE_FETCH_BARRIER_BIT

#define GL_TEXTURE_FETCH_BARRIER_BIT   0x00000008

Definition at line 382 of file qrhigles2.cpp.

◆ GL_TEXTURE_RECTANGLE

#define GL_TEXTURE_RECTANGLE   0x84F5

Definition at line 478 of file qrhigles2.cpp.

◆ GL_TEXTURE_UPDATE_BARRIER_BIT

#define GL_TEXTURE_UPDATE_BARRIER_BIT   0x00000100

Definition at line 394 of file qrhigles2.cpp.

◆ GL_TEXTURE_WRAP_R

#define GL_TEXTURE_WRAP_R   0x8072

Definition at line 474 of file qrhigles2.cpp.

◆ GL_TIMESTAMP

#define GL_TIMESTAMP   0x8E28

Definition at line 578 of file qrhigles2.cpp.

◆ GL_UNIFORM_BARRIER_BIT

#define GL_UNIFORM_BARRIER_BIT   0x00000004

Definition at line 366 of file qrhigles2.cpp.

◆ GL_UNPACK_ROW_LENGTH

#define GL_UNPACK_ROW_LENGTH   0x0CF2

Definition at line 466 of file qrhigles2.cpp.

◆ GL_UNSIGNED_INT_24_8

#define GL_UNSIGNED_INT_24_8   0x84FA

Definition at line 278 of file qrhigles2.cpp.

◆ GL_UNSIGNED_INT_2_10_10_10_REV

#define GL_UNSIGNED_INT_2_10_10_10_REV   0x8368

Definition at line 510 of file qrhigles2.cpp.

◆ GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT

#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT   0x00000001

Definition at line 358 of file qrhigles2.cpp.

◆ GL_VERTEX_PROGRAM_POINT_SIZE

#define GL_VERTEX_PROGRAM_POINT_SIZE   0x8642

Definition at line 406 of file qrhigles2.cpp.

◆ GL_WRITE_ONLY

#define GL_WRITE_ONLY   0x88B9

Definition at line 346 of file qrhigles2.cpp.

Function Documentation

◆ addBoundaryCommand()

void addBoundaryCommand ( QGles2CommandBuffer * cbD,
QGles2CommandBuffer::Command::Cmd type,
GLuint tsQuery = 0 )
inlinestatic

Definition at line 2391 of file qrhigles2.cpp.

References QGles2CommandBuffer::Command::BeginFrame, QGles2CommandBuffer::Command::cmd, and QGles2CommandBuffer::Command::EndFrame.

Referenced by QRhiGles2::endExternal().

Here is the caller graph for this function:

◆ barriersForBuffer()

GLbitfield barriersForBuffer ( )
inlinestatic

Definition at line 2623 of file qrhigles2.cpp.

◆ barriersForTexture()

GLbitfield barriersForTexture ( )
inlinestatic

Definition at line 2633 of file qrhigles2.cpp.

◆ bindVertexIndexBufferWithStateReset()

void bindVertexIndexBufferWithStateReset ( CommandBufferExecTrackedState * state,
QOpenGLExtensions * f,
GLenum target,
GLuint buffer )
inlinestatic

Definition at line 3354 of file qrhigles2.cpp.

◆ bufferAccessIsWrite()

bool bufferAccessIsWrite ( QGles2Buffer::Access access)
static

Definition at line 2608 of file qrhigles2.cpp.

References QGles2Buffer::AccessStorageReadWrite, QGles2Buffer::AccessStorageWrite, and QGles2Buffer::AccessUpdate.

Referenced by QRhiGles2::trackedBufferBarrier().

Here is the caller graph for this function:

◆ currentSurfaceForCurrentContext()

QSurface * currentSurfaceForCurrentContext ( QOpenGLContext * ctx)
inlinestatic

Definition at line 674 of file qrhigles2.cpp.

◆ isGraphicsStage()

bool isGraphicsStage ( const QRhiShaderStage & shaderStage)
inlinestatic

Definition at line 6852 of file qrhigles2.cpp.

◆ Q_GLOBAL_STATIC()

Q_GLOBAL_STATIC ( QOpenGLProgramBinaryCache ,
qrhi_programBinaryCache  )

◆ qrhi_std140_read_size()

qint64 qrhi_std140_read_size ( QShaderDescription::VariableType type,
int arrayDim )
inlinestatic

Definition at line 4438 of file qrhigles2.cpp.

◆ qrhi_std140_to_packed()

template<typename T>
void qrhi_std140_to_packed ( T * dst,
int vecSize,
int elemCount,
const void * src )
inlinestatic

Definition at line 4428 of file qrhigles2.cpp.

◆ qrhigl_accumulateComputeResource()

template<typename T>
void qrhigl_accumulateComputeResource ( T * writtenResources,
QRhiResource * resource,
QRhiShaderResourceBinding::Type bindingType,
int loadTypeVal,
int storeTypeVal,
int loadStoreTypeVal )
inline

◆ textureAccessIsWrite()

bool textureAccessIsWrite ( QGles2Texture::Access access)
static

Definition at line 2615 of file qrhigles2.cpp.

References QGles2Texture::AccessFramebuffer, QGles2Texture::AccessStorageReadWrite, QGles2Texture::AccessStorageWrite, and QGles2Texture::AccessUpdate.

Referenced by QRhiGles2::trackedImageBarrier().

Here is the caller graph for this function:

◆ toGlAccess() [1/2]

◆ toGlAccess() [2/2]

◆ toGlBlendFactor()

GLenum toGlBlendFactor ( QRhiGraphicsPipeline::BlendFactor f)
inlinestatic

Definition at line 3057 of file qrhigles2.cpp.

◆ toGlBlendOp()

GLenum toGlBlendOp ( QRhiGraphicsPipeline::BlendOp op)
inlinestatic

Definition at line 3101 of file qrhigles2.cpp.

◆ toGlCompareOp()

GLenum toGlCompareOp ( QRhiGraphicsPipeline::CompareOp op)
inlinestatic

Definition at line 3119 of file qrhigles2.cpp.

◆ toGlCompressedTextureFormat()

GLenum toGlCompressedTextureFormat ( QRhiTexture::Format format,
QRhiTexture::Flags flags )
inlinestatic

Definition at line 744 of file qrhigles2.cpp.

◆ toGlCullMode()

GLenum toGlCullMode ( QRhiGraphicsPipeline::CullMode c)
inlinestatic

Definition at line 3033 of file qrhigles2.cpp.

◆ toGlFrontFace()

GLenum toGlFrontFace ( QRhiGraphicsPipeline::FrontFace f)
inlinestatic

Definition at line 3045 of file qrhigles2.cpp.

◆ toGlMagFilter()

GLenum toGlMagFilter ( QRhiSampler::Filter f)
inlinestatic

Definition at line 3197 of file qrhigles2.cpp.

◆ toGlMinFilter()

GLenum toGlMinFilter ( QRhiSampler::Filter f,
QRhiSampler::Filter m )
inlinestatic

Definition at line 3179 of file qrhigles2.cpp.

◆ toGlPolygonMode()

GLenum toGlPolygonMode ( QRhiGraphicsPipeline::PolygonMode mode)
inlinestatic

Definition at line 3167 of file qrhigles2.cpp.

◆ toGlShaderType()

GLenum toGlShaderType ( QRhiShaderStage::Type type)
inlinestatic

Definition at line 5359 of file qrhigles2.cpp.

◆ toGlStencilOp()

GLenum toGlStencilOp ( QRhiGraphicsPipeline::StencilOp op)
inlinestatic

Definition at line 3143 of file qrhigles2.cpp.

◆ toGlTextureCompareFunc()

GLenum toGlTextureCompareFunc ( QRhiSampler::CompareOp op)
inlinestatic

Definition at line 3223 of file qrhigles2.cpp.

◆ toGlTextureFormat()

void toGlTextureFormat ( QRhiTexture::Format format,
const QRhiGles2::Caps & caps,
GLenum * glintformat,
GLenum * glsizedintformat,
GLenum * glformat,
GLenum * gltype )
inlinestatic

Definition at line 1404 of file qrhigles2.cpp.

◆ toGlTopology()

GLenum toGlTopology ( QRhiGraphicsPipeline::Topology t)
inlinestatic

Definition at line 3011 of file qrhigles2.cpp.

◆ toGlWrapMode()

GLenum toGlWrapMode ( QRhiSampler::AddressMode m)
inlinestatic

Definition at line 3209 of file qrhigles2.cpp.

◆ toPassTrackerUsageState() [1/2]

QRhiPassResourceTracker::UsageState toPassTrackerUsageState ( const QGles2Buffer::UsageState & bufUsage)
inlinestatic

Definition at line 3271 of file qrhigles2.cpp.

References QGles2Buffer::UsageState::access, QRhiPassResourceTracker::UsageState::access, QRhiPassResourceTracker::UsageState::layout, and QRhiPassResourceTracker::UsageState::stage.

Referenced by QRhiGles2::trackedRegisterBuffer().

Here is the caller graph for this function:

◆ toPassTrackerUsageState() [2/2]

QRhiPassResourceTracker::UsageState toPassTrackerUsageState ( const QGles2Texture::UsageState & texUsage)
inlinestatic

Definition at line 3302 of file qrhigles2.cpp.

References QGles2Texture::UsageState::access, QRhiPassResourceTracker::UsageState::access, QRhiPassResourceTracker::UsageState::layout, and QRhiPassResourceTracker::UsageState::stage.

Referenced by QRhiGles2::trackedRegisterTexture().

Here is the caller graph for this function:

◆ toShaderStage()

QShader::Stage toShaderStage ( QRhiShaderStage::Type type)
inlinestatic

Definition at line 5648 of file qrhigles2.cpp.