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

(73a18c3eba6fe5b4ff80f386028dd892da5944d6)

#include "qrhigles2_p.h"
#include <QOffscreenSurface>
#include <QOpenGLContext>
#include <QtCore/qmap.h>
#include <QtGui/private/qopenglextensions_p.h>
#include <QtGui/private/qopenglprogrambinarycache_p.h>
#include <QtGui/private/qwindow_p.h>
#include <qpa/qplatformopenglcontext.h>
#include <qmath.h>
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_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

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)
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 393 of file qrhigles2.cpp.

◆ GL_BACK_LEFT

#define GL_BACK_LEFT   0x0402

Definition at line 545 of file qrhigles2.cpp.

◆ GL_BACK_RIGHT

#define GL_BACK_RIGHT   0x0403

Definition at line 549 of file qrhigles2.cpp.

◆ GL_BGRA

#define GL_BGRA   0x80E1

\variable QRhiGles2NativeHandles::context

Definition at line 157 of file qrhigles2.cpp.

◆ GL_BUFFER

#define GL_BUFFER   0x82E0

Definition at line 581 of file qrhigles2.cpp.

◆ GL_BUFFER_UPDATE_BARRIER_BIT

#define GL_BUFFER_UPDATE_BARRIER_BIT   0x00000200

Definition at line 365 of file qrhigles2.cpp.

◆ GL_COMPARE_REF_TO_TEXTURE

#define GL_COMPARE_REF_TO_TEXTURE   0x884E

Definition at line 321 of file qrhigles2.cpp.

◆ GL_COMPUTE_SHADER

#define GL_COMPUTE_SHADER   0x91B9

Definition at line 349 of file qrhigles2.cpp.

◆ GL_CONTEXT_LOST

#define GL_CONTEXT_LOST   0x0507

Definition at line 445 of file qrhigles2.cpp.

◆ GL_DEPTH24_STENCIL8

#define GL_DEPTH24_STENCIL8   0x88F0

Definition at line 285 of file qrhigles2.cpp.

◆ GL_DEPTH32F_STENCIL8

#define GL_DEPTH32F_STENCIL8   0x8CAD

Definition at line 265 of file qrhigles2.cpp.

◆ GL_DEPTH_COMPONENT16

#define GL_DEPTH_COMPONENT16   0x81A5

Definition at line 253 of file qrhigles2.cpp.

◆ GL_DEPTH_COMPONENT24

#define GL_DEPTH_COMPONENT24   0x81A6

Definition at line 257 of file qrhigles2.cpp.

◆ GL_DEPTH_COMPONENT32F

#define GL_DEPTH_COMPONENT32F   0x8CAC

Definition at line 261 of file qrhigles2.cpp.

◆ GL_DEPTH_STENCIL

#define GL_DEPTH_STENCIL   0x84F9

Definition at line 293 of file qrhigles2.cpp.

◆ GL_DEPTH_STENCIL_ATTACHMENT

#define GL_DEPTH_STENCIL_ATTACHMENT   0x821A

Definition at line 289 of file qrhigles2.cpp.

◆ GL_DRAW_FRAMEBUFFER

#define GL_DRAW_FRAMEBUFFER   0x8CA9

Definition at line 309 of file qrhigles2.cpp.

◆ GL_ELEMENT_ARRAY_BARRIER_BIT

#define GL_ELEMENT_ARRAY_BARRIER_BIT   0x00000002

Definition at line 357 of file qrhigles2.cpp.

◆ GL_FILL

#define GL_FILL   0x1B02

Definition at line 533 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 269 of file qrhigles2.cpp.

◆ GL_FRAMEBUFFER_BARRIER_BIT

#define GL_FRAMEBUFFER_BARRIER_BIT   0x00000400

Definition at line 389 of file qrhigles2.cpp.

◆ GL_FRAMEBUFFER_SRGB

#define GL_FRAMEBUFFER_SRGB   0x8DB9

Definition at line 301 of file qrhigles2.cpp.

◆ GL_GEOMETRY_SHADER

#define GL_GEOMETRY_SHADER   0x8DD9

Definition at line 541 of file qrhigles2.cpp.

◆ GL_HALF_FLOAT

