Blender V4.3
draw_manager_c.hh File Reference
#include "DRW_engine.hh"
#include "DRW_render.hh"
#include "BLI_assert.h"
#include "BLI_linklist.h"
#include "BLI_memblock.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "GPU_batch.hh"
#include "GPU_context.hh"
#include "GPU_drawlist.hh"
#include "GPU_framebuffer.hh"
#include "GPU_shader.hh"
#include "GPU_uniform_buffer.hh"
#include "GPU_viewport.hh"
#include "draw_instance_data.hh"
#include "draw_shader_shared.hh"
#include "BLI_time.h"

Go to the source code of this file.

Classes

struct  DRWRegisteredDrawEngine
 
struct  DRWCullingState
 
struct  DRWObjectMatrix
 
struct  DRWObjectInfos
 
struct  DRWCommandDraw
 
struct  DRWCommandDrawRange
 
struct  DRWCommandDrawInstance
 
struct  DRWCommandDrawInstanceRange
 
struct  DRWCommandDrawIndirect
 
struct  DRWCommandCompute
 
struct  DRWCommandComputeRef
 
struct  DRWCommandComputeIndirect
 
struct  DRWCommandBarrier
 
struct  DRWCommandDrawProcedural
 
struct  DRWCommandSetMutableState
 
struct  DRWCommandSetStencil
 
struct  DRWCommandSetSelectID
 
struct  DRWCommandClear
 
union  DRWCommand
 
struct  DRWCallBuffer
 
struct  DRWUniform
 
struct  DRWShadingGroup
 
struct  DRWPass
 
struct  DRWView
 
struct  DRWUniformChunk
 
struct  DRWCommandChunk
 
struct  DRWCommandSmallChunk
 
struct  DRWData
 
struct  DupliKey
 
struct  DRWManager
 

Namespaces

namespace  blender
 
namespace  blender::draw
 

Macros

#define USE_GPU_SELECT
 
#define USE_BATCHING   1
 
#define DRW_DEBUG_USE_UNIFORM_NAME   0
 
#define DRW_UNIFORM_BUFFER_NAME   64
 
Profiling
#define USE_PROFILE
 
#define PROFILE_TIMER_FALLOFF   0.04
 
#define PROFILE_START(time_start)
 
#define PROFILE_END_ACCUM(time_accum, time_start)
 
#define PROFILE_END_UPDATE(time_update, time_start)
 

Functions

Functions
void drw_texture_set_parameters (GPUTexture *tex, DRWTextureFlag flags)
 
void * drw_viewport_engine_data_ensure (void *engine_type)
 
void drw_state_set (DRWState state)
 
void drw_debug_draw ()
 
void drw_debug_init ()
 
void drw_debug_module_free (DRWDebugModule *module)
 
GPUStorageBuf * drw_debug_gpu_draw_buf_get ()
 
GPUStorageBuf * drw_debug_gpu_print_buf_get ()
 
eDRWCommandType command_type_get (const uint64_t *command_type_bits, int index)
 
void drw_batch_cache_validate (Object *ob)
 
void drw_batch_cache_generate_requested (Object *ob)
 
void drw_batch_cache_generate_requested_delayed (Object *ob)
 
void drw_batch_cache_generate_requested_evaluated_mesh_or_curve (Object *ob)
 
void drw_resource_buffer_finish (DRWData *vmempool)
 
blender::gpu::Batch * drw_cache_procedural_points_get ()
 
blender::gpu::Batch * drw_cache_procedural_lines_get ()
 
blender::gpu::Batch * drw_cache_procedural_triangles_get ()
 
blender::gpu::Batch * drw_cache_procedural_triangle_strips_get ()
 
void drw_uniform_attrs_pool_update (GHash *table, const GPUUniformAttrList *key, DRWResourceHandle *handle, const Object *ob, const Object *dupli_parent, const DupliObject *dupli_source)
 
GPUUniformBuf * drw_ensure_layer_attribute_buffer ()
 
doubledrw_engine_data_cache_time_get (GPUViewport *viewport)
 
void * drw_engine_data_engine_data_create (GPUViewport *viewport, void *engine_type)
 
void * drw_engine_data_engine_data_get (GPUViewport *viewport, void *engine_handle)
 
bool drw_engine_data_engines_data_validate (GPUViewport *viewport, void **engine_handle_array)
 
void drw_engine_data_cache_release (GPUViewport *viewport)
 
