Blender  V2.93
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
blender::gpu Namespace Reference

Namespaces

 debug
 
 GLVertArray
 

Classes

class  GPUBackend
 
class  Batch
 
struct  GPUCapabilities
 
class  Context
 
class  DrawList
 
class  FrameBuffer
 
class  Immediate
 
class  IndexBuf
 
class  GPUPlatformGlobal
 
class  QueryPool
 
struct  ShaderInput
 
class  ShaderInterface
 
class  Shader
 
union  GPUState
 
union  GPUStateMutable
 
class  StateManager
 
class  Texture
 
class  UniformBuf
 
class  VertBuf
 
class  GLBackend
 
class  GLVaoCache
 
class  GLBatch
 
class  GLSharedOrphanLists
 
class  GLContext
 
class  GLDrawList
 
class  GLFrameBuffer
 
class  GLImmediate
 
class  GLIndexBuf
 
class  GLQueryPool
 
class  GLShader
 
class  GLShaderInterface
 
class  GLStateManager
 
class  GLTexture
 
class  GLUniformBuf
 
class  GLVertBuf
 
class  GPUTest
 

Typedefs

typedef Vector< StringRefDebugStack
 
typedef enum blender::gpu::GPUQueryType GPUQueryType
 
typedef struct blender::gpu::ShaderInput ShaderInput
 
typedef enum blender::gpu::eGPUTextureFormatFlag eGPUTextureFormatFlag
 
typedef enum blender::gpu::eGPUTextureType eGPUTextureType
 

Enumerations

enum  GPUIndexBufType { GPU_INDEX_U16 , GPU_INDEX_U32 }
 
enum  GPUQueryType { GPU_QUERY_OCCLUSION = 0 }
 
enum  eGPUTextureFormatFlag {
  GPU_FORMAT_DEPTH = (1 << 0) , GPU_FORMAT_STENCIL = (1 << 1) , GPU_FORMAT_INTEGER = (1 << 2) , GPU_FORMAT_FLOAT = (1 << 3) ,
  GPU_FORMAT_COMPRESSED = (1 << 4) , GPU_FORMAT_DEPTH_STENCIL = (GPU_FORMAT_DEPTH | GPU_FORMAT_STENCIL)
}
 
enum  eGPUTextureType {
  GPU_TEXTURE_1D = (1 << 0) , GPU_TEXTURE_2D = (1 << 1) , GPU_TEXTURE_3D = (1 << 2) , GPU_TEXTURE_CUBE = (1 << 3) ,
  GPU_TEXTURE_ARRAY = (1 << 4) , GPU_TEXTURE_BUFFER = (1 << 5) , GPU_TEXTURE_1D_ARRAY = (GPU_TEXTURE_1D | GPU_TEXTURE_ARRAY) , GPU_TEXTURE_2D_ARRAY = (GPU_TEXTURE_2D | GPU_TEXTURE_ARRAY) ,
  GPU_TEXTURE_CUBE_ARRAY = (GPU_TEXTURE_CUBE | GPU_TEXTURE_ARRAY)
}
 

Functions

static GPUContextwrap (Context *ctx)
 
static Contextunwrap (GPUContext *ctx)
 
static const Contextunwrap (const GPUContext *ctx)
 
static GPUDrawListwrap (DrawList *vert)
 
static DrawListunwrap (GPUDrawList *vert)
 
static const DrawListunwrap (const GPUDrawList *vert)
 
static GPUFrameBufferwrap (FrameBuffer *vert)
 
static FrameBufferunwrap (GPUFrameBuffer *vert)
 
static const FrameBufferunwrap (const GPUFrameBuffer *vert)
 
static size_t to_bytesize (GPUIndexBufType type)
 
static GPUIndexBufwrap (IndexBuf *indexbuf)
 
static IndexBufunwrap (GPUIndexBuf *indexbuf)
 
static int indices_per_primitive (GPUPrimType prim_type)
 
static void sort_input_list (MutableSpan< ShaderInput > dst)
 
static GPUShaderwrap (Shader *vert)
 