#define GL_HALF_FLOAT   0x140B

Definition at line 249 of file qrhigles2.cpp.

◆ GL_LINE

#define GL_LINE   0x1B01

Definition at line 529 of file qrhigles2.cpp.

◆ GL_MAP_INVALIDATE_BUFFER_BIT

#define GL_MAP_INVALIDATE_BUFFER_BIT   0x0008

Definition at line 413 of file qrhigles2.cpp.

◆ GL_MAP_READ_BIT

#define GL_MAP_READ_BIT   0x0001

Definition at line 405 of file qrhigles2.cpp.

◆ GL_MAP_WRITE_BIT

#define GL_MAP_WRITE_BIT   0x0002

Definition at line 409 of file qrhigles2.cpp.

◆ GL_MAX_ARRAY_TEXTURE_LAYERS

#define GL_MAX_ARRAY_TEXTURE_LAYERS   0x88FF

Definition at line 477 of file qrhigles2.cpp.

◆ GL_MAX_COMPUTE_WORK_GROUP_COUNT

#define GL_MAX_COMPUTE_WORK_GROUP_COUNT   0x91BE

Definition at line 433 of file qrhigles2.cpp.

◆ GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS

#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS   0x90EB

Definition at line 429 of file qrhigles2.cpp.

◆ GL_MAX_COMPUTE_WORK_GROUP_SIZE

#define GL_MAX_COMPUTE_WORK_GROUP_SIZE   0x91BF

Definition at line 437 of file qrhigles2.cpp.

◆ GL_MAX_DRAW_BUFFERS

#define GL_MAX_DRAW_BUFFERS   0x8824

Definition at line 313 of file qrhigles2.cpp.

◆ GL_MAX_FRAGMENT_UNIFORM_COMPONENTS

#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS   0x8B49

Definition at line 485 of file qrhigles2.cpp.

◆ GL_MAX_FRAGMENT_UNIFORM_VECTORS

#define GL_MAX_FRAGMENT_UNIFORM_VECTORS   0x8DFD

Definition at line 493 of file qrhigles2.cpp.

◆ GL_MAX_SAMPLES

#define GL_MAX_SAMPLES   0x8D57

Definition at line 329 of file qrhigles2.cpp.

◆ GL_MAX_VARYING_COMPONENTS

#define GL_MAX_VARYING_COMPONENTS   0x8B4B

Definition at line 505 of file qrhigles2.cpp.

◆ GL_MAX_VARYING_FLOATS

#define GL_MAX_VARYING_FLOATS   0x8B4B

Definition at line 509 of file qrhigles2.cpp.

◆ GL_MAX_VARYING_VECTORS

#define GL_MAX_VARYING_VECTORS   0x8DFC

Definition at line 513 of file qrhigles2.cpp.

◆ GL_MAX_VERTEX_OUTPUT_COMPONENTS

#define GL_MAX_VERTEX_OUTPUT_COMPONENTS   0x9122

Definition at line 565 of file qrhigles2.cpp.

◆ GL_MAX_VERTEX_UNIFORM_COMPONENTS

#define GL_MAX_VERTEX_UNIFORM_COMPONENTS   0x8B4A

Definition at line 481 of file qrhigles2.cpp.

◆ GL_MAX_VERTEX_UNIFORM_VECTORS

#define GL_MAX_VERTEX_UNIFORM_VECTORS   0x8DFB

Definition at line 489 of file qrhigles2.cpp.

◆ GL_NUM_PROGRAM_BINARY_FORMATS

#define GL_NUM_PROGRAM_BINARY_FORMATS   0x87FE

Definition at line 453 of file qrhigles2.cpp.

◆ GL_PATCH_VERTICES

#define GL_PATCH_VERTICES   0x8E72

Definition at line 525 of file qrhigles2.cpp.

◆ GL_PATCHES

#define GL_PATCHES   0x000E

Definition at line 537 of file qrhigles2.cpp.

◆ GL_PIXEL_BUFFER_BARRIER_BIT

#define GL_PIXEL_BUFFER_BARRIER_BIT   0x00000080

Definition at line 381 of file qrhigles2.cpp.

◆ GL_POINT_SPRITE

#define GL_POINT_SPRITE   0x8861