void drw_engine_data_free (GPUViewport *viewport)
 
void DRW_manager_begin_sync ()
 
void DRW_manager_end_sync ()
 
Public API
void blender::draw::DRW_mesh_get_attributes (const Object &object, const Mesh &mesh, const GPUMaterial *const *gpumat_array, int gpumat_array_len, DRW_Attributes *r_attrs, DRW_MeshCDMask *r_cd_needed)
 

Data Structure

Data structure to for registered draw engines that can store draw manager specific data.

#define DRW_RESOURCE_CHUNK_LEN   512
 
#define DRW_MAX_DRAW_CMD_TYPE   DRW_CMD_DRAW_INDIRECT
 
#define MAX_PASS_NAME   32
 
#define MAX_CULLED_VIEWS   32
 
enum  eDRWCommandType {
  DRW_CMD_DRAW = 0 , DRW_CMD_DRAW_RANGE = 1 , DRW_CMD_DRAW_INSTANCE = 2 , DRW_CMD_DRAW_INSTANCE_RANGE = 3 ,
  DRW_CMD_DRAW_PROCEDURAL = 4 , DRW_CMD_DRAW_INDIRECT = 5 , DRW_CMD_COMPUTE = 8 , DRW_CMD_COMPUTE_REF = 9 ,
  DRW_CMD_COMPUTE_INDIRECT = 10 , DRW_CMD_BARRIER = 11 , DRW_CMD_CLEAR = 12 , DRW_CMD_DRWSTATE = 13 ,
  DRW_CMD_STENCIL = 14 , DRW_CMD_SELECTID = 15
}
 
enum  DRWUniformType {
  DRW_UNIFORM_INT = 0 , DRW_UNIFORM_INT_COPY , DRW_UNIFORM_FLOAT , DRW_UNIFORM_FLOAT_COPY ,
  DRW_UNIFORM_TEXTURE , DRW_UNIFORM_TEXTURE_REF , DRW_UNIFORM_IMAGE , DRW_UNIFORM_IMAGE_REF ,
  DRW_UNIFORM_BLOCK , DRW_UNIFORM_BLOCK_REF , DRW_UNIFORM_STORAGE_BLOCK , DRW_UNIFORM_STORAGE_BLOCK_REF ,
  DRW_UNIFORM_TFEEDBACK_TARGET , DRW_UNIFORM_VERTEX_BUFFER_AS_TEXTURE , DRW_UNIFORM_VERTEX_BUFFER_AS_TEXTURE_REF , DRW_UNIFORM_VERTEX_BUFFER_AS_STORAGE ,
  DRW_UNIFORM_VERTEX_BUFFER_AS_STORAGE_REF , DRW_UNIFORM_BLOCK_OBMATS , DRW_UNIFORM_BLOCK_OBINFOS , DRW_UNIFORM_BLOCK_OBATTRS ,
  DRW_UNIFORM_BLOCK_VLATTRS , DRW_UNIFORM_RESOURCE_CHUNK , DRW_UNIFORM_RESOURCE_ID , DRW_UNIFORM_BASE_INSTANCE ,
  DRW_UNIFORM_MODEL_MATRIX , DRW_UNIFORM_MODEL_MATRIX_INVERSE
}
 
typedef struct DRWRegisteredDrawEngine DRWRegisteredDrawEngine
 
typedef uint32_t DRWResourceHandle
 
BLI_INLINE uint32_t DRW_handle_negative_scale_get (const DRWResourceHandle *handle)
 
BLI_INLINE uint32_t DRW_handle_chunk_get (const DRWResourceHandle *handle)
 
BLI_INLINE uint32_t DRW_handle_id_get (const DRWResourceHandle *handle)
 
BLI_INLINE void DRW_handle_increment (DRWResourceHandle *handle)
 
BLI_INLINE void DRW_handle_negative_scale_enable (DRWResourceHandle *handle)
 
BLI_INLINE void * DRW_memblock_elem_from_handle (BLI_memblock *memblock, const DRWResourceHandle *handle)
 
 BLI_STATIC_ASSERT_ALIGN (DRWView, 16)
 

Draw Manager

#define DST_MAX_SLOTS   64 /* Cannot be changed without modifying RST.bound_tex_slots */
 
#define MAX_CLIP_PLANES   6 /* GL_MAX_CLIP_PLANES is at least 6 */
 
