24struct DRWDebugPrintBuffer;
31# if defined(__cplusplus) && !defined(GPU_SHADER)
50#define DRW_SHADER_SHARED_H
52#define DRW_RESOURCE_CHUNK_LEN 512
55#define DRW_GRID_PER_VOLUME_MAX 16
59#define DRW_ATTRIBUTE_PER_CURVES_MAX 15
65#if !defined(DRW_VIEW_LEN) && !defined(GLSL_CPP_STUBS)
68# define DRW_VIEW_LEN 1
69# define DRW_VIEW_SHIFT 0
70# define DRW_VIEW_FROM_RESOURCE_ID
83# define DRW_VIEW_SHIFT \
84 ((DRW_VIEW_LEN > 32) ? 6 : \
85 (DRW_VIEW_LEN > 16) ? 5 : \
86 (DRW_VIEW_LEN > 8) ? 4 : \
87 (DRW_VIEW_LEN > 4) ? 3 : \
88 (DRW_VIEW_LEN > 2) ? 2 : \
90# define DRW_VIEW_MASK ~(0xFFFFFFFFu << DRW_VIEW_SHIFT)
91# define DRW_VIEW_FROM_RESOURCE_ID drw_view_id = (drw_resource_id_raw() & DRW_VIEW_MASK)
189 return object_infos.light_and_shadow_set_membership & 0xFFu;
206#define _inner_sphere_radius bounding_corners[3].w
210 void sync(
const Object &ob,
float inflate_bounds = 0.0f);
222 return bounds.bounding_sphere.w != -1.0f;
230 return bounds.bounding_sphere.w >= 0.0f;
312#if defined(GPU_SHADER)
315# define _instance_first_array base_index
371 debug_vert.
pos1_x = in_pos1_x;
372 debug_vert.
pos1_y = in_pos1_y;
373 debug_vert.
pos1_z = in_pos1_z;
374 debug_vert.
pos2_x = in_pos2_x;
375 debug_vert.
pos2_y = in_pos2_y;
376 debug_vert.
pos2_z = in_pos2_z;
384 v_color =
clamp(v_color, 0.0f, 1.0f);
394#define DRW_DEBUG_DRAW_VERT_MAX (2 * 1024) - 1
405#define drw_debug_draw_v_count(buf) buf[0].pos1_x
410#define drw_debug_draw_offset 1
#define BLI_STATIC_ASSERT_ALIGN(st, align)
#define ENUM_OPERATORS(_type, _max)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
DRWDebugVertPair debug_line_make(uint in_pos1_x, uint in_pos1_y, uint in_pos1_z, uint in_pos2_x, uint in_pos2_y, uint in_pos2_z, uint in_vert_color, uint in_lifetime)
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)
uint debug_color_pack(float4 v_color)
#define DRW_GRID_PER_VOLUME_MAX
@ OBJECT_ACTIVE_EDIT_MODE
#define DRW_DEBUG_DRAW_VERT_MAX
#define DRW_ATTRIBUTE_PER_CURVES_MAX
constexpr T clamp(T, U, U) RET
VecBase< uint32_t, 4 > uint4
MatBase< float, 4, 4 > float4x4
VecBase< float, 4 > float4
uint half_cylinder_face_count
uint4 is_point_attribute[DRW_ATTRIBUTE_PER_CURVES_MAX]
DRWDebugVertPair verts[DRW_DEBUG_DRAW_VERT_MAX]
uint instance_first_indexed
uint instance_first_array
bool sync(const Scene *scene, const ViewLayer *layer, const GPULayerAttr &attr)
bool sync(const blender::draw::ObjectRef &ref, const GPUUniformAttr &attr)
float4 bounding_corners[4]
float shadow_terminator_normal_offset
uint light_and_shadow_set_membership
float shadow_terminator_geometry_offset
void sync(const Object &object)
FrustumPlanes frustum_planes
FrustumCorners frustum_corners
float4x4 grids_xform[DRW_GRID_PER_VOLUME_MAX]