Definition at line 401 of file qrhigles2.cpp.

◆ GL_PRIMITIVE_RESTART_FIXED_INDEX

#define GL_PRIMITIVE_RESTART_FIXED_INDEX   0x8D69

Definition at line 297 of file qrhigles2.cpp.

◆ GL_PROGRAM

#define GL_PROGRAM   0x82E2

Definition at line 585 of file qrhigles2.cpp.

◆ GL_PROGRAM_BINARY_LENGTH

#define GL_PROGRAM_BINARY_LENGTH   0x8741

Definition at line 449 of file qrhigles2.cpp.

◆ GL_QUERY_RESULT

#define GL_QUERY_RESULT   0x8866

Definition at line 573 of file qrhigles2.cpp.

◆ GL_QUERY_RESULT_AVAILABLE

#define GL_QUERY_RESULT_AVAILABLE   0x8867

Definition at line 577 of file qrhigles2.cpp.

◆ GL_R16

#define GL_R16   0x822A

Definition at line 209 of file qrhigles2.cpp.

◆ GL_R16F

#define GL_R16F   0x822D

Definition at line 241 of file qrhigles2.cpp.

◆ GL_R32F

#define GL_R32F   0x822E

Definition at line 245 of file qrhigles2.cpp.

◆ GL_R32I

#define GL_R32I   0x8235

Definition at line 173 of file qrhigles2.cpp.

◆ GL_R32UI

#define GL_R32UI   0x8236

Definition at line 177 of file qrhigles2.cpp.

◆ GL_R8

#define GL_R8   0x8229

Definition at line 161 of file qrhigles2.cpp.

◆ GL_R8I

#define GL_R8I   0x8231

Definition at line 165 of file qrhigles2.cpp.

◆ GL_R8UI

#define GL_R8UI   0x8232

Definition at line 169 of file qrhigles2.cpp.

◆ GL_READ_FRAMEBUFFER

#define GL_READ_FRAMEBUFFER   0x8CA8

Definition at line 305 of file qrhigles2.cpp.

◆ GL_READ_ONLY

#define GL_READ_ONLY   0x88B8

Definition at line 337 of file qrhigles2.cpp.

◆ GL_READ_WRITE

#define GL_READ_WRITE   0x88BA

Definition at line 345 of file qrhigles2.cpp.

◆ GL_RED

#define GL_RED   0x1903

Definition at line 217 of file qrhigles2.cpp.

◆ GL_RED_INTEGER

#define GL_RED_INTEGER   0x8D94

Definition at line 221 of file qrhigles2.cpp.

◆ GL_RG

#define GL_RG   0x8227

Definition at line 201 of file qrhigles2.cpp.

◆ GL_RG16

#define GL_RG16   0x822C

Definition at line 213 of file qrhigles2.cpp.

◆ GL_RG32I

#define GL_RG32I   0x823B

Definition at line 181 of file qrhigles2.cpp.

◆ GL_RG32UI

#define GL_RG32UI   0x823C

Definition at line 185 of file qrhigles2.cpp.

◆ GL_RG8

#define GL_RG8   0x822B

Definition at line 197 of file qrhigles2.cpp.

◆ GL_RG_INTEGER

#define GL_RG_INTEGER   0x8228

Definition at line 205 of file qrhigles2.cpp.

◆ GL_RGB10_A2

#define GL_RGB10_A2   0x8059

Definition at line 497 of file qrhigles2.cpp.

◆ GL_RGBA16F

#define GL_RGBA16F   0x881A

Definition at line 237 of file qrhigles2.cpp.

◆ GL_RGBA32F

#define GL_RGBA32F   0x8814

Definition at line 233 of file qrhigles2.cpp.

◆ GL_RGBA32I

#define GL_RGBA32I   0x8D82

Definition at line 189 of file qrhigles2.cpp.

◆ GL_RGBA32UI

#define GL_RGBA32UI   0x8D70

Definition at line 193 of file qrhigles2.cpp.

◆ GL_RGBA8

#define GL_RGBA8   0x8058

Definition at line 229 of file qrhigles2.cpp.

◆ GL_RGBA_INTEGER

#define GL_RGBA_INTEGER   0x8D99