static Shaderunwrap (GPUShader *vert)
 
static const Shaderunwrap (const GPUShader *vert)
 
 BLI_STATIC_ASSERT (sizeof(GPUState)==sizeof(uint64_t), "GPUState is too big.")
 
bool operator== (const GPUState &a, const GPUState &b)
 
bool operator!= (const GPUState &a, const GPUState &b)
 
GPUState operator^ (const GPUState &a, const GPUState &b)
 
GPUState operator~ (const GPUState &a)
 
 BLI_STATIC_ASSERT (sizeof(GPUStateMutable)==sizeof(GPUStateMutable::data), "GPUStateMutable is too big.")
 
bool operator== (const GPUStateMutable &a, const GPUStateMutable &b)
 
bool operator!= (const GPUStateMutable &a, const GPUStateMutable &b)
 
GPUStateMutable operator^ (const GPUStateMutable &a, const GPUStateMutable &b)
 
GPUStateMutable operator~ (const GPUStateMutable &a)
 
static GPUTexturewrap (Texture *vert)
 
static Textureunwrap (GPUTexture *vert)
 
static const Textureunwrap (const GPUTexture *vert)
 
size_t to_bytesize (eGPUTextureFormat format)
 
size_t to_block_size (eGPUTextureFormat data_type)
 
eGPUTextureFormatFlag to_format_flag (eGPUTextureFormat format)
 
int to_component_len (eGPUTextureFormat format)
 
size_t to_bytesize (eGPUDataFormat data_format)
 
size_t to_bytesize (eGPUTextureFormat tex_format, eGPUDataFormat data_format)
 
bool validate_data_format (eGPUTextureFormat tex_format, eGPUDataFormat data_format)
 
eGPUDataFormat to_data_format (eGPUTextureFormat tex_format)
 
eGPUFrameBufferBits to_framebuffer_bits (eGPUTextureFormat tex_format)
 
static eGPUTextureFormat to_texture_format (const GPUVertFormat *format)
 
static GPUUniformBufwrap (UniformBuf *vert)
 
static UniformBufunwrap (GPUUniformBuf *vert)
 
static const UniformBufunwrap (const GPUUniformBuf *vert)
 
static GPUVertBufwrap (VertBuf *vert)
 
static VertBufunwrap (GPUVertBuf *vert)
 
static const VertBufunwrap (const GPUVertBuf *vert)
 
 DEBUG_FUNC_OVERRIDE (glClear, GLbitfield, mask)
 
 DEBUG_FUNC_OVERRIDE (glDeleteTextures, GLsizei, n, const GLuint *, textures)
 
 DEBUG_FUNC_OVERRIDE (glDrawArrays, GLenum, mode, GLint, first, GLsizei, count)
 
 DEBUG_FUNC_OVERRIDE (glFinish, void)
 
 DEBUG_FUNC_OVERRIDE (glFlush, void)
 
 DEBUG_FUNC_OVERRIDE (glGenTextures, GLsizei, n, GLuint *, textures)
 
 DEBUG_FUNC_OVERRIDE (glGetTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels)
 
 DEBUG_FUNC_OVERRIDE (glReadBuffer, GLenum, mode)
 
 DEBUG_FUNC_OVERRIDE (glReadPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, void *, pixels)
 
 DEBUG_FUNC_OVERRIDE (glTexImage1D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels)
 
 DEBUG_FUNC_OVERRIDE (glTexImage2D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels)
 
 DEBUG_FUNC_OVERRIDE (glTexParameteri, GLenum, target, GLenum, pname, GLint, param)
 
 DEBUG_FUNC_OVERRIDE (glTexParameteriv, GLenum, target, GLenum, pname, const GLint *, params)
 
 DEBUG_FUNC_OVERRIDE (glTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels)
 
 DEBUG_FUNC_OVERRIDE (glTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels)
 
static GLenum to_gl (GPUIndexBufType type)
 
static GLenum to_gl (GPUPrimType prim_type)
 
static GLenum to_gl (GPUQueryType type)
 
