Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions | Variables
draw_manager.h File Reference
#include "DRW_engine.h"
#include "DRW_render.h"
#include "BLI_assert.h"
#include "BLI_linklist.h"
#include "BLI_memblock.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "GPU_batch.h"
#include "GPU_context.h"
#include "GPU_drawlist.h"
#include "GPU_framebuffer.h"
#include "GPU_shader.h"
#include "GPU_uniform_buffer.h"
#include "GPU_viewport.h"
#include "draw_instance_data.h"
#include "draw_shader_shared.h"
#include "PIL_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  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  DRWDebugLine
 
struct  DRWDebugSphere
 
struct  DRWData
 
struct  DupliKey
 
struct  DRWManager
 

Macros

#define USE_GPU_SELECT
 
#define USE_BATCHING   1
 
#define DRW_DEBUG_USE_UNIFORM_NAME   0
 
#define DRW_UNIFORM_BUFFER_NAME   64
 
#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)
 
#define DRW_RESOURCE_CHUNK_LEN   512
 
#define DRW_MAX_DRAW_CMD_TYPE   DRW_CMD_DRAW_PROCEDURAL
 
#define MAX_PASS_NAME   32
 
#define MAX_CULLED_VIEWS   32
 
#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
 

Typedefs

typedef struct DRWRegisteredDrawEngine DRWRegisteredDrawEngine
 
typedef struct DRWCullingState DRWCullingState
 
typedef uint32_t DRWResourceHandle
 
typedef struct DRWObjectMatrix DRWObjectMatrix
 
typedef struct DRWObjectInfos DRWObjectInfos
 
typedef struct DRWCommandDraw DRWCommandDraw
 
typedef struct DRWCommandDrawRange DRWCommandDrawRange
 
typedef struct DRWCommandDrawInstance DRWCommandDrawInstance
 
typedef struct DRWCommandDrawInstanceRange DRWCommandDrawInstanceRange
 
typedef struct DRWCommandCompute DRWCommandCompute
 
typedef struct DRWCommandComputeRef DRWCommandComputeRef
 
typedef struct DRWCommandComputeIndirect DRWCommandComputeIndirect
 
typedef struct DRWCommandBarrier DRWCommandBarrier
 
typedef struct DRWCommandDrawProcedural DRWCommandDrawProcedural
 
typedef struct DRWCommandSetMutableState DRWCommandSetMutableState
 
typedef struct DRWCommandSetStencil DRWCommandSetStencil
 
typedef struct DRWCommandSetSelectID DRWCommandSetSelectID
 
typedef struct DRWCommandClear DRWCommandClear
 
typedef union DRWCommand DRWCommand
 
typedef struct DRWUniformChunk DRWUniformChunk
 
typedef struct DRWCommandChunk DRWCommandChunk
 
typedef struct DRWCommandSmallChunk DRWCommandSmallChunk
 
typedef struct DRWDebugLine DRWDebugLine
 
typedef struct DRWDebugSphere DRWDebugSphere
 
typedef struct DRWData DRWData
 
typedef struct DupliKey DupliKey
 
typedef struct DRWManager DRWManager
 

Enumerations

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_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_RESOURCE_CHUNK , DRW_UNIFORM_RESOURCE_ID , DRW_UNIFORM_BASE_INSTANCE , DRW_UNIFORM_MODEL_MATRIX ,
  DRW_UNIFORM_MODEL_MATRIX_INVERSE
}
 

Functions

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 voidDRW_memblock_elem_from_handle (struct BLI_memblock *memblock, const DRWResourceHandle *handle)
 
void drw_texture_set_parameters (GPUTexture *tex, DRWTextureFlag flags)
 
voiddrw_viewport_engine_data_ensure (void *engine_type)
 
void drw_state_set (DRWState state)
 
void drw_debug_draw (void)
 
void drw_debug_init (void)
 
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 (struct 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)
 
GPUBatchdrw_cache_procedural_points_get (void)
 
GPUBatchdrw_cache_procedural_lines_get (void)
 
GPUBatchdrw_cache_procedural_triangles_get (void)
 
void drw_uniform_attrs_pool_update (struct GHash *table, struct GPUUniformAttrList *key, DRWResourceHandle *handle, struct Object *ob, struct Object *dupli_parent, struct DupliObject *dupli_source)
 
doubledrw_engine_data_cache_time_get (GPUViewport *viewport)
 
voiddrw_engine_data_engine_data_create (GPUViewport *viewport, void *engine_type)
 
voiddrw_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)
 

Variables

DRWManager DST
 

Macro Definition Documentation

◆ DRW_DEBUG_USE_UNIFORM_NAME

#define DRW_DEBUG_USE_UNIFORM_NAME   0

Definition at line 46 of file draw_manager.h.

◆ DRW_DRAWLIST_LEN

#define DRW_DRAWLIST_LEN   256