Definition at line 225 of file qrhigles2.cpp.

◆ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT

#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT   0x00000020

Definition at line 377 of file qrhigles2.cpp.

◆ GL_SHADER_STORAGE_BARRIER_BIT

#define GL_SHADER_STORAGE_BARRIER_BIT   0x00002000

Definition at line 369 of file qrhigles2.cpp.

◆ GL_SHADER_STORAGE_BUFFER

#define GL_SHADER_STORAGE_BUFFER   0x90D2

Definition at line 333 of file qrhigles2.cpp.

◆ GL_STENCIL_INDEX

#define GL_STENCIL_INDEX   0x1901

Definition at line 277 of file qrhigles2.cpp.

◆ GL_STENCIL_INDEX8

#define GL_STENCIL_INDEX8   0x8D48

Definition at line 281 of file qrhigles2.cpp.

◆ GL_TESS_CONTROL_SHADER

#define GL_TESS_CONTROL_SHADER   0x8E88

Definition at line 517 of file qrhigles2.cpp.

◆ GL_TESS_EVALUATION_SHADER

#define GL_TESS_EVALUATION_SHADER   0x8E87

Definition at line 521 of file qrhigles2.cpp.

◆ GL_TEXTURE_1D

#define GL_TEXTURE_1D   0x0DE0

Definition at line 553 of file qrhigles2.cpp.

◆ GL_TEXTURE_1D_ARRAY

#define GL_TEXTURE_1D_ARRAY   0x8C18

Definition at line 557 of file qrhigles2.cpp.

◆ GL_TEXTURE_2D_ARRAY

#define GL_TEXTURE_2D_ARRAY   0x8C1A

Definition at line 473 of file qrhigles2.cpp.

◆ GL_TEXTURE_2D_MULTISAMPLE

#define GL_TEXTURE_2D_MULTISAMPLE   0x9100

Definition at line 417 of file qrhigles2.cpp.

◆ GL_TEXTURE_2D_MULTISAMPLE_ARRAY

#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY   0x9102

Definition at line 421 of file qrhigles2.cpp.

◆ GL_TEXTURE_3D

#define GL_TEXTURE_3D   0x806F

Definition at line 461 of file qrhigles2.cpp.

◆ GL_TEXTURE_COMPARE_FUNC

#define GL_TEXTURE_COMPARE_FUNC   0x884D

Definition at line 325 of file qrhigles2.cpp.

◆ GL_TEXTURE_COMPARE_MODE

#define GL_TEXTURE_COMPARE_MODE   0x884C

Definition at line 317 of file qrhigles2.cpp.

◆ GL_TEXTURE_CUBE_MAP_SEAMLESS

#define GL_TEXTURE_CUBE_MAP_SEAMLESS   0x884F

Definition at line 441 of file qrhigles2.cpp.

◆ GL_TEXTURE_EXTERNAL_OES

#define GL_TEXTURE_EXTERNAL_OES   0x8D65

Definition at line 425 of file qrhigles2.cpp.

◆ GL_TEXTURE_FETCH_BARRIER_BIT

#define GL_TEXTURE_FETCH_BARRIER_BIT   0x00000008

Definition at line 373 of file qrhigles2.cpp.

◆ GL_TEXTURE_RECTANGLE

#define GL_TEXTURE_RECTANGLE   0x84F5

Definition at line 469 of file qrhigles2.cpp.

◆ GL_TEXTURE_UPDATE_BARRIER_BIT

#define GL_TEXTURE_UPDATE_BARRIER_BIT   0x00000100

Definition at line 385 of file qrhigles2.cpp.

◆ GL_TEXTURE_WRAP_R

#define GL_TEXTURE_WRAP_R   0x8072

Definition at line 465 of file qrhigles2.cpp.

◆ GL_TIMESTAMP

#define GL_TIMESTAMP   0x8E28

Definition at line 569 of file qrhigles2.cpp.

◆ GL_UNIFORM_BARRIER_BIT

#define GL_UNIFORM_BARRIER_BIT   0x00000004

Definition at line 361 of file qrhigles2.cpp.

◆ GL_UNPACK_ROW_LENGTH

#define GL_UNPACK_ROW_LENGTH   0x0CF2