static GLbitfield to_gl (eGPUBarrier barrier_bits)
 
GLenum to_gl_internal_format (eGPUTextureFormat format)
 
GLenum to_gl_target (eGPUTextureType type)
 
GLenum to_gl_proxy (eGPUTextureType type)
 
GLenum swizzle_to_gl (const char swizzle)
 
GLenum to_gl (eGPUDataFormat format)
 
GLenum to_gl_data_format (eGPUTextureFormat format)
 
GLenum channel_len_to_gl (int channel_len)
 
static GLenum to_gl (GPUUsageType type)
 
static GLenum to_gl (GPUVertCompType type)
 
Platform
static bool match_renderer (StringRef renderer, const Vector< std::string > &items)
 
Capabilities
static bool detect_mip_render_workaround ()
 
static void detect_workarounds ()
 
Enums Conversion
static GLenum to_gl (const GPUAttachmentType type)
 
static GLbitfield to_gl (const eGPUFrameBufferBits bits)
 
Binding assignment

To mimic vulkan, we assign binding at shader creation to avoid shader recompilation. In the future, we should set it in the shader using layout(binding = i) and query its value.

static int block_binding (int32_t program, uint32_t block_index)
 
static int sampler_binding (int32_t program, uint32_t uniform_index, int32_t uniform_location, int *sampler_len)
 
static int image_binding (int32_t program, uint32_t uniform_index, int32_t uniform_location, int *image_len)
 
Vertex Array Bindings
static uint16_t vbo_bind (const ShaderInterface *interface, const GPUVertFormat *format, uint v_first, uint v_len, const bool use_instancing)
 

Variables

GPUCapabilities GCaps
 
GPUPlatformGlobal GPG
 

Typedef Documentation

◆ DebugStack

Definition at line 33 of file gpu_debug_private.hh.

◆ eGPUTextureFormatFlag

◆ eGPUTextureType

◆ GPUQueryType

◆ ShaderInput

Enumeration Type Documentation

◆ eGPUTextureFormatFlag

Enumerator
GPU_FORMAT_DEPTH 
GPU_FORMAT_STENCIL 
GPU_FORMAT_INTEGER 
GPU_FORMAT_FLOAT 
GPU_FORMAT_COMPRESSED 
GPU_FORMAT_DEPTH_STENCIL 

Definition at line 35 of file gpu_texture_private.hh.

◆ eGPUTextureType

Enumerator
GPU_TEXTURE_1D 
GPU_TEXTURE_2D 
GPU_TEXTURE_3D 
GPU_TEXTURE_CUBE 
GPU_TEXTURE_ARRAY 
GPU_TEXTURE_BUFFER 
GPU_TEXTURE_1D_ARRAY 
GPU_TEXTURE_2D_ARRAY 
GPU_TEXTURE_CUBE_ARRAY 

Definition at line 47 of file gpu_texture_private.hh.

◆ GPUIndexBufType

Enumerator
GPU_INDEX_U16 
GPU_INDEX_U32 

Definition at line 34 of file gpu_index_buffer_private.hh.

◆ GPUQueryType

Enumerator
GPU_QUERY_OCCLUSION 

Definition at line 30 of file gpu_query.hh.

Function Documentation

◆ BLI_STATIC_ASSERT() [1/2]

