30# if defined(__cplusplus) && !defined(GPU_SHADER)
47#define DRW_SHADER_SHARED_H
49#define DRW_RESOURCE_CHUNK_LEN 512
52#define DRW_GRID_PER_VOLUME_MAX 16
56#define DRW_ATTRIBUTE_PER_CURVES_MAX 15
65# define DRW_VIEW_LEN 1
66# define DRW_VIEW_SHIFT 0
67# define DRW_VIEW_FROM_RESOURCE_ID
80# define DRW_VIEW_SHIFT \
81 ((DRW_VIEW_LEN > 32) ? 6 : \
82 (DRW_VIEW_LEN > 16) ? 5 : \
83 (DRW_VIEW_LEN > 8) ? 4 : \
84 (DRW_VIEW_LEN > 4) ? 3 : \
85 (DRW_VIEW_LEN > 2) ? 2 : \
87# define DRW_VIEW_MASK ~(0xFFFFFFFFu << DRW_VIEW_SHIFT)
88# define DRW_VIEW_FROM_RESOURCE_ID drw_view_id = (uint(drw_ResourceID) & DRW_VIEW_MASK)
125#ifdef USE_GPU_SHADER_CREATE_INFO
127# define ViewMatrix drw_view.viewmat
128# define ViewMatrixInverse drw_view.viewinv
129# define ProjectionMatrix drw_view.winmat
130# define ProjectionMatrixInverse drw_view.wininv
143#if !defined(GPU_SHADER) && defined(__cplusplus)
144 void sync(
const Object &
object);
145 void sync(
const float4x4 &model_matrix);
162#if defined(GPU_SHADER) && !defined(DRAW_FINALIZE_SHADER)
164 float4 orco_mul_bias[2];
182#if !defined(GPU_SHADER) && defined(__cplusplus)
191#if defined(GPU_SHADER) && !defined(DRAW_FINALIZE_SHADER)
192 return floatBitsToUint(object_infos.infos.y) & 0xFFu;
194 return object_infos.light_and_shadow_set_membership & 0xFFu;
200#if defined(GPU_SHADER) && !defined(DRAW_FINALIZE_SHADER)
201 return (floatBitsToUint(object_infos.infos.y) >> 8u) & 0xFFu;
216#define _inner_sphere_radius bounding_corners[3].w
218#if !defined(GPU_SHADER) && defined(__cplusplus)
220 void sync(
const Object &ob,
float inflate_bounds = 0.0f);
232 return bounds.bounding_sphere.w != -1.0f;
240 return bounds.bounding_sphere.w >= 0.0f;
276#if !defined(GPU_SHADER) && defined(__cplusplus)
296#if !defined(GPU_SHADER) && defined(__cplusplus)
314#if defined(GPU_SHADER)
317# define _instance_first_array base_index
347#define DRW_DEBUG_PRINT_MAX (8 * 1024) - 4
349#define DRW_DEBUG_PRINT_WORD_WRAP_COLUMN 120u
361#define drw_debug_print_cursor drw_debug_print_buf[0]
364#define drw_debug_print_row_shared drw_debug_print_buf[3]
369#define drw_debug_print_offset 8
391 debug_vert.
pos0 = in_pos0;
392 debug_vert.
pos1 = in_pos1;
393 debug_vert.
pos2 = in_pos2;
399#define DRW_DEBUG_DRAW_VERT_MAX (64 * 8192) - 1
410#define drw_debug_draw_v_count drw_debug_verts_buf[0].pos0
415#define drw_debug_draw_offset 2
#define BLI_STATIC_ASSERT_ALIGN(st, align)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
DRWDebugVert debug_vert_make(uint in_pos0, uint in_pos1, uint in_pos2, uint in_vert_color)
bool drw_bounds_corners_are_valid(ObjectBounds bounds)
bool drw_bounds_are_valid(ObjectBounds bounds)
uint blocker_shadow_set_get(ObjectInfos object_infos)
uint receiver_light_set_get(ObjectInfos object_infos)
#define DRW_GRID_PER_VOLUME_MAX
#define DRW_DEBUG_PRINT_MAX
#define DRW_DEBUG_DRAW_VERT_MAX
#define DRW_ATTRIBUTE_PER_CURVES_MAX
DRWDebugVert verts[DRW_DEBUG_DRAW_VERT_MAX]
uint char_array[DRW_DEBUG_PRINT_MAX]
uint instance_first_indexed
uint instance_first_array
float4 bounding_corners[4]
uint light_and_shadow_set_membership
FrustumPlanes frustum_planes
FrustumCorners frustum_corners
float4x4 grids_xform[DRW_GRID_PER_VOLUME_MAX]