Blender  V3.3
Classes | Functions | Variables
draw_common.h File Reference
#include "draw_common_shader_shared.h"

Go to the source code of this file.

Classes

struct  DRW_Global
 

Functions

void DRW_globals_update (void)
 
void DRW_globals_free (void)
 
struct DRWViewDRW_view_create_with_zoffset (const struct DRWView *parent_view, const struct RegionView3D *rv3d, float offset)
 
int DRW_object_wire_theme_get (struct Object *ob, struct ViewLayer *view_layer, float **r_color)
 
floatDRW_color_background_blend_get (int theme_id)
 
bool DRW_object_is_flat (struct Object *ob, int *r_axis)
 
bool DRW_object_axis_orthogonal_to_view (struct Object *ob, int axis)
 
struct DRWShadingGroupDRW_shgroup_hair_create_sub (struct Object *object, struct ParticleSystem *psys, struct ModifierData *md, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
 
struct GPUVertBufDRW_hair_pos_buffer_get (struct Object *object, struct ParticleSystem *psys, struct ModifierData *md)
 
void DRW_hair_duplimat_get (struct Object *object, struct ParticleSystem *psys, struct ModifierData *md, float(*dupli_mat)[4])
 
void DRW_hair_init (void)
 
void DRW_hair_update (void)
 
void DRW_hair_free (void)
 
struct GPUVertBufDRW_curves_pos_buffer_get (struct Object *object)
 
struct DRWShadingGroupDRW_shgroup_curves_create_sub (struct Object *object, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
 
void DRW_curves_init (struct DRWData *drw_data)
 
void DRW_curves_ubos_pool_free (struct CurvesUniformBufPool *pool)
 
void DRW_curves_update (void)
 
void DRW_curves_free (void)
 
struct DRWShadingGroupDRW_shgroup_volume_create_sub (struct Scene *scene, struct Object *ob, struct DRWShadingGroup *shgrp, struct GPUMaterial *gpu_material)
 
void DRW_volume_init (struct DRWData *drw_data)
 
void DRW_volume_ubos_pool_free (void *pool)
 
void DRW_volume_free (void)
 
void DRW_smoke_ensure (struct FluidModifierData *fmd, int highres)
 
void DRW_smoke_ensure_coba_field (struct FluidModifierData *fmd)
 
void DRW_smoke_ensure_velocity (struct FluidModifierData *fmd)
 
void DRW_fluid_ensure_flags (struct FluidModifierData *fmd)
 
void DRW_fluid_ensure_range_field (struct FluidModifierData *fmd)
 
void DRW_smoke_free (struct FluidModifierData *fmd)
 
void DRW_smoke_init (struct DRWData *drw_data)
 
void DRW_smoke_exit (struct DRWData *drw_data)
 

Variables

struct DRW_Global G_draw
 

Function Documentation

◆ DRW_color_background_blend_get()

float* DRW_color_background_blend_get ( int  theme_id)

◆ DRW_curves_free()

void DRW_curves_free ( void  )

◆ DRW_curves_init()

void DRW_curves_init ( struct DRWData drw_data)

◆ DRW_curves_pos_buffer_get()

struct GPUVertBuf* DRW_curves_pos_buffer_get ( struct Object object)

◆ DRW_curves_ubos_pool_free()

void DRW_curves_ubos_pool_free ( struct CurvesUniformBufPool pool)

Definition at line 132 of file draw_curves.cc.

References blender::compositor::pool.

Referenced by DRW_viewport_data_free().

◆ DRW_curves_update()

void DRW_curves_update ( void  )

◆ DRW_fluid_ensure_flags()

void DRW_fluid_ensure_flags ( struct FluidModifierData fmd)

◆ DRW_fluid_ensure_range_field()

void DRW_fluid_ensure_range_field ( struct FluidModifierData fmd)

◆ DRW_globals_free()

void DRW_globals_free ( void  )

Definition at line 251 of file draw_common.c.

Referenced by DRW_engines_free().

◆ DRW_globals_update()

void DRW_globals_update ( void  )

Definition at line 39 of file draw_common.c.

References CBData::a, CBData::b, BKE_colorband_evaluate_table_rgba(), DRW_Global::block, DRW_Global::block_ubo, color, GlobalsUboStorage::color_active, GlobalsUboStorage::color_active_spline, GlobalsUboStorage::color_background, GlobalsUboStorage::color_background_gradient, GlobalsUboStorage::color_bone_active, GlobalsUboStorage::color_bone_active_unsel, GlobalsUboStorage::color_bone_ik_line, GlobalsUboStorage::color_bone_ik_line_no_target, GlobalsUboStorage::color_bone_ik_line_spline, GlobalsUboStorage::color_bone_locked, GlobalsUboStorage::color_bone_pose, GlobalsUboStorage::color_bone_pose_active, GlobalsUboStorage::color_bone_pose_active_unsel, GlobalsUboStorage::color_bone_pose_constraint, GlobalsUboStorage::color_bone_pose_ik, GlobalsUboStorage::color_bone_pose_spline_ik, GlobalsUboStorage::color_bone_pose_target, GlobalsUboStorage::color_bone_select, GlobalsUboStorage::color_bone_solid, GlobalsUboStorage::color_camera, GlobalsUboStorage::color_camera_path, GlobalsUboStorage::color_checker_primary, GlobalsUboStorage::color_checker_secondary, GlobalsUboStorage::color_clipping_border, GlobalsUboStorage::color_current_frame, GlobalsUboStorage::color_deselect, GlobalsUboStorage::color_edge_bweight, GlobalsUboStorage::color_edge_crease, GlobalsUboStorage::color_edge_face_select, GlobalsUboStorage::color_edge_freestyle, GlobalsUboStorage::color_edge_seam, GlobalsUboStorage::color_edge_select, GlobalsUboStorage::color_edge_sharp, GlobalsUboStorage::color_edit_mesh_active, GlobalsUboStorage::color_edit_mesh_middle, GlobalsUboStorage::color_empty, GlobalsUboStorage::color_face, GlobalsUboStorage::color_face_back, GlobalsUboStorage::color_face_freestyle, GlobalsUboStorage::color_face_front, GlobalsUboStorage::color_face_select, GlobalsUboStorage::color_facedot, GlobalsUboStorage::color_gpencil_vertex, GlobalsUboStorage::color_gpencil_vertex_select, GlobalsUboStorage::color_grid, GlobalsUboStorage::color_grid_axis_x, GlobalsUboStorage::color_grid_axis_y, GlobalsUboStorage::color_grid_axis_z, GlobalsUboStorage::color_grid_emphasis, GlobalsUboStorage::color_handle_align, GlobalsUboStorage::color_handle_auto, GlobalsUboStorage::color_handle_autoclamp, GlobalsUboStorage::color_handle_free, GlobalsUboStorage::color_handle_sel_align, GlobalsUboStorage::color_handle_sel_auto, GlobalsUboStorage::color_handle_sel_autoclamp, GlobalsUboStorage::color_handle_sel_free, GlobalsUboStorage::color_handle_sel_vect, GlobalsUboStorage::color_handle_vect, GlobalsUboStorage::color_library, GlobalsUboStorage::color_library_select, GlobalsUboStorage::color_light, GlobalsUboStorage::color_light_no_alpha, GlobalsUboStorage::color_lnormal, GlobalsUboStorage::color_mball_radius, GlobalsUboStorage::color_mball_radius_select, GlobalsUboStorage::color_mball_stiffness, GlobalsUboStorage::color_mball_stiffness_select, GlobalsUboStorage::color_normal, GlobalsUboStorage::color_nurb_sel_uline, GlobalsUboStorage::color_nurb_sel_vline, GlobalsUboStorage::color_nurb_uline, GlobalsUboStorage::color_nurb_vline, GlobalsUboStorage::color_outline, GlobalsUboStorage::color_select, GlobalsUboStorage::color_skinroot, GlobalsUboStorage::color_speaker, GlobalsUboStorage::color_text, GlobalsUboStorage::color_text_hi, GlobalsUboStorage::color_transform, GlobalsUboStorage::color_uv_shadow, GlobalsUboStorage::color_vertex, GlobalsUboStorage::color_vertex_missing_data, GlobalsUboStorage::color_vertex_select, GlobalsUboStorage::color_vertex_unreferenced, GlobalsUboStorage::color_vnormal, GlobalsUboStorage::color_wire, GlobalsUboStorage::color_wire_edit, copy_v2_v2(), copy_v3_fl(), copy_v3_v3(), copy_v4_fl4(), ColorBand::data, dot_v3v3(), DRW_create_weight_colorramp_texture(), DRW_TEXTURE_FREE_SAFE, DRW_viewport_pixelsize_get(), DRW_viewport_screenvecs_get(), DRW_viewport_size_get(), float(), CBData::g, G_draw, GPU_RGBA8, GPU_texture_create_1d(), GPU_uniformbuf_create_ex(), GPU_uniformbuf_update(), interp_v4_v4v4(), invert_v2(), M_SQRT1_2, M_SQRT2, max_ff(), MEM_freeN, NULL, GlobalsUboStorage::pixel_fac, CBData::pos, CBData::r, DRW_Global::ramp, GlobalsUboStorage::screen_vecs, GlobalsUboStorage::size_checker, GlobalsUboStorage::size_edge, GlobalsUboStorage::size_edge_fix, GlobalsUboStorage::size_face_dot, GlobalsUboStorage::size_light_center, GlobalsUboStorage::size_light_circle, GlobalsUboStorage::size_light_circle_shadow, GlobalsUboStorage::size_object_center, GlobalsUboStorage::size_pixel, GlobalsUboStorage::size_vertex, GlobalsUboStorage::size_vertex_gpencil, GlobalsUboStorage::size_viewport, srgb_to_linearrgb_v4(), TH_ACTIVE, TH_ACTIVE_SPLINE, TH_AXIS_X, TH_AXIS_Y, TH_AXIS_Z, TH_BACK, TH_BACK_GRAD, TH_BONE_LOCKED_WEIGHT, TH_BONE_POSE, TH_BONE_POSE_ACTIVE, TH_BONE_SOLID, TH_CAMERA, TH_CAMERA_PATH, TH_CFRAME, TH_EDGE_BEVEL, TH_EDGE_CREASE, TH_EDGE_FACESEL, TH_EDGE_SEAM, TH_EDGE_SELECT, TH_EDGE_SHARP, TH_EDITMESH_ACTIVE, TH_EMPTY, TH_FACE, TH_FACE_BACK, TH_FACE_DOT, TH_FACE_FRONT, TH_FACE_SELECT, TH_FACEDOT_SIZE, TH_FREESTYLE_EDGE_MARK, TH_FREESTYLE_FACE_MARK, TH_GP_VERTEX, TH_GP_VERTEX_SELECT, TH_GP_VERTEX_SIZE, TH_GRID, TH_HANDLE_ALIGN, TH_HANDLE_AUTO, TH_HANDLE_AUTOCLAMP, TH_HANDLE_FREE, TH_HANDLE_SEL_ALIGN, TH_HANDLE_SEL_AUTO, TH_HANDLE_SEL_AUTOCLAMP, TH_HANDLE_SEL_FREE, TH_HANDLE_SEL_VECT, TH_HANDLE_VECT, TH_LIGHT, TH_LNORMAL, TH_NORMAL, TH_NURB_SEL_ULINE, TH_NURB_SEL_VLINE, TH_NURB_ULINE, TH_NURB_VLINE, TH_OBCENTER_DIA, TH_SELECT, TH_SKIN_ROOT, TH_SPEAKER, TH_TEXT, TH_TEXT_HI, TH_TRANSFORM, TH_TRANSPARENT_CHECKER_PRIMARY, TH_TRANSPARENT_CHECKER_SECONDARY, TH_TRANSPARENT_CHECKER_SIZE, TH_UV_SHADOW, TH_V3D_CLIPPING_BORDER, TH_VERTEX, TH_VERTEX_SELECT, TH_VERTEX_SIZE, TH_VERTEX_UNREFERENCED, TH_VNORMAL, TH_WIRE, TH_WIRE_EDIT, ColorBand::tot, UBO_LAST_COLOR, UI_COLOR_RGBA_FROM_U8, UI_GetThemeColor4fv(), UI_GetThemeColorBlendShade3fv(), UI_GetThemeColorBlendShade4fv(), UI_GetThemeColorShade4fv(), UI_GetThemeColorShadeAlpha4fv(), UI_GetThemeValuef(), USER_CUSTOM_RANGE, DRW_Global::weight_ramp, weight_ramp_copy, weight_ramp_custom, and zero_v4().

Referenced by DRW_draw_depth_loop(), DRW_draw_render_loop_2d_ex(), DRW_draw_render_loop_ex(), DRW_draw_select_id(), and DRW_draw_select_loop().

◆ DRW_hair_duplimat_get()

void DRW_hair_duplimat_get ( struct Object object,
struct ParticleSystem psys,
struct ModifierData md,
float(*)  dupli_mat[4] 
)

◆ DRW_hair_free()

void DRW_hair_free ( void  )

◆ DRW_hair_init()

void DRW_hair_init ( void  )

◆ DRW_hair_pos_buffer_get()

struct GPUVertBuf* DRW_hair_pos_buffer_get ( struct Object object,
struct ParticleSystem psys,
struct ModifierData md 
)

◆ DRW_hair_update()

void DRW_hair_update ( void  )

◆ DRW_object_axis_orthogonal_to_view()

bool DRW_object_axis_orthogonal_to_view ( struct Object ob,
int  axis 
)

◆ DRW_object_is_flat()

bool DRW_object_is_flat ( struct Object ob,
int *  r_axis 
)

◆ DRW_object_wire_theme_get()

int DRW_object_wire_theme_get ( struct Object ob,
struct ViewLayer view_layer,
float **  r_color 
)

◆ DRW_shgroup_curves_create_sub()

struct DRWShadingGroup* DRW_shgroup_curves_create_sub ( struct Object object,
struct DRWShadingGroup shgrp,
struct GPUMaterial gpu_material 
)

Definition at line 303 of file draw_curves.cc.

References ATTR_DOMAIN_CURVE, ATTR_DOMAIN_POINT, CurvesEvalFinalCache::attr_used, attribute_index_in_material(), DRW_AttributeRequest::attribute_name, CurvesEvalFinalCache::attributes_tex, blender::math::clamp(), curves, DRWData::curves_ubos, DRW_AttributeRequest::domain, DRW_context_state_get(), drw_curves_cache_get(), drw_curves_get_attribute_sampler_name(), DRW_shgroup_add_material_resources(), DRW_shgroup_call_no_cull, DRW_shgroup_create_sub(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_mat4_copy(), DRW_shgroup_uniform_texture(), DST, CurvesEvalCache::final, blender::IndexRange::first(), g_dummy_texture, Curves::geometry, GPUBatch, RenderData::hair_subdiv, RenderData::hair_type, blender::IndexRange::last(), CurvesEvalCache::length_tex, DRW_Attributes::num_requests, Object::obmat, blender::compositor::pool, CurvesEvalCache::proc_attributes_tex, CurvesEvalFinalCache::proc_hairs, CurvesEvalFinalCache::proc_tex, blender::draw::detail::UniformCommon< T, len, device_only >::push_update(), Scene::r, radii, DRW_Attributes::requests, blender::math::safe_divide(), SCE_HAIR_SHAPE_STRAND, scene, DRWContextState::scene, blender::IndexRange::size(), CurvesEvalFinalCache::strands_res, DRWManager::vmempool, and blender::bke::CurvesGeometry::wrap().

Referenced by basic_cache_populate(), EEVEE_cryptomatte_object_curves_cache_populate(), EEVEE_motion_blur_curves_cache_populate(), EEVEE_object_curves_cache_populate(), OVERLAY_outline_curves(), OVERLAY_sculpt_curves_cache_populate(), blender::eevee::shgroup_curves_call(), and workbench_cache_populate().

◆ DRW_shgroup_hair_create_sub()

struct DRWShadingGroup* DRW_shgroup_hair_create_sub ( struct Object object,
struct ParticleSystem psys,
struct ModifierData md,
struct DRWShadingGroup shgrp,
struct GPUMaterial gpu_material 
)

This creates a shading group with display hairs. The draw call is already added by this function, just add additional uniforms.

Definition at line 235 of file draw_hair.cc.

References ParticleHairCache::col_layer_names, ParticleHairCache::col_tex, DRW_context_state_get(), DRW_hair_duplimat_get(), drw_hair_particle_cache_get(), DRW_shgroup_add_material_resources(), DRW_shgroup_call_no_cull, DRW_shgroup_create_sub(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_mat4_copy(), DRW_shgroup_uniform_texture(), ParticleHairCache::final, g_dummy_curves_info, g_dummy_texture, GPUBatch, RenderData::hair_subdiv, RenderData::hair_type, ParticleHairCache::length_tex, MAX_LAYER_NAME_CT, ParticleHairCache::num_col_layers, ParticleHairCache::num_uv_layers, ParticleSystem::part, PART_SHAPE_CLOSE_TIP, ParticleHairFinalCache::proc_hairs, ParticleHairFinalCache::proc_tex, Scene::r, ParticleSettings::rad_root, ParticleSettings::rad_scale, ParticleSettings::rad_tip, SCE_HAIR_SHAPE_STRAND, scene, DRWContextState::scene, ParticleSettings::shape, ParticleSettings::shape_flag, ParticleHairFinalCache::strands_res, ParticleHairCache::uv_layer_names, and ParticleHairCache::uv_tex.

Referenced by eevee_cryptomatte_curves_cache_populate(), EEVEE_motion_blur_hair_cache_populate(), EEVEE_particle_hair_cache_populate(), blender::eevee::shgroup_curves_call(), and workbench_cache_hair_populate().

◆ DRW_shgroup_volume_create_sub()

struct DRWShadingGroup* DRW_shgroup_volume_create_sub ( struct Scene scene,
struct Object ob,
struct DRWShadingGroup shgrp,
struct GPUMaterial gpu_material 
)

Add attributes bindings of volume grids to an existing shading group. No draw call is added so the caller can decide how to use the data.

Returns
nullptr if there is nothing to draw.

Definition at line 260 of file draw_volume.cc.

References drw_volume_object_grids_init(), drw_volume_object_mesh_init(), drw_volume_world_grids_init(), GPU_material_attributes(), OB_VOLUME, scene, and Object::type.

Referenced by EEVEE_volumes_cache_init(), and EEVEE_volumes_cache_object_add().

◆ DRW_smoke_ensure()

void DRW_smoke_ensure ( struct FluidModifierData fmd,
int  highres 
)

◆ DRW_smoke_ensure_coba_field()

void DRW_smoke_ensure_coba_field ( struct FluidModifierData fmd)

◆ DRW_smoke_ensure_velocity()

void DRW_smoke_ensure_velocity ( struct FluidModifierData fmd)

◆ DRW_smoke_exit()

void DRW_smoke_exit ( struct DRWData drw_data)

◆ DRW_smoke_free()

void DRW_smoke_free ( struct FluidModifierData fmd)

◆ DRW_smoke_init()

void DRW_smoke_init ( struct DRWData drw_data)

◆ DRW_view_create_with_zoffset()

struct DRWView* DRW_view_create_with_zoffset ( const struct DRWView parent_view,
const struct RegionView3D rv3d,
float  offset 
)

◆ DRW_volume_free()

void DRW_volume_free ( void  )

Definition at line 83 of file draw_volume.cc.

References g_data, and GPU_TEXTURE_FREE_SAFE.

Referenced by DRW_engines_free().

◆ DRW_volume_init()

void DRW_volume_init ( struct DRWData drw_data)

◆ DRW_volume_ubos_pool_free()

void DRW_volume_ubos_pool_free ( void pool)

Definition at line 64 of file draw_volume.cc.

References blender::compositor::pool.

Referenced by DRW_viewport_data_free().

Variable Documentation

◆ G_draw

struct DRW_Global G_draw
extern

Colors & Constant.

Definition at line 1 of file draw_common.c.

Referenced by bone_locked_color_shade(), camera_stereoscopy_extra(), camera_view3d_reconstruction(), draw_axes(), draw_bone_line(), draw_points(), DRW_engines_free(), DRW_globals_update(), drw_manager_init(), DRW_object_wire_theme_get(), drw_shgroup_bone_ik_lines(), drw_shgroup_bone_ik_no_target_lines(), drw_shgroup_bone_ik_spline_lines(), drw_shgroup_bone_relationship_lines(), drw_shgroup_init(), drw_update_view(), edit_text_cache_populate_boxes(), get_bone_hint_color(), get_bone_solid_color(), get_bone_solid_with_consts_color(), get_bone_wire_color(), OVERLAY_antialiasing_cache_init(), OVERLAY_antialiasing_init(), OVERLAY_armature_cache_init(), OVERLAY_background_cache_init(), OVERLAY_edit_curve_cache_init(), OVERLAY_edit_curves_cache_init(), OVERLAY_edit_gpencil_cache_init(), OVERLAY_edit_lattice_cache_init(), OVERLAY_edit_mesh_cache_init(), OVERLAY_edit_metaball_cache_populate(), OVERLAY_edit_particle_cache_init(), OVERLAY_edit_text_cache_init(), OVERLAY_edit_uv_cache_init(), OVERLAY_extra_cache_init(), OVERLAY_facing_cache_init(), OVERLAY_gpencil_cache_init(), OVERLAY_grid_cache_init(), OVERLAY_metaball_cache_init(), OVERLAY_mode_transfer_cache_populate(), OVERLAY_motion_path_cache_init(), OVERLAY_outline_cache_init(), OVERLAY_paint_cache_init(), OVERLAY_particle_cache_init(), OVERLAY_relationship_lines(), OVERLAY_wireframe_cache_init(), select_cache_init(), set_pchan_color(), and workbench_update_world_ubo().