#define STENCIL_UNDEFINED   256
 
#define DRW_DRAWLIST_LEN   256
 
DRWManager DST
 

Macro Definition Documentation

◆ DRW_DEBUG_USE_UNIFORM_NAME

#define DRW_DEBUG_USE_UNIFORM_NAME   0

Definition at line 52 of file draw_manager_c.hh.

◆ DRW_DRAWLIST_LEN

#define DRW_DRAWLIST_LEN   256

Definition at line 594 of file draw_manager_c.hh.

Referenced by drw_manager_init().

◆ DRW_MAX_DRAW_CMD_TYPE

#define DRW_MAX_DRAW_CMD_TYPE   DRW_CMD_DRAW_INDIRECT

Definition at line 219 of file draw_manager_c.hh.

Referenced by DRW_shgroup_is_empty().

◆ DRW_RESOURCE_CHUNK_LEN

◆ DRW_UNIFORM_BUFFER_NAME

#define DRW_UNIFORM_BUFFER_NAME   64

Definition at line 53 of file draw_manager_c.hh.

◆ DST_MAX_SLOTS

#define DST_MAX_SLOTS   64 /* Cannot be changed without modifying RST.bound_tex_slots */

Definition at line 591 of file draw_manager_c.hh.

◆ MAX_CLIP_PLANES

#define MAX_CLIP_PLANES   6 /* GL_MAX_CLIP_PLANES is at least 6 */

Definition at line 592 of file draw_manager_c.hh.

Referenced by DRW_view_clip_planes_set().

◆ MAX_CULLED_VIEWS

#define MAX_CULLED_VIEWS   32

Definition at line 451 of file draw_manager_c.hh.

Referenced by DRW_view_create(), and DRW_view_update().

◆ MAX_PASS_NAME

#define MAX_PASS_NAME   32

Definition at line 430 of file draw_manager_c.hh.

◆ PROFILE_END_ACCUM

#define PROFILE_END_ACCUM ( time_accum,
time_start )
Value:
{ \
time_accum += (BLI_time_now_seconds() - time_start) * 1e3; \
} \
((void)0)
double BLI_time_now_seconds(void)
Definition time.c:65

Definition at line 70 of file draw_manager_c.hh.

◆ PROFILE_END_UPDATE

#define PROFILE_END_UPDATE ( time_update,
time_start )
Value:
{ \
double _time_delta = (BLI_time_now_seconds() - time_start) * 1e3; \
time_update = (time_update * (1.0 - PROFILE_TIMER_FALLOFF)) + \
(_time_delta * PROFILE_TIMER_FALLOFF); \
} \
((void)0)
#define PROFILE_TIMER_FALLOFF

Definition at line 77 of file draw_manager_c.hh.

Referenced by DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), drw_engines_draw_scene(), drw_engines_draw_text(), and drw_engines_init().

◆ PROFILE_START

#define PROFILE_START ( time_start)

◆ PROFILE_TIMER_FALLOFF

#define PROFILE_TIMER_FALLOFF   0.04

Definition at line 64 of file draw_manager_c.hh.

◆ STENCIL_UNDEFINED

#define STENCIL_UNDEFINED   256

Definition at line 593 of file draw_manager_c.hh.

◆ USE_BATCHING

#define USE_BATCHING   1

Use draw-call batching using instanced rendering.

Definition at line 49 of file draw_manager_c.hh.

Referenced by draw_shgroup().

◆ USE_GPU_SELECT

#define USE_GPU_SELECT

Use draw manager to call GPU_select, see: DRW_draw_select_loop

Definition at line 46 of file draw_manager_c.hh.

◆ USE_PROFILE

#define USE_PROFILE

Definition at line 59 of file draw_manager_c.hh.

Typedef Documentation

◆ DRWRegisteredDrawEngine

typedef struct DRWRegisteredDrawEngine DRWRegisteredDrawEngine

◆ DRWResourceHandle

Identifier used to sort similar drawcalls together. Also used to reference elements inside memory blocks.

From MSB to LSB 1 bit for negative scale. 22 bits for chunk id. 9 bits for resource id inside the chunk. (can go up to 511) |-|-------------------—|------—|

Use manual bit-shift and mask instead of bit-fields to avoid compiler dependent behavior that would mess the ordering of the members thus changing the sorting order.

Definition at line 144 of file draw_manager_c.hh.

Enumeration Type Documentation

◆ DRWUniformType