blender::gpu::BLI_STATIC_ASSERT ( sizeof(GPUState = =sizeof(uint64_t),
"GPUState is too big."   
)

◆ BLI_STATIC_ASSERT() [2/2]

blender::gpu::BLI_STATIC_ASSERT ( sizeof(GPUStateMutable = =sizeof(GPUStateMutable::data),
"GPUStateMutable is too big."   
)

◆ block_binding()

static int blender::gpu::block_binding ( int32_t  program,
uint32_t  block_index 
)
inlinestatic

◆ channel_len_to_gl()

GLenum blender::gpu::channel_len_to_gl ( int  channel_len)
inline

Definition at line 370 of file gl_texture.hh.

References BLI_assert.

Referenced by blender::gpu::GLFrameBuffer::read().

◆ DEBUG_FUNC_OVERRIDE() [1/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glClear  ,
GLbitfield  ,
mask   
)

◆ DEBUG_FUNC_OVERRIDE() [2/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glDeleteTextures  ,
GLsizei  ,
,
const GLuint *  ,
textures   
)

◆ DEBUG_FUNC_OVERRIDE() [3/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glDrawArrays  ,
GLenum  ,
mode  ,
GLint  ,
first  ,
GLsizei  ,
count   
)

◆ DEBUG_FUNC_OVERRIDE() [4/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glFinish  ,
void   
)

◆ DEBUG_FUNC_OVERRIDE() [5/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glFlush  ,
void   
)

◆ DEBUG_FUNC_OVERRIDE() [6/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glGenTextures  ,
GLsizei  ,
,
GLuint *  ,
textures   
)

◆ DEBUG_FUNC_OVERRIDE() [7/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glGetTexImage  ,
GLenum  ,
target  ,
GLint  ,
level  ,
GLenum  ,
format  ,
GLenum  ,
type  ,
void *  ,
pixels   
)

◆ DEBUG_FUNC_OVERRIDE() [8/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glReadBuffer  ,
GLenum  ,
mode   
)

◆ DEBUG_FUNC_OVERRIDE() [9/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glReadPixels  ,
GLint  ,
x  ,
GLint  ,
y  ,
GLsizei  ,
width  ,
GLsizei  ,
height  ,
GLenum  ,
format  ,
GLenum  ,
type  ,
void *  ,
pixels   
)

◆ DEBUG_FUNC_OVERRIDE() [10/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glTexImage1D  ,
GLenum  ,
target  ,
GLint  ,
level  ,
GLint  ,
internalformat  ,
GLsizei  ,
width  ,
GLint  ,
border  ,
GLenum  ,
format  ,
GLenum  ,
type  ,
const void *  ,
pixels   
)

◆ DEBUG_FUNC_OVERRIDE() [11/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glTexImage2D  ,
GLenum  ,
target  ,
GLint  ,
level  ,
GLint  ,
internalformat  ,
GLsizei  ,
width  ,
GLsizei  ,
height  ,
GLint  ,
border  ,
GLenum  ,
format  ,
GLenum  ,
type  ,
const void *  ,
pixels   
)

◆ DEBUG_FUNC_OVERRIDE() [12/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glTexParameteri  ,
GLenum  ,
target  ,
GLenum  ,
pname  ,
GLint  ,
param   
)

◆ DEBUG_FUNC_OVERRIDE() [13/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glTexParameteriv  ,
GLenum  ,
target  ,
GLenum  ,
pname  ,
const GLint *  ,
params   
)

◆ DEBUG_FUNC_OVERRIDE() [14/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glTexSubImage1D  ,
GLenum  ,
target  ,
GLint  ,
level  ,
GLint  ,
xoffset  ,
GLsizei  ,
width  ,
GLenum  ,
format  ,
GLenum  ,
type  ,
const void *  ,
pixels   
)

◆ DEBUG_FUNC_OVERRIDE() [15/15]

blender::gpu::DEBUG_FUNC_OVERRIDE ( glTexSubImage2D  ,
GLenum  ,
target  ,
GLint  ,
level  ,
GLint  ,
xoffset  ,
GLint  ,
yoffset  ,
GLsizei  ,
width  ,
GLsizei  ,
height  ,
GLenum  ,
format  ,
GLenum  ,
type  ,
const void *  ,
pixels   
)

◆ detect_mip_render_workaround()

static bool blender::gpu::detect_mip_render_workaround ( )
static

◆ detect_workarounds()

static void blender::gpu::detect_workarounds ( )
static

Definition at line 218 of file gl_backend.cc.

References blender::gpu::GLContext::base_instance_support, blender::gpu::GPUCapabilities::broken_amd_driver, blender::gpu::GLContext::clear_texture_support, blender::gpu::GLContext::copy_image_support, blender::gpu::GLContext::debug_layer_support, blender::gpu::GLContext::debug_layer_workaround, blender::gpu::GPUCapabilities::depth_blitting_workaround, blender::gpu::GLContext::derivative_signs, detect_mip_render_workaround(), blender::gpu::GLContext::direct_state_access_support, blender::gpu::GLContext::fixed_restart_index_support, G, G_DEBUG_GPU_FORCE_WORKAROUNDS, GCaps, blender::gpu::GLContext::generate_mipmap_workaround, GPU_DEVICE_ATI, GPU_DEVICE_INTEL, GPU_DEVICE_NVIDIA, GPU_DRIVER_ANY, GPU_DRIVER_OFFICIAL, GPU_DRIVER_OPENSOURCE, GPU_OS_ANY, GPU_OS_MAC, GPU_OS_UNIX, GPU_OS_WIN, GPU_type_matches(), match_renderer(), blender::gpu::GPUCapabilities::mip_render_workaround, blender::gpu::GLContext::multi_bind_support, blender::gpu::GLContext::multi_draw_indirect_support, blender::gpu::GLContext::shader_draw_parameters_support, blender::gpu::GPUCapabilities::shader_image_load_store_support, blender::gpu::GLContext::texture_cube_map_array_support, blender::gpu::GLContext::texture_filter_anisotropic_support, blender::gpu::GLContext::texture_gather_support, blender::gpu::GLContext::unused_fb_slot_workaround, blender::gpu::GPUCapabilities::use_hq_normals_workaround, blender::gpu::GPUCapabilities::use_main_context_workaround, and blender::gpu::GLContext::vertex_attrib_binding_support.

◆ image_binding()

static int blender::gpu::image_binding ( int32_t  program,
uint32_t  uniform_index,
int32_t  uniform_location,
int *  image_len 
)
inlinestatic

◆ indices_per_primitive()

static int blender::gpu::indices_per_primitive ( GPUPrimType  prim_type)
inlinestatic

◆ match_renderer()

static bool blender::gpu::match_renderer ( StringRef  renderer,
const Vector< std::string > &  items 
)
static

◆ operator!=() [1/2]

bool blender::gpu::operator!= ( const GPUState a,
const GPUState b 
)
inline

Definition at line 76 of file gpu_state_private.hh.

References Freestyle::a.

◆ operator!=() [2/2]

bool blender::gpu::operator!= ( const GPUStateMutable a,
const GPUStateMutable b 
)
inline

Definition at line 125 of file gpu_state_private.hh.

References Freestyle::a.

◆ operator==() [1/2]

bool blender::gpu::operator== ( const GPUState a,
const GPUState b 
)
inline

Definition at line 71 of file gpu_state_private.hh.

References Freestyle::a, and blender::gpu::GPUState::data.

◆ operator==() [2/2]

bool blender::gpu::operator== ( const GPUStateMutable a,
const GPUStateMutable b 
)
inline

Definition at line 120 of file gpu_state_private.hh.

References Freestyle::a.

◆ operator^() [1/2]

GPUState blender::gpu::operator^ ( const GPUState a,
const GPUState b 
)
inline

Definition at line 81 of file gpu_state_private.hh.

References Freestyle::a, blender::gpu::GPUState::data, and r.

◆ operator^() [2/2]

GPUStateMutable blender::gpu::operator^ ( const GPUStateMutable a,
const GPUStateMutable b 
)
inline

Definition at line 130 of file gpu_state_private.hh.

References Freestyle::a, ARRAY_SIZE, blender::gpu::GPUStateMutable::data, and r.

◆ operator~() [1/2]

GPUState blender::gpu::operator~ ( const GPUState a)
inline

Definition at line 88 of file gpu_state_private.hh.

References Freestyle::a, and r.

◆ operator~() [2/2]

GPUStateMutable blender::gpu::operator~ ( const GPUStateMutable a)
inline

Definition at line 139 of file gpu_state_private.hh.

References Freestyle::a, ARRAY_SIZE, and r.

◆ sampler_binding()

static int blender::gpu::sampler_binding ( int32_t  program,
uint32_t  uniform_index,
int32_t  uniform_location,
int *  sampler_len 
)
inlinestatic

◆ sort_input_list()

static void blender::gpu::sort_input_list ( MutableSpan< ShaderInput dst)
static

◆ swizzle_to_gl()

GLenum blender::gpu::swizzle_to_gl ( const char  swizzle)
inline

Definition at line 251 of file gl_texture.hh.

Referenced by blender::gpu::GLTexture::swizzle_set().

◆ to_block_size()

size_t blender::gpu::to_block_size ( eGPUTextureFormat  data_type)
inline

◆ to_bytesize() [1/4]

size_t blender::gpu::to_bytesize ( eGPUDataFormat  data_format)
inline

◆ to_bytesize() [2/4]

size_t blender::gpu::to_bytesize ( eGPUTextureFormat  format)
inline

◆ to_bytesize() [3/4]

size_t blender::gpu::to_bytesize ( eGPUTextureFormat  tex_format,
eGPUDataFormat  data_format 
)
inline

Definition at line 408 of file gpu_texture_private.hh.

References to_bytesize(), and to_component_len().

◆ to_bytesize() [4/4]

static size_t blender::gpu::to_bytesize ( GPUIndexBufType  type)
inlinestatic

◆ to_component_len()

int blender::gpu::to_component_len ( eGPUTextureFormat  format)
inline

◆ to_data_format()

eGPUDataFormat blender::gpu::to_data_format ( eGPUTextureFormat  tex_format)
inline

◆ to_format_flag()

eGPUTextureFormatFlag blender::gpu::to_format_flag ( eGPUTextureFormat  format)
inline

◆ to_framebuffer_bits()

eGPUFrameBufferBits blender::gpu::to_framebuffer_bits ( eGPUTextureFormat  tex_format)
inline

◆ to_gl() [1/9]

static GLbitfield blender::gpu::to_gl ( const eGPUFrameBufferBits  bits)
inlinestatic

Definition at line 145 of file gl_framebuffer.hh.

References GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_STENCIL_BIT, and mask().

◆ to_gl() [2/9]

static GLenum blender::gpu::to_gl ( const GPUAttachmentType  type)
inlinestatic

◆ to_gl() [3/9]

static GLbitfield blender::gpu::to_gl ( eGPUBarrier  barrier_bits)
inlinestatic

Definition at line 115 of file gl_state.hh.

References GPU_BARRIER_SHADER_IMAGE_ACCESS, and GPU_BARRIER_TEXTURE_FETCH.

◆ to_gl() [4/9]

GLenum blender::gpu::to_gl ( eGPUDataFormat  format)
inline

◆ to_gl() [5/9]

static GLenum blender::gpu::to_gl ( GPUIndexBufType  type)
inlinestatic

Definition at line 63 of file gl_index_buffer.hh.

References GPU_INDEX_U32, and type.

◆ to_gl() [6/9]

static GLenum blender::gpu::to_gl ( GPUPrimType  prim_type)
inlinestatic

◆ to_gl() [7/9]

static GLenum blender::gpu::to_gl ( GPUQueryType  type)
inlinestatic

Definition at line 59 of file gl_query.hh.

References BLI_assert, GPU_QUERY_OCCLUSION, and type.

◆ to_gl() [8/9]

static GLenum blender::gpu::to_gl ( GPUUsageType  type)
inlinestatic

Definition at line 60 of file gl_vertex_buffer.hh.

References BLI_assert, GPU_USAGE_DYNAMIC, GPU_USAGE_STATIC, GPU_USAGE_STREAM, and type.

◆ to_gl() [9/9]

static GLenum blender::gpu::to_gl ( GPUVertCompType  type)
inlinestatic

◆ to_gl_data_format()

GLenum blender::gpu::to_gl_data_format ( eGPUTextureFormat  format)
inline

◆ to_gl_internal_format()

GLenum blender::gpu::to_gl_internal_format ( eGPUTextureFormat  format)
inline

◆ to_gl_proxy()

GLenum blender::gpu::to_gl_proxy ( eGPUTextureType  type)
inline

◆ to_gl_target()

GLenum blender::gpu::to_gl_target ( eGPUTextureType  type)
inline

◆ to_texture_format()

static eGPUTextureFormat blender::gpu::to_texture_format ( const GPUVertFormat format)
inlinestatic

◆ unwrap() [1/15]

static const Context* blender::gpu::unwrap ( const GPUContext ctx)
inlinestatic

Definition at line 105 of file gpu_context_private.hh.

◆ unwrap() [2/15]

static const DrawList* blender::gpu::unwrap ( const GPUDrawList vert)
inlinestatic

Definition at line 54 of file gpu_drawlist_private.hh.

◆ unwrap() [3/15]

static const FrameBuffer* blender::gpu::unwrap ( const GPUFrameBuffer vert)
inlinestatic

Definition at line 217 of file gpu_framebuffer_private.hh.

◆ unwrap() [4/15]

static const Shader* blender::gpu::unwrap ( const GPUShader vert)
inlinestatic

Definition at line 88 of file gpu_shader_private.hh.

◆ unwrap() [5/15]

static const Texture* blender::gpu::unwrap ( const GPUTexture vert)
inlinestatic

Definition at line 257 of file gpu_texture_private.hh.

◆ unwrap() [6/15]

static const UniformBuf* blender::gpu::unwrap ( const GPUUniformBuf vert)
inlinestatic

Definition at line 77 of file gpu_uniform_buffer_private.hh.

◆ unwrap() [7/15]

static const VertBuf* blender::gpu::unwrap ( const GPUVertBuf vert)
inlinestatic

Definition at line 117 of file gpu_vertex_buffer_private.hh.

◆ unwrap() [8/15]

static Context* blender::gpu::unwrap ( GPUContext ctx)
inlinestatic

Definition at line 101 of file gpu_context_private.hh.

Referenced by blender::gpu::Batch::elem_(), blender::gpu::GLBatch::elem_(), GPU_context_active_set(), GPU_context_discard(), GPU_draw_list_append(), GPU_draw_list_discard(), GPU_draw_list_submit(), GPU_framebuffer_bind(), GPU_framebuffer_bind_no_srgb(), GPU_framebuffer_blit(), GPU_framebuffer_check_valid(), GPU_framebuffer_clear(), GPU_framebuffer_config_array(), GPU_framebuffer_free(), GPU_framebuffer_multi_clear(), GPU_framebuffer_read_color(), GPU_framebuffer_read_depth(), GPU_framebuffer_recursive_downsample(), GPU_framebuffer_texture_attach_ex(), GPU_framebuffer_texture_detach(), GPU_framebuffer_viewport_get(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_indexbuf_build_in_place(), GPU_indexbuf_create_subrange_in_place(), GPU_indexbuf_discard(), GPU_indexbuf_is_init(), GPU_offscreen_bind(), GPU_offscreen_draw_to_screen(), GPU_shader_bind(), GPU_shader_free(), GPU_shader_get_program(), GPU_shader_transform_feedback_disable(), GPU_shader_transform_feedback_enable(), GPU_shader_uniform_vector(), GPU_shader_uniform_vector_int(), GPU_texture_image_bind(), GPU_texture_image_unbind(), GPU_uniformbuf_bind(), GPU_uniformbuf_free(), GPU_uniformbuf_unbind(), GPU_uniformbuf_update(), GPU_vertbuf_attr_fill(), GPU_vertbuf_attr_fill_stride(), GPU_vertbuf_attr_get_raw_data(), GPU_vertbuf_attr_set(), GPU_vertbuf_clear(), GPU_vertbuf_create_with_format_ex(), GPU_vertbuf_data_alloc(), GPU_vertbuf_data_len_set(), GPU_vertbuf_data_resize(), GPU_vertbuf_discard(), GPU_vertbuf_duplicate(), GPU_vertbuf_get_data(), GPU_vertbuf_get_format(), GPU_vertbuf_get_status(), GPU_vertbuf_get_vertex_alloc(), GPU_vertbuf_get_vertex_len(), GPU_vertbuf_handle_ref_add(), GPU_vertbuf_handle_ref_remove(), GPU_vertbuf_init_with_format_ex(), GPU_vertbuf_steal_data(), GPU_vertbuf_update_sub(), GPU_vertbuf_use(), GPU_vertbuf_vert_set(), blender::gpu::GLTexture::init_internal(), blender::gpu::Batch::inst_(), blender::gpu::GLBatch::inst_(), blender::gpu::GLShader::transform_feedback_enable(), blender::gpu::GLVertArray::update_bindings(), blender::gpu::Batch::verts_(), and blender::gpu::GLBatch::verts_().

◆ unwrap() [9/15]

static DrawList* blender::gpu::unwrap ( GPUDrawList vert)
inlinestatic

Definition at line 50 of file gpu_drawlist_private.hh.

◆ unwrap() [10/15]

static FrameBuffer* blender::gpu::unwrap ( GPUFrameBuffer vert)
inlinestatic

Definition at line 213 of file gpu_framebuffer_private.hh.

◆ unwrap() [11/15]

static IndexBuf* blender::gpu::unwrap ( GPUIndexBuf indexbuf)
inlinestatic

Definition at line 104 of file gpu_index_buffer_private.hh.

◆ unwrap() [12/15]

static Shader* blender::gpu::unwrap ( GPUShader vert)
inlinestatic

Definition at line 84 of file gpu_shader_private.hh.

◆ unwrap() [13/15]

static Texture* blender::gpu::unwrap ( GPUTexture vert)
inlinestatic

Definition at line 253 of file gpu_texture_private.hh.

◆ unwrap() [14/15]

static UniformBuf* blender::gpu::unwrap ( GPUUniformBuf vert)
inlinestatic

Definition at line 73 of file gpu_uniform_buffer_private.hh.

◆ unwrap() [15/15]

static VertBuf* blender::gpu::unwrap ( GPUVertBuf vert)
inlinestatic

Definition at line 113 of file gpu_vertex_buffer_private.hh.

◆ validate_data_format()

bool blender::gpu::validate_data_format ( eGPUTextureFormat  tex_format,
eGPUDataFormat  data_format 
)
inline

◆ vbo_bind()

static uint16_t blender::gpu::vbo_bind ( const ShaderInterface interface,
const GPUVertFormat format,
uint  v_first,
uint  v_len,
const bool  use_instancing 
)
static

◆ wrap() [1/8]

static GPUContext* blender::gpu::wrap ( Context ctx)
inlinestatic

◆ wrap() [2/8]

static GPUDrawList* blender::gpu::wrap ( DrawList vert)
inlinestatic

Definition at line 46 of file gpu_drawlist_private.hh.

◆ wrap() [3/8]

static GPUFrameBuffer* blender::gpu::wrap ( FrameBuffer vert)
inlinestatic

Definition at line 209 of file gpu_framebuffer_private.hh.

◆ wrap() [4/8]

static GPUIndexBuf* blender::gpu::wrap ( IndexBuf indexbuf)
inlinestatic

Definition at line 100 of file gpu_index_buffer_private.hh.

◆ wrap() [5/8]

static GPUShader* blender::gpu::wrap ( Shader vert)
inlinestatic

Definition at line 80 of file gpu_shader_private.hh.

◆ wrap() [6/8]

static GPUTexture* blender::gpu::wrap ( Texture vert)
inlinestatic

Definition at line 249 of file gpu_texture_private.hh.

◆ wrap() [7/8]

static GPUUniformBuf* blender::gpu::wrap ( UniformBuf vert)
inlinestatic

Definition at line 69 of file gpu_uniform_buffer_private.hh.

◆ wrap() [8/8]

static GPUVertBuf* blender::gpu::wrap ( VertBuf vert)
inlinestatic

Definition at line 109 of file gpu_vertex_buffer_private.hh.

Variable Documentation

◆ GCaps

GPUCapabilities blender::gpu::GCaps

◆ GPG

GPUPlatformGlobal blender::gpu::GPG