39struct CurvesUniformBufPool;
52#define DRW_DEBUG_USE_UNIFORM_NAME 0
53#define DRW_UNIFORM_BUFFER_NAME 64
64# define PROFILE_TIMER_FALLOFF 0.04
66# define PROFILE_START(time_start) \
67 double time_start = BLI_time_now_seconds(); \
70# define PROFILE_END_ACCUM(time_accum, time_start) \
72 time_accum += (BLI_time_now_seconds() - time_start) * 1e3; \
77# define PROFILE_END_UPDATE(time_update, time_start) \
79 double _time_delta = (BLI_time_now_seconds() - time_start) * 1e3; \
80 time_update = (time_update * (1.0 - PROFILE_TIMER_FALLOFF)) + \
81 (_time_delta * PROFILE_TIMER_FALLOFF); \
87# define PROFILE_START(time_start) (() 0)
88# define PROFILE_END_ACCUM(time_accum, time_start) (() 0)
89# define PROFILE_END_UPDATE(time_update, time_start) (() 0)
128#define DRW_RESOURCE_CHUNK_LEN 512
148 return (*handle & 0x80000000) != 0;
153 return (*handle & 0x7FFFFFFF) >> 9;
158 return (*handle & 0x000001FF);
168 *handle |= 0x80000000;
219#define DRW_MAX_DRAW_CMD_TYPE DRW_CMD_DRAW_INDIRECT
430#define MAX_PASS_NAME 32
451#define MAX_CULLED_VIEWS 32
591#define DST_MAX_SLOTS 64
592#define MAX_CLIP_PLANES 6
593#define STENCIL_UNDEFINED 256
594#define DRW_DRAWLIST_LEN 256
733 const Object *dupli_parent,
750 int gpumat_array_len,
751 DRW_Attributes *r_attrs,
752 DRW_MeshCDMask *r_cd_needed);
#define BLI_STATIC_ASSERT_ALIGN(st, align)
void * BLI_memblock_elem_get(BLI_memblock *mblk, int chunk, int elem) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Platform independent time functions.
bool DRWCallVisibilityFn(bool vis_in, void *user_data)
struct GPUContext GPUContext
struct GPUShader GPUShader
#define MAX_INSTANCE_DATA_SIZE
BLI_INLINE void * DRW_memblock_elem_from_handle(BLI_memblock *memblock, const DRWResourceHandle *handle)
GPUStorageBuf * drw_debug_gpu_print_buf_get()
void drw_texture_set_parameters(GPUTexture *tex, DRWTextureFlag flags)
void drw_resource_buffer_finish(DRWData *vmempool)
@ DRW_UNIFORM_VERTEX_BUFFER_AS_TEXTURE_REF
@ DRW_UNIFORM_BLOCK_OBINFOS
@ DRW_UNIFORM_TFEEDBACK_TARGET
@ DRW_UNIFORM_TEXTURE_REF
@ DRW_UNIFORM_MODEL_MATRIX
@ DRW_UNIFORM_VERTEX_BUFFER_AS_STORAGE
@ DRW_UNIFORM_MODEL_MATRIX_INVERSE
@ DRW_UNIFORM_VERTEX_BUFFER_AS_STORAGE_REF
@ DRW_UNIFORM_BASE_INSTANCE
@ DRW_UNIFORM_BLOCK_OBMATS
@ DRW_UNIFORM_RESOURCE_ID
@ DRW_UNIFORM_STORAGE_BLOCK_REF
@ DRW_UNIFORM_VERTEX_BUFFER_AS_TEXTURE
@ DRW_UNIFORM_RESOURCE_CHUNK
@ DRW_UNIFORM_BLOCK_OBATTRS
@ DRW_UNIFORM_STORAGE_BLOCK
@ DRW_UNIFORM_BLOCK_VLATTRS
void DRW_manager_end_sync()
BLI_INLINE uint32_t DRW_handle_chunk_get(const DRWResourceHandle *handle)
void drw_batch_cache_generate_requested_evaluated_mesh_or_curve(Object *ob)
eDRWCommandType command_type_get(const uint64_t *command_type_bits, int index)
double * drw_engine_data_cache_time_get(GPUViewport *viewport)
struct DRWRegisteredDrawEngine DRWRegisteredDrawEngine
void * drw_viewport_engine_data_ensure(void *engine_type)
bool drw_engine_data_engines_data_validate(GPUViewport *viewport, void **engine_handle_array)
void drw_state_set(DRWState state)
void drw_debug_module_free(DRWDebugModule *module)
void * drw_engine_data_engine_data_create(GPUViewport *viewport, void *engine_type)
blender::gpu::Batch * drw_cache_procedural_lines_get()
void drw_batch_cache_generate_requested(Object *ob)
blender::gpu::Batch * drw_cache_procedural_triangles_get()
GPUUniformBuf * drw_ensure_layer_attribute_buffer()
@ DRW_CMD_COMPUTE_INDIRECT
@ DRW_CMD_DRAW_INSTANCE_RANGE
@ DRW_CMD_DRAW_PROCEDURAL
void drw_batch_cache_validate(Object *ob)
BLI_INLINE uint32_t DRW_handle_negative_scale_get(const DRWResourceHandle *handle)
blender::gpu::Batch * drw_cache_procedural_triangle_strips_get()
void drw_batch_cache_generate_requested_delayed(Object *ob)
BLI_INLINE void DRW_handle_increment(DRWResourceHandle *handle)
BLI_INLINE uint32_t DRW_handle_id_get(const DRWResourceHandle *handle)
GPUStorageBuf * drw_debug_gpu_draw_buf_get()
void drw_engine_data_cache_release(GPUViewport *viewport)
blender::gpu::Batch * drw_cache_procedural_points_get()
uint32_t DRWResourceHandle
BLI_INLINE void DRW_handle_negative_scale_enable(DRWResourceHandle *handle)
void * drw_engine_data_engine_data_get(GPUViewport *viewport, void *engine_handle)
void drw_engine_data_free(GPUViewport *viewport)
void drw_uniform_attrs_pool_update(GHash *table, const GPUUniformAttrList *key, DRWResourceHandle *handle, const Object *ob, const Object *dupli_parent, const DupliObject *dupli_source)
void DRW_manager_begin_sync()
void 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)
static struct PyModuleDef module
unsigned __int64 uint64_t
blender::gpu::VertBuf * buf
blender::gpu::VertBuf * buf_select
eGPUFrameBufferBits clear_channels
GPUStorageBuf * indirect_buf
blender::gpu::Batch * batch
GPUStorageBuf * indirect_buf
blender::gpu::Batch * batch
blender::gpu::Batch * batch
blender::gpu::Batch * batch
blender::gpu::Batch * batch
blender::gpu::Batch * batch
blender::gpu::VertBuf * select_buf
GPUUniformBuf ** obinfos_ubo
BLI_memblock * cullstates
GHash * vlattrs_name_cache
DRWInstanceDataList * idatalist
ListBase vlattrs_name_list
GPUUniformBuf * vlattrs_ubo
BLI_memblock * callbuffers
DRWTexturePool * texture_pool
BLI_memblock * commands_small
LayerAttribute * vlattrs_buf
blender::draw::CurvesUniformBufPool * curves_ubos
GPUUniformBuf ** matrices_ubo
DRWViewData * view_data[2]
DRWResourceHandle ob_handle
DRWResourceHandle pass_handle
GSet * delayed_extraction
bool buffer_finish_called
DRWResourceHandle resource_handle
DRWTextStore ** text_store_p
GPUContext * blender_gpu_context
DupliObject * dupli_source
DRWInstanceData * object_instance_data[MAX_INSTANCE_DATA_SIZE]
GPUFrameBuffer * default_framebuffer
bool ob_state_obinfo_init
struct DRWManager::@295 options
TicketMutex * system_gpu_context_mutex
blender::gpu::Batch * batch
void * system_gpu_context
DRWViewData * view_data_active
struct DRWPass::@294 shgroups
DrawEngineType * draw_engine
struct DRWCommandChunk * first
const struct GPUUniformAttrList * uniform_attrs
DRWResourceHandle pass_handle
struct DRWShadingGroup::@288 cmd
struct DRWCommandChunk * last
DRWUniformChunk * uniforms
DRWCallVisibilityFn * visibility_fn
BoundSphere frustum_bsphere
float frustum_planes[6][4]
DRWCommandComputeIndirect compute_indirect
DRWCommandSetStencil stencil
DRWCommandComputeRef compute_ref
DRWCommandDrawInstance instance
DRWCommandDrawRange range
DRWCommandSetMutableState state
DRWCommandCompute compute
DRWCommandBarrier barrier
DRWCommandDrawInstanceRange instance_range
DRWCommandDrawIndirect draw_indirect
DRWCommandDrawProcedural procedural
DRWCommandSetSelectID select_id