Used by DRWUniform.type

Enumerator
DRW_UNIFORM_INT 
DRW_UNIFORM_INT_COPY 
DRW_UNIFORM_FLOAT 
DRW_UNIFORM_FLOAT_COPY 
DRW_UNIFORM_TEXTURE 
DRW_UNIFORM_TEXTURE_REF 
DRW_UNIFORM_IMAGE 
DRW_UNIFORM_IMAGE_REF 
DRW_UNIFORM_BLOCK 
DRW_UNIFORM_BLOCK_REF 
DRW_UNIFORM_STORAGE_BLOCK 
DRW_UNIFORM_STORAGE_BLOCK_REF 
DRW_UNIFORM_TFEEDBACK_TARGET 
DRW_UNIFORM_VERTEX_BUFFER_AS_TEXTURE 
DRW_UNIFORM_VERTEX_BUFFER_AS_TEXTURE_REF 
DRW_UNIFORM_VERTEX_BUFFER_AS_STORAGE 
DRW_UNIFORM_VERTEX_BUFFER_AS_STORAGE_REF 
DRW_UNIFORM_BLOCK_OBMATS 

Per drawcall uniforms/UBO

DRW_UNIFORM_BLOCK_OBINFOS 
DRW_UNIFORM_BLOCK_OBATTRS 
DRW_UNIFORM_BLOCK_VLATTRS 
DRW_UNIFORM_RESOURCE_CHUNK 
DRW_UNIFORM_RESOURCE_ID 
DRW_UNIFORM_BASE_INSTANCE 

Legacy / Fallback

DRW_UNIFORM_MODEL_MATRIX 
DRW_UNIFORM_MODEL_MATRIX_INVERSE 

Definition at line 328 of file draw_manager_c.hh.

◆ eDRWCommandType

Enumerator
DRW_CMD_DRAW 
DRW_CMD_DRAW_RANGE 
DRW_CMD_DRAW_INSTANCE 
DRW_CMD_DRAW_INSTANCE_RANGE 
DRW_CMD_DRAW_PROCEDURAL 
DRW_CMD_DRAW_INDIRECT 
DRW_CMD_COMPUTE 
DRW_CMD_COMPUTE_REF 
DRW_CMD_COMPUTE_INDIRECT 
DRW_CMD_BARRIER 
DRW_CMD_CLEAR 
DRW_CMD_DRWSTATE 
DRW_CMD_STENCIL 
DRW_CMD_SELECTID 

Definition at line 196 of file draw_manager_c.hh.

Function Documentation

◆ BLI_STATIC_ASSERT_ALIGN()

BLI_STATIC_ASSERT_ALIGN ( DRWView ,
16  )

◆ command_type_get()

eDRWCommandType command_type_get ( const uint64_t * command_type_bits,
int index )

◆ drw_batch_cache_generate_requested()

◆ drw_batch_cache_generate_requested_delayed()

void drw_batch_cache_generate_requested_delayed ( Object * ob)
Warning
Only evaluated mesh data is handled by this delayed generation.

Definition at line 3419 of file draw_cache.cc.

References BLI_gset_add(), DRWManager::delayed_extraction, and DST.

Referenced by drw_shgroup_bone_custom_mesh_wire(), drw_shgroup_bone_custom_solid_mesh(), drw_shgroup_custom_bone_curve(), and blender::draw::overlay::MeshUVs::edit_object_sync().

◆ drw_batch_cache_generate_requested_evaluated_mesh_or_curve()

◆ drw_batch_cache_validate()

◆ drw_cache_procedural_lines_get()

◆ drw_cache_procedural_points_get()

◆ drw_cache_procedural_triangle_strips_get()

◆ drw_cache_procedural_triangles_get()

◆ drw_debug_draw()

void drw_debug_draw ( )

Definition at line 612 of file draw_debug.cc.

References DRWManager::debug, and DST.

Referenced by DRW_draw_callbacks_post_scene().

◆ drw_debug_gpu_draw_buf_get()

GPUStorageBuf * drw_debug_gpu_draw_buf_get ( )

Definition at line 645 of file draw_debug.cc.

References DRWManager::debug, and DST.

Referenced by blender::draw::Manager::debug_bind().

◆ drw_debug_gpu_print_buf_get()

GPUStorageBuf * drw_debug_gpu_print_buf_get ( )

Definition at line 650 of file draw_debug.cc.

