|
Blender V4.3
|
#include "DRW_engine.hh"#include "DRW_render.hh"#include "ED_gpencil_legacy.hh"#include "ED_view3d.hh"#include "DNA_gpencil_legacy_types.h"#include "DNA_view3d_types.h"#include "BKE_gpencil_geom_legacy.h"#include "BKE_gpencil_legacy.h"#include "BKE_grease_pencil.hh"#include "BKE_lib_id.hh"#include "BKE_object.hh"#include "BLI_hash.h"#include "BLI_link_utils.h"#include "BLI_math_color.h"#include "BLI_math_vector.hh"#include "BLI_memblock.h"#include "gpencil_engine.h"#include "draw_cache_impl.hh"#include "DEG_depsgraph.hh"#include "UI_resources.hh"#include "../../blenlib/intern/list_sort_impl.h"Go to the source code of this file.
Object | |
| #define | SORT_IMPL_LINKTYPE GPENCIL_tObject |
| #define | SORT_IMPL_FUNC gpencil_tobject_sort_fn_r |
| GPENCIL_tObject * | gpencil_object_cache_add (GPENCIL_PrivateData *pd, Object *ob, const bool is_stroke_order_3d, const blender::Bounds< float3 > bounds) |
| static int | gpencil_tobject_dist_sort (const void *a, const void *b) |
| void | gpencil_object_cache_sort (GPENCIL_PrivateData *pd) |
| #define SORT_IMPL_FUNC gpencil_tobject_sort_fn_r |
Definition at line 128 of file gpencil_cache_utils.cc.
| #define SORT_IMPL_LINKTYPE GPENCIL_tObject |
Definition at line 126 of file gpencil_cache_utils.cc.
| GPENCIL_tLayer * gpencil_layer_cache_add | ( | GPENCIL_PrivateData * | pd, |
| const Object * | ob, | ||
| const bGPDlayer * | gpl, | ||
| const bGPDframe * | gpf, | ||
| GPENCIL_tObject * | tgp_ob ) |
Definition at line 352 of file gpencil_cache_utils.cc.
References GPENCIL_tLayer::base_shgrp, BKE_gpencil_layer_named_get(), bGPDlayer::blend_mode, GPENCIL_tLayer::blend_ps, BLI_BITMAP_SET, BLI_bitmap_set_all(), BLI_findindex(), BLI_LINKS_APPEND, BLI_listbase_is_empty(), BLI_memblock_alloc(), GPENCIL_PrivateData::color_layer_tx, copy_v4_v4(), Object::data, DRW_pass_create(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_state_disable(), DRW_shgroup_state_enable(), DRW_shgroup_stencil_mask(), DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3_copy(), DRW_shgroup_uniform_vec4_copy(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_BLEND_ALPHA_PREMUL, DRW_STATE_BLEND_MUL, DRW_STATE_BLEND_SUB, DRW_STATE_DEPTH_GREATER, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_STENCIL_EQUAL, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, Object::dtx, GPENCIL_PrivateData::dummy_tx, eGplBlendMode_Add, eGplBlendMode_Divide, eGplBlendMode_HardLight, eGplBlendMode_Multiply, eGplBlendMode_Regular, eGplBlendMode_Subtract, ELEM, false, bGPdata::flag, bGPDlayer::flag, GPENCIL_tLayer::geom_ps, GP_DATA_STROKE_KEEPTHICKNESS, GP_LAYER_DISABLE_MASKS_IN_VIEWLAYER, GP_LAYER_HIDE, GPENCIL_PrivateData::gp_layer_pool, GP_LAYER_USE_MASK, GP_MASK_HIDE, GP_MASK_INVERT, GPENCIL_PrivateData::gp_maskbit_pool, GP_MAX_MASKBITS, gpencil_layer_final_opacity_get(), gpencil_layer_final_tint_and_alpha_get(), gpencil_layer_random_color_get(), GPENCIL_PIXEL_FACTOR, GPENCIL_shader_geometry_get(), GPENCIL_shader_layer_blend_get(), GPENCIL_VERTEX_MODE, invert(), GPENCIL_tObject::is_drawmode3d, GPENCIL_PrivateData::is_render, GPENCIL_tLayer::layer_id, bGPdata::layers, GPENCIL_tObject::layers, bGPDlayer::line_change, LISTBASE_FOREACH, GPENCIL_tLayer::mask_bits, GPENCIL_tLayer::mask_invert_bits, bGPDlayer::mask_layers, GPENCIL_PrivateData::mask_tx, ViewLayer::name, OB_DRAW_IN_FRONT, GPENCIL_tObject::object_scale, bGPdata::pixfactor, GPENCIL_tObject::plane_normal, GPENCIL_PrivateData::reveal_layer_tx, GPENCIL_PrivateData::scene_depth_tx, state, STREQ, GPENCIL_PrivateData::use_layer_fb, GPENCIL_PrivateData::use_mask_fb, GPENCIL_PrivateData::use_signed_fb, GPENCIL_PrivateData::v3d_color_type, V3D_SHADING_RANDOM_COLOR, V3D_SHADING_VERTEX_COLOR, bGPDlayer::vertex_paint_opacity, GPENCIL_PrivateData::vertex_paint_opacity, GPENCIL_PrivateData::view_layer, and bGPDlayer::viewlayername.
|
static |
Definition at line 188 of file gpencil_cache_utils.cc.
References GPENCIL_PrivateData::fade_gp_object_opacity, GPENCIL_PrivateData::fade_layer_opacity, bGPDlayer::flag, GP_LAYER_ACTIVE, GPENCIL_PrivateData::is_render, GPENCIL_PrivateData::obact, and bGPDlayer::opacity.
Referenced by gpencil_layer_cache_add().
|
static |
Definition at line 231 of file gpencil_cache_utils.cc.
References abs(), clamp_f(), copy_v3_v3(), copy_v4_fl4(), copy_v4_v4(), bGPdata::gcolor_next, bGPdata::gcolor_prev, GP_ONION_FADE, GP_ONION_GHOST_PREVCOL, GPENCIL_SIMPLIFY_TINT, bGPdata::onion_factor, bGPdata::onion_flag, bGPDframe_Runtime::onion_id, bGPDframe::runtime, GPENCIL_PrivateData::scene, TH_FRAME_AFTER, TH_FRAME_BEFORE, bGPDlayer::tintcolor, UI_GetThemeColor3fv(), UNPACK3, and GPENCIL_PrivateData::xray_alpha.
Referenced by gpencil_layer_cache_add().
|
static |
Definition at line 324 of file gpencil_cache_utils.cc.
References BLI_ghashutil_strhash_p_murmur(), BLI_hash_int_01(), hsv_to_rgb_v(), hue, Object::id, bGPDlayer::info, and ID::name.
Referenced by gpencil_layer_cache_add().
| GPENCIL_tObject * gpencil_object_cache_add | ( | GPENCIL_PrivateData * | pd, |
| Object * | ob, | ||
| const bool | is_stroke_order_3d, | ||
| const blender::Bounds< float3 > | bounds ) |
Definition at line 42 of file gpencil_cache_utils.cc.
References add_v3_fl(), BKE_gpencil_material_settings(), BKE_object_material_count_eval(), BLI_LINKS_APPEND, BLI_memblock_alloc(), bounds(), GPENCIL_PrivateData::camera_pos, GPENCIL_tObject::camera_z, GPENCIL_PrivateData::camera_z_axis, copy_v3_v3(), GPENCIL_tObject::do_mat_holdout, dot_v3v3(), GPENCIL_PrivateData::draw_depth_only, DRW_view_is_persp_get(), Object::dtx, GPENCIL_tObject::first, MaterialGPencilStyle::flag, GP_MATERIAL_IS_FILL_HOLDOUT, GP_MATERIAL_IS_STROKE_HOLDOUT, GPENCIL_PrivateData::gp_object_pool, invert_m4(), GPENCIL_tObject::is_drawmode3d, GPENCIL_tObject::last, GPENCIL_tObject::layers, len_v3(), mat4_to_scale(), blender::math::midpoint(), mul_m4_m4m4(), mul_m4_v3(), mul_mat3_m4_v3(), normalize_v3(), OB_DRAW_IN_FRONT, GPENCIL_tObject::object_scale, orthogonalize_m4(), GPENCIL_tObject::plane_mat, GPENCIL_tObject::plane_normal, rescale_m4(), sub_v3_v3v3(), GPENCIL_PrivateData::tobjects, GPENCIL_PrivateData::tobjects_infront, transpose_m4(), unit_m4(), and GPENCIL_tObject::vfx.
Referenced by grease_pencil_object_cache_populate().
| void gpencil_object_cache_sort | ( | GPENCIL_PrivateData * | pd | ) |
Definition at line 149 of file gpencil_cache_utils.cc.
References GPENCIL_PrivateData::first, gpencil_tobject_dist_sort(), GPENCIL_PrivateData::last, GPENCIL_tObject::next, GPENCIL_PrivateData::tobjects, and GPENCIL_PrivateData::tobjects_infront.
Referenced by GPENCIL_cache_finish().
|
static |
Definition at line 134 of file gpencil_cache_utils.cc.
References b, and GPENCIL_tObject::camera_z.
Referenced by gpencil_object_cache_sort().
| GPENCIL_tLayer * grease_pencil_layer_cache_add | ( | GPENCIL_PrivateData * | pd, |
| const Object * | ob, | ||
| const blender::bke::greasepencil::Layer & | layer, | ||
| const int | onion_id, | ||
| const bool | is_used_as_mask, | ||
| GPENCIL_tObject * | tgp_ob ) |
Definition at line 534 of file gpencil_cache_utils.cc.
References GPENCIL_tLayer::base_shgrp, GPENCIL_tLayer::blend_ps, BLI_BITMAP_SET, BLI_bitmap_set_all(), BLI_LINKS_APPEND, BLI_listbase_is_empty(), BLI_memblock_alloc(), GPENCIL_PrivateData::color_layer_tx, copy_v4_v4(), Object::data, DRW_pass_create(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_state_disable(), DRW_shgroup_state_enable(), DRW_shgroup_stencil_mask(), DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3_copy(), DRW_shgroup_uniform_vec4_copy(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_BLEND_ALPHA_PREMUL, DRW_STATE_BLEND_MUL, DRW_STATE_BLEND_SUB, DRW_STATE_DEPTH_GREATER, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_STENCIL_EQUAL, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, Object::dtx, GPENCIL_PrivateData::dummy_tx, ELEM, GPENCIL_tLayer::geom_ps, GP_LAYER_BLEND_ADD, GP_LAYER_BLEND_DIVIDE, GP_LAYER_BLEND_HARDLIGHT, GP_LAYER_BLEND_MULTIPLY, GP_LAYER_BLEND_NONE, GP_LAYER_BLEND_SUBTRACT, GP_LAYER_MASK_HIDE, GP_LAYER_MASK_INVERT, GPENCIL_PrivateData::gp_layer_pool, GP_LAYER_TREE_NODE_DISABLE_MASKS_IN_VIEWLAYER, GPENCIL_PrivateData::gp_maskbit_pool, GP_MAX_MASKBITS, GPENCIL_shader_geometry_get(), GPENCIL_shader_layer_blend_get(), grease_pencil_layer_final_opacity_get(), grease_pencil_layer_final_tint_and_alpha_get(), grease_pencil_layer_random_color_get(), invert(), GPENCIL_tObject::is_drawmode3d, GPENCIL_tLayer::is_onion, GPENCIL_PrivateData::is_render, GPENCIL_tLayer::layer_id, GPENCIL_tObject::layers, blender::bke::greasepencil::LEGACY_RADIUS_CONVERSION_FACTOR, LISTBASE_FOREACH, GPENCIL_tLayer::mask_bits, GPENCIL_tLayer::mask_invert_bits, GPENCIL_PrivateData::mask_tx, Object::mode, ViewLayer::name, OB_DRAW_IN_FRONT, OB_MODE_PAINT_GREASE_PENCIL, OB_MODE_VERTEX_PAINT, GPENCIL_tObject::object_scale, GPENCIL_tObject::plane_normal, GPENCIL_PrivateData::reveal_layer_tx, GPENCIL_PrivateData::scene_depth_tx, state, STREQ, GPENCIL_PrivateData::use_layer_fb, GPENCIL_PrivateData::use_mask_fb, GPENCIL_PrivateData::use_signed_fb, GPENCIL_PrivateData::v3d_color_type, V3D_SHADING_RANDOM_COLOR, V3D_SHADING_VERTEX_COLOR, GPENCIL_PrivateData::vertex_paint_opacity, GPENCIL_PrivateData::view_layer, and GPENCIL_PrivateData::xray_alpha.
Referenced by grease_pencil_object_cache_populate().
| GPENCIL_tLayer * grease_pencil_layer_cache_get | ( | GPENCIL_tObject * | tgp_ob, |
| int | layer_id, | ||
| const bool | skip_onion ) |
Definition at line 518 of file gpencil_cache_utils.cc.
References BLI_assert, GPENCIL_tObject::first, and GPENCIL_tObject::layers.
Referenced by gpencil_draw_mask().
|
static |
Definition at line 209 of file gpencil_cache_utils.cc.
References GPENCIL_PrivateData::fade_gp_object_opacity, GPENCIL_PrivateData::fade_layer_opacity, GPENCIL_PrivateData::is_render, and GPENCIL_PrivateData::obact.
Referenced by grease_pencil_layer_cache_add().
|
static |
Definition at line 274 of file gpencil_cache_utils.cc.
References abs(), clamp_f(), GreasePencilOnionSkinningSettings::color_after, GreasePencilOnionSkinningSettings::color_before, GPENCIL_PrivateData::do_onion, GreasePencilOnionSkinningSettings::flag, GP_ONION_SKINNING_USE_CUSTOM_COLORS, GP_ONION_SKINNING_USE_FADE, GPENCIL_SIMPLIFY_TINT, GreasePencil::onion_skinning_settings, GreasePencilOnionSkinningSettings::opacity, GPENCIL_PrivateData::scene, TH_FRAME_AFTER, TH_FRAME_BEFORE, UI_GetThemeColor3fv(), and GPENCIL_PrivateData::xray_alpha.
Referenced by grease_pencil_layer_cache_add().
|
static |
Definition at line 338 of file gpencil_cache_utils.cc.
References BLI_ghashutil_strhash_p_murmur(), BLI_hash_int_01(), hsv_to_rgb_v(), hue, Object::id, and ID::name.
Referenced by grease_pencil_layer_cache_add().