Definition at line 457 of file qrhigles2.cpp.

◆ GL_UNSIGNED_INT_24_8

#define GL_UNSIGNED_INT_24_8   0x84FA

Definition at line 273 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 501 of file qrhigles2.cpp.

◆ GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT

#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT   0x00000001

Definition at line 353 of file qrhigles2.cpp.

◆ GL_VERTEX_PROGRAM_POINT_SIZE

#define GL_VERTEX_PROGRAM_POINT_SIZE   0x8642

Definition at line 397 of file qrhigles2.cpp.

◆ GL_WRITE_ONLY

#define GL_WRITE_ONLY   0x88B9

Definition at line 341 of file qrhigles2.cpp.

Function Documentation

◆ addBoundaryCommand()

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

Definition at line 2229 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 2461 of file qrhigles2.cpp.

◆ barriersForTexture()

GLbitfield barriersForTexture ( )
inlinestatic

Definition at line 2470 of file qrhigles2.cpp.

◆ bindVertexIndexBufferWithStateReset()

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

Definition at line 3174 of file qrhigles2.cpp.

◆ bufferAccessIsWrite()

bool bufferAccessIsWrite ( QGles2Buffer::Access access)
static

Definition at line 2446 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 652 of file qrhigles2.cpp.

◆ isGraphicsStage()

bool isGraphicsStage ( const QRhiShaderStage & shaderStage)
inlinestatic

Definition at line 6523 of file qrhigles2.cpp.

◆ Q_GLOBAL_STATIC()

Q_GLOBAL_STATIC ( QOpenGLProgramBinaryCache ,
qrhi_programBinaryCache  )

◆ 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 4182 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 2453 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 2879 of file qrhigles2.cpp.

◆ toGlBlendOp()

GLenum toGlBlendOp ( QRhiGraphicsPipeline::BlendOp op)
inlinestatic

Definition at line 2923 of file qrhigles2.cpp.

◆ toGlCompareOp()

GLenum toGlCompareOp ( QRhiGraphicsPipeline::CompareOp op)
inlinestatic

Definition at line 2941 of file qrhigles2.cpp.

◆ toGlCompressedTextureFormat()

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

Definition at line 710 of file qrhigles2.cpp.

◆ toGlCullMode()

GLenum toGlCullMode ( QRhiGraphicsPipeline::CullMode c)
inlinestatic

Definition at line 2855 of file qrhigles2.cpp.

◆ toGlFrontFace()

GLenum toGlFrontFace ( QRhiGraphicsPipeline::FrontFace f)
inlinestatic

Definition at line 2867 of file qrhigles2.cpp.

◆ toGlMagFilter()

GLenum toGlMagFilter ( QRhiSampler::Filter f)
inlinestatic

Definition at line 3019 of file qrhigles2.cpp.

◆ toGlMinFilter()

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

Definition at line 3001 of file qrhigles2.cpp.

◆ toGlPolygonMode()

GLenum toGlPolygonMode ( QRhiGraphicsPipeline::PolygonMode mode)
inlinestatic

Definition at line 2989 of file qrhigles2.cpp.

◆ toGlShaderType()

GLenum toGlShaderType ( QRhiShaderStage::Type type)
inlinestatic

Definition at line 5049 of file qrhigles2.cpp.

◆ toGlStencilOp()

GLenum toGlStencilOp ( QRhiGraphicsPipeline::StencilOp op)
inlinestatic

Definition at line 2965 of file qrhigles2.cpp.

◆ toGlTextureCompareFunc()

GLenum toGlTextureCompareFunc ( QRhiSampler::CompareOp op)
inlinestatic

Definition at line 3045 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 1302 of file qrhigles2.cpp.

◆ toGlTopology()

GLenum toGlTopology ( QRhiGraphicsPipeline::Topology t)
inlinestatic

Definition at line 2833 of file qrhigles2.cpp.

◆ toGlWrapMode()

GLenum toGlWrapMode ( QRhiSampler::AddressMode m)
inlinestatic

Definition at line 3031 of file qrhigles2.cpp.

◆ toPassTrackerUsageState() [1/2]

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

Definition at line 3091 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 3122 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 5331 of file qrhigles2.cpp.