References DRWManager::debug, and DST.

Referenced by blender::draw::Manager::debug_bind().

◆ drw_debug_init()

void drw_debug_init ( )

Definition at line 623 of file draw_debug.cc.

References DRWManager::debug, DST, and init().

Referenced by DRW_draw_render_loop_2d_ex(), and DRW_draw_render_loop_ex().

◆ drw_debug_module_free()

void drw_debug_module_free ( DRWDebugModule * module)

Definition at line 638 of file draw_debug.cc.

References module.

Referenced by DRW_engines_free().

◆ drw_engine_data_cache_release()

void drw_engine_data_cache_release ( GPUViewport * viewport)

◆ drw_engine_data_cache_time_get()

double * drw_engine_data_cache_time_get ( GPUViewport * viewport)

◆ drw_engine_data_engine_data_create()

void * drw_engine_data_engine_data_create ( GPUViewport * viewport,
void * engine_type )

◆ drw_engine_data_engine_data_get()

void * drw_engine_data_engine_data_get ( GPUViewport * viewport,
void * engine_handle )

◆ drw_engine_data_engines_data_validate()

bool drw_engine_data_engines_data_validate ( GPUViewport * viewport,
void ** engine_handle_array )

◆ drw_engine_data_free()

void drw_engine_data_free ( GPUViewport * viewport)

◆ drw_ensure_layer_attribute_buffer()

◆ DRW_handle_chunk_get()

◆ DRW_handle_id_get()

◆ DRW_handle_increment()

BLI_INLINE void DRW_handle_increment ( DRWResourceHandle * handle)

◆ DRW_handle_negative_scale_enable()

BLI_INLINE void DRW_handle_negative_scale_enable ( DRWResourceHandle * handle)

Definition at line 166 of file draw_manager_c.hh.

Referenced by drw_resource_handle_new().

◆ DRW_handle_negative_scale_get()

BLI_INLINE uint32_t DRW_handle_negative_scale_get ( const DRWResourceHandle * handle)

Definition at line 146 of file draw_manager_c.hh.

Referenced by draw_call_batching_do(), and draw_call_resource_bind().

◆ DRW_manager_begin_sync()

void DRW_manager_begin_sync ( )

Definition at line 292 of file draw_view_data.cc.

References DST, DRWViewData::manager, and DRWManager::view_data_active.

Referenced by drw_engines_cache_init().

◆ DRW_manager_end_sync()

void DRW_manager_end_sync ( )

Definition at line 300 of file draw_view_data.cc.

References DST, DRWViewData::manager, and DRWManager::view_data_active.

Referenced by drw_engines_cache_finish().

◆ DRW_memblock_elem_from_handle()

◆ drw_resource_buffer_finish()

◆ drw_state_set()

void drw_state_set ( DRWState state)

Definition at line 68 of file draw_manager_exec.cc.