Definition at line 557 of file draw_manager.h.

◆ DRW_MAX_DRAW_CMD_TYPE

#define DRW_MAX_DRAW_CMD_TYPE   DRW_CMD_DRAW_PROCEDURAL

Definition at line 206 of file draw_manager.h.

◆ DRW_RESOURCE_CHUNK_LEN

#define DRW_RESOURCE_CHUNK_LEN   512

Definition at line 116 of file draw_manager.h.

◆ DRW_UNIFORM_BUFFER_NAME

#define DRW_UNIFORM_BUFFER_NAME   64

Definition at line 47 of file draw_manager.h.

◆ DST_MAX_SLOTS

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

Definition at line 554 of file draw_manager.h.

◆ MAX_CLIP_PLANES

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

Definition at line 555 of file draw_manager.h.

◆ MAX_CULLED_VIEWS

#define MAX_CULLED_VIEWS   32

Definition at line 430 of file draw_manager.h.

◆ MAX_PASS_NAME

#define MAX_PASS_NAME   32

Definition at line 409 of file draw_manager.h.

◆ PROFILE_END_ACCUM

#define PROFILE_END_ACCUM (   time_accum,
  time_start 
)
Value:
{ \
time_accum += (PIL_check_seconds_timer() - time_start) * 1e3; \
} \
((void)0)
SyclQueue void void size_t num_bytes void
double PIL_check_seconds_timer(void)
Definition: time.c:64

Definition at line 62 of file draw_manager.h.

◆ PROFILE_END_UPDATE

#define PROFILE_END_UPDATE (   time_update,
  time_start 
)
Value:
{ \
double _time_delta = (PIL_check_seconds_timer() - time_start) * 1e3; \
time_update = (time_update * (1.0 - PROFILE_TIMER_FALLOFF)) + \
(_time_delta * PROFILE_TIMER_FALLOFF); \
} \
((void)0)
#define PROFILE_TIMER_FALLOFF
Definition: draw_manager.h:56

Definition at line 69 of file draw_manager.h.

◆ PROFILE_START

#define PROFILE_START (   time_start)
Value:
double time_start = PIL_check_seconds_timer(); \
((void)0)

Definition at line 58 of file draw_manager.h.

◆ PROFILE_TIMER_FALLOFF

#define PROFILE_TIMER_FALLOFF   0.04

Definition at line 56 of file draw_manager.h.

◆ STENCIL_UNDEFINED

#define STENCIL_UNDEFINED   256

Definition at line 556 of file draw_manager.h.

◆ USE_BATCHING

#define USE_BATCHING   1

Use draw-call batching using instanced rendering.

Definition at line 43 of file draw_manager.h.

◆ USE_GPU_SELECT

#define USE_GPU_SELECT

Use draw manager to call GPU_select, see: DRW_draw_select_loop

Definition at line 40 of file draw_manager.h.

◆ USE_PROFILE

#define USE_PROFILE

Definition at line 51 of file draw_manager.h.

Typedef Documentation

◆ DRWCommand

typedef union DRWCommand DRWCommand

◆ DRWCommandBarrier

◆ DRWCommandChunk

◆ DRWCommandClear

◆ DRWCommandCompute

◆ DRWCommandComputeIndirect

◆ DRWCommandComputeRef

◆ DRWCommandDraw

◆ DRWCommandDrawInstance

◆ DRWCommandDrawInstanceRange

◆ DRWCommandDrawProcedural

◆ DRWCommandDrawRange

◆ DRWCommandSetMutableState

◆ DRWCommandSetSelectID

◆ DRWCommandSetStencil

◆ DRWCommandSmallChunk

◆ DRWCullingState

Data structure containing all drawcalls organized by passes and materials. DRWPass > DRWShadingGroup > DRWCall > DRWCallState > DRWUniform

◆ DRWData

typedef struct DRWData DRWData

◆ DRWDebugLine

typedef struct DRWDebugLine DRWDebugLine

◆ DRWDebugSphere

◆ DRWManager

typedef struct DRWManager DRWManager

◆ DRWObjectInfos

◆ DRWObjectMatrix

◆ DRWRegisteredDrawEngine

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

◆ 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 132 of file draw_manager.h.

◆ DRWUniformChunk

In order to keep a cache friendly data structure, we alloc most of our little data into chunks of multiple item. Iteration, allocation and memory usage are better. We lose a bit of memory by allocating more than what we need but it's counterbalanced by not needing the linked-list pointers for each item.

◆ DupliKey

typedef struct DupliKey DupliKey

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_RESOURCE_CHUNK 
DRW_UNIFORM_RESOURCE_ID 
DRW_UNIFORM_BASE_INSTANCE 

Legacy / Fallback

DRW_UNIFORM_MODEL_MATRIX 
DRW_UNIFORM_MODEL_MATRIX_INVERSE 

Definition at line 308 of file draw_manager.h.

◆ eDRWCommandType

Enumerator
DRW_CMD_DRAW 
DRW_CMD_DRAW_RANGE 
DRW_CMD_DRAW_INSTANCE 
DRW_CMD_DRAW_INSTANCE_RANGE 
DRW_CMD_DRAW_PROCEDURAL 
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 184 of file draw_manager.h.

Function Documentation

◆ command_type_get()

eDRWCommandType command_type_get ( const uint64_t command_type_bits,
int  index 
)

◆ drw_batch_cache_generate_requested()

void drw_batch_cache_generate_requested ( struct Object ob)

◆ 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 3392 of file draw_cache.c.

◆ drw_batch_cache_generate_requested_evaluated_mesh_or_curve()

void drw_batch_cache_generate_requested_evaluated_mesh_or_curve ( Object ob)

◆ drw_batch_cache_validate()

void drw_batch_cache_validate ( Object ob)

Definition at line 3298 of file draw_cache.c.

◆ drw_cache_procedural_lines_get()

GPUBatch* drw_cache_procedural_lines_get ( void  )

◆ drw_cache_procedural_points_get()

GPUBatch* drw_cache_procedural_points_get ( void  )

◆ drw_cache_procedural_triangles_get()

GPUBatch* drw_cache_procedural_triangles_get ( void  )

◆ drw_debug_draw()

void drw_debug_draw ( void  )

Definition at line 187 of file draw_debug.c.

References drw_debug_draw_lines(), and drw_debug_draw_spheres().

Referenced by DRW_draw_callbacks_post_scene().

◆ drw_debug_init()

void drw_debug_init ( void  )

Definition at line 193 of file draw_debug.c.

References DRW_debug_modelmat_reset().

Referenced by DRW_draw_render_loop_2d_ex(), and DRW_draw_render_loop_ex().

◆ 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_handle_chunk_get()

BLI_INLINE uint32_t DRW_handle_chunk_get ( const DRWResourceHandle handle)

◆ DRW_handle_id_get()

BLI_INLINE uint32_t DRW_handle_id_get ( const DRWResourceHandle handle)

◆ 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 154 of file draw_manager.h.

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 134 of file draw_manager.h.

Referenced by draw_call_batching_do(), and draw_call_resource_bind().

◆ DRW_memblock_elem_from_handle()

BLI_INLINE void* DRW_memblock_elem_from_handle ( struct BLI_memblock memblock,
const DRWResourceHandle handle 
)

◆ drw_resource_buffer_finish()

void drw_resource_buffer_finish ( DRWData vmempool)

◆ drw_state_set()

void drw_state_set ( DRWState  state)

Definition at line 67 of file draw_manager_exec.c.

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, state, DRWManager::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()

void drw_texture_set_parameters ( GPUTexture tex,
DRWTextureFlag  flags 
)

◆ drw_uniform_attrs_pool_update()

void drw_uniform_attrs_pool_update ( struct GHash table,
struct GPUUniformAttrList key,
DRWResourceHandle handle,
struct Object ob,
struct Object dupli_parent,
struct DupliObject dupli_source 
)

◆ 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 104 of file draw_manager.c.

Referenced by 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_debug_draw_lines(), drw_debug_draw_spheres(), DRW_debug_line_v3v3(), DRW_debug_sphere(), drw_deferred_shader_add(), drw_deferred_shader_compilation_exec(), DRW_draw_callbacks_post_scene(), DRW_draw_callbacks_pre_scene(), DRW_draw_depth_loop(), 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_fluid_ensure_flags(), DRW_fluid_ensure_range_field(), DRW_notify_view_update(), drw_notify_view_update_offscreen(), DRW_object_get_dupli(), DRW_object_get_dupli_parent(), DRW_object_is_renderable(), DRW_object_resource_id_get(), DRW_opengl_context_activate(), DRW_opengl_context_create(), DRW_opengl_context_destroy(), DRW_opengl_context_disable_ex(), DRW_opengl_context_enable(), DRW_opengl_context_enable_ex(), DRW_opengl_context_release(), DRW_opengl_render_context_disable(), DRW_opengl_render_context_enable(), DRW_pass_create(), DRW_pass_sort_shgroup_z(), 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_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_range(), drw_shgroup_create_ex(), DRW_shgroup_create_sub(), 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_opengl_render(), DRW_state_is_playback(), DRW_state_is_scene_render(), DRW_state_is_select(), DRW_state_lock(), DRW_state_reset_ex(), drw_state_set(), DRW_state_show_text(), drw_state_validate(), DRW_stats_draw(), drw_task_graph_deinit(), drw_task_graph_init(), DRW_text_cache_ensure(), DRW_texture_pool_query_2d(), 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_pixelsize_get(), DRW_viewport_request_redraw(), DRW_viewport_screenvecs_get(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), drw_volume_object_grids_init(), drw_volume_object_mesh_init(), and use_drw_engine().