References blend, DRWView::clip_planes_len, DRW_STATE_BLEND_ADD, DRW_STATE_BLEND_ADD_FULL, DRW_STATE_BLEND_ALPHA, DRW_STATE_BLEND_ALPHA_PREMUL, DRW_STATE_BLEND_ALPHA_UNDER_PREMUL, DRW_STATE_BLEND_BACKGROUND, DRW_STATE_BLEND_CUSTOM, DRW_STATE_BLEND_ENABLED, DRW_STATE_BLEND_MUL, DRW_STATE_BLEND_OIT, DRW_STATE_BLEND_SUB, DRW_STATE_CLIP_PLANES, DRW_STATE_CULL_BACK, DRW_STATE_CULL_FRONT, DRW_STATE_DEPTH_ALWAYS, DRW_STATE_DEPTH_EQUAL, DRW_STATE_DEPTH_GREATER, DRW_STATE_DEPTH_GREATER_EQUAL, DRW_STATE_DEPTH_LESS, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_DEPTH_TEST_ENABLED, DRW_STATE_FIRST_VERTEX_CONVENTION, DRW_STATE_IN_FRONT_SELECT, DRW_STATE_LOGIC_INVERT, DRW_STATE_PROGRAM_POINT_SIZE, DRW_STATE_SHADOW_OFFSET, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_STENCIL_EQUAL, DRW_STATE_STENCIL_NEQUAL, DRW_STATE_STENCIL_TEST_ENABLED, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, DRW_STATE_WRITE_STENCIL_ENABLED, DRW_STATE_WRITE_STENCIL_SHADOW_FAIL, DRW_STATE_WRITE_STENCIL_SHADOW_PASS, DST, GPU_BLEND_ADDITIVE, GPU_BLEND_ADDITIVE_PREMULT, GPU_BLEND_ALPHA, GPU_BLEND_ALPHA_PREMULT, GPU_BLEND_ALPHA_UNDER_PREMUL, GPU_BLEND_BACKGROUND, GPU_BLEND_CUSTOM, GPU_BLEND_INVERT, GPU_BLEND_MULTIPLY, GPU_BLEND_NONE, GPU_BLEND_OIT, GPU_BLEND_SUBTRACT, GPU_clip_distances(), GPU_CULL_BACK, GPU_CULL_FRONT, GPU_CULL_NONE, GPU_DEPTH_ALWAYS, GPU_DEPTH_EQUAL, GPU_DEPTH_GREATER, GPU_DEPTH_GREATER_EQUAL, GPU_DEPTH_LESS, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_range(), GPU_program_point_size(), GPU_provoking_vertex(), GPU_shadow_offset(), GPU_state_set(), GPU_STENCIL_ALWAYS, GPU_STENCIL_EQUAL, GPU_STENCIL_NEQUAL, GPU_STENCIL_NONE, GPU_STENCIL_OP_COUNT_DEPTH_FAIL, GPU_STENCIL_OP_COUNT_DEPTH_PASS, GPU_STENCIL_OP_NONE, GPU_STENCIL_OP_REPLACE, GPU_stencil_write_mask_set(), GPU_VERTEX_FIRST, GPU_VERTEX_LAST, GPU_WRITE_COLOR, GPU_WRITE_DEPTH, GPU_WRITE_STENCIL, DRWManager::state, state, DRWManager::state_lock, and DRWManager::view_active.

Referenced by draw_shgroup(), drw_draw_pass_ex(), DRW_state_reset_ex(), and DRW_transform_none().

◆ drw_texture_set_parameters()

◆ drw_uniform_attrs_pool_update()

◆ drw_viewport_engine_data_ensure()

void * drw_viewport_engine_data_ensure ( void * engine_type)

Variable Documentation

◆ DST

DRWManager DST
extern

Render State: No persistent data between draw calls.

Definition at line 111 of file draw_manager_c.cc.

Referenced by blender::draw::TextureFromPool::acquire(), blender::draw::Manager::begin_sync(), blender::draw::curves_sub_pass_setup_implementation(), blender::draw::Manager::debug_bind(), draw_call_batching_finish(), draw_call_batching_flush(), draw_call_is_culled(), draw_call_resource_bind(), draw_compute_culling(), draw_geometry_bind(), draw_geometry_execute(), draw_indirect_call(), draw_legacy_matrix_update(), draw_shgroup(), draw_unit_state_create(), draw_update_uniforms(), drw_batch_cache_generate_requested(), drw_batch_cache_generate_requested_delayed(), drw_batch_cache_generate_requested_evaluated_mesh_or_curve(), DRW_buffer_add_entry_array(), DRW_buffer_add_entry_struct(), DRW_cache_restart(), drw_call_obinfos_init(), drw_command_create(), DRW_context_state_get(), drw_context_state_init(), DRW_culling_box_test(), DRW_culling_frustum_corners_get(), DRW_culling_frustum_planes_get(), DRW_culling_min_max_test(), DRW_culling_plane_test(), DRW_culling_sphere_test(), DRW_custom_pipeline(), DRW_custom_pipeline_begin(), DRW_custom_pipeline_end(), DRW_debug_bbox(), drw_debug_draw(), DRW_debug_get(), drw_debug_gpu_draw_buf_get(), drw_debug_gpu_print_buf_get(), drw_debug_init(), DRW_debug_line_v3v3(), DRW_debug_m4(), DRW_debug_m4_as_bbox(), DRW_debug_modelmat(), DRW_debug_modelmat_reset(), DRW_debug_polygon_v3(), DRW_debug_sphere(), DRW_draw_callbacks_post_scene(), DRW_draw_callbacks_pre_scene(), DRW_draw_depth_loop(), DRW_draw_in_progress(), drw_draw_pass_ex(), DRW_draw_region_engine_info(), DRW_draw_render_loop(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_render_loop_offscreen(), DRW_draw_select_id(), DRW_draw_select_loop(), drw_draw_show_annotation(), DRW_draw_view(), DRW_drawdata_ensure(), drw_duplidata_free(), DRW_duplidata_get(), drw_duplidata_load(), drw_engines_cache_finish(), drw_engines_cache_init(), drw_engines_cache_populate(), drw_engines_data_validate(), drw_engines_disable(), drw_engines_draw_scene(), drw_engines_draw_text(), drw_engines_enable(), drw_engines_enable_editors(), DRW_engines_free(), drw_engines_init(), drw_engines_world_update(), drw_ensure_layer_attribute_buffer(), DRW_fluid_ensure_flags(), DRW_fluid_ensure_range_field(), DRW_gpu_context_activate(), DRW_gpu_context_create(), DRW_gpu_context_destroy(), DRW_gpu_context_disable_ex(), DRW_gpu_context_enable(), DRW_gpu_context_enable_ex(), DRW_gpu_context_release(), DRW_is_viewport_compositor_enabled(), DRW_manager_begin_sync(), DRW_manager_end_sync(), DRW_manager_get(), DRW_notify_view_update(), drw_notify_view_update_offscreen(), DRW_object_get_dupli(), DRW_object_get_dupli_parent(), DRW_object_is_renderable(), DRW_object_ref_get(), DRW_object_resource_id_get(), DRW_pass_create(), DRW_pass_sort_shgroup_z(), drw_register_shader_vlattrs(), DRW_render_context_enable(), DRW_render_gpencil(), DRW_render_gpencil_to_image(), DRW_render_instance_buffer_finish(), DRW_render_object_iter(), DRW_render_set_time(), DRW_render_to_image(), DRW_render_viewport_size_set(), drw_resource_buffer_finish(), drw_resource_handle(), drw_resource_handle_new(), DRW_select_load_id(), DRW_shader_from_material(), DRW_shader_from_world(), DRW_shader_init(), DRW_shgroup_call_buffer(), DRW_shgroup_call_buffer_instance(), DRW_shgroup_call_ex(), DRW_shgroup_call_instance_range(), DRW_shgroup_call_instances(), DRW_shgroup_call_instances_with_attrs(), drw_shgroup_call_procedural_add_ex(), DRW_shgroup_call_procedural_indirect(), DRW_shgroup_call_range(), drw_shgroup_create_ex(), DRW_shgroup_create_sub(), blender::draw::DRW_shgroup_curves_create_sub(), drw_shgroup_material_texture(), drw_shgroup_uniform_create_ex(), DRW_smoke_ensure(), DRW_smoke_ensure_coba_field(), DRW_smoke_ensure_velocity(), DRW_state_draw_background(), DRW_state_draw_support(), DRW_state_is_depth(), DRW_state_is_fbo(), DRW_state_is_image_render(), DRW_state_is_material_select(), DRW_state_is_navigating(), DRW_state_is_painting(), DRW_state_is_playback(), DRW_state_is_scene_render(), DRW_state_is_select(), DRW_state_is_viewport_image_render(), DRW_state_lock(), DRW_state_reset_ex(), drw_state_set(), DRW_state_show_text(), drw_state_validate(), DRW_stats_draw(), DRW_system_gpu_render_context_disable(), DRW_system_gpu_render_context_enable(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_text_cache_ensure(), DRW_texture_pool_query_2d_ex(), drw_update_view(), DRW_view_create(), DRW_view_create_sub(), DRW_view_default_get(), DRW_view_default_set(), DRW_view_far_distance_get(), DRW_view_get_active(), DRW_view_is_persp_get(), DRW_view_layer_engine_data_ensure(), DRW_view_layer_engine_data_get(), DRW_view_near_distance_get(), DRW_view_persmat_get(), DRW_view_reset(), DRW_view_set_active(), DRW_view_update(), DRW_view_viewmat_get(), DRW_view_winmat_get(), DRW_viewport_framebuffer_list_get(), DRW_viewport_invert_size_get(), DRW_viewport_pass_texture_get(), DRW_viewport_pixelsize_get(), DRW_viewport_request_redraw(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), drw_volume_object_grids_init(), blender::draw::drw_volume_object_mesh_init(), drw_volume_object_mesh_init(), blender::draw::command::StateSet::execute(), blender::draw::TextureFromPool::release(), blender::draw::Manager::submit(), blender::draw::TextureFromPool::swap(), use_drw_engine(), and blender::draw::volume_object_grids_init().