Blender
V3.3
|
#include "DRW_engine.h"
#include "DRW_render.h"
#include "ED_gpencil.h"
#include "ED_view3d.h"
#include "DNA_gpencil_types.h"
#include "DNA_view3d_types.h"
#include "BKE_gpencil.h"
#include "BKE_lib_id.h"
#include "BKE_object.h"
#include "BLI_hash.h"
#include "BLI_link_utils.h"
#include "BLI_memblock.h"
#include "gpencil_engine.h"
#include "draw_cache_impl.h"
#include "DEG_depsgraph.h"
#include "../../blenlib/intern/list_sort_impl.h"
Go to the source code of this file.
Functions | |
Layer | |
static float | gpencil_layer_final_opacity_get (const GPENCIL_PrivateData *pd, const Object *ob, const bGPDlayer *gpl) |
static void | gpencil_layer_final_tint_and_alpha_get (const GPENCIL_PrivateData *pd, const bGPdata *gpd, const bGPDlayer *gpl, const bGPDframe *gpf, float r_tint[4], float *r_alpha) |
static void | gpencil_layer_random_color_get (const Object *ob, const bGPDlayer *gpl, float r_color[3]) |
GPENCIL_tLayer * | gpencil_layer_cache_add (GPENCIL_PrivateData *pd, const Object *ob, const bGPDlayer *gpl, const bGPDframe *gpf, GPENCIL_tObject *tgp_ob) |
GPENCIL_tLayer * | gpencil_layer_cache_get (GPENCIL_tObject *tgp_ob, int number) |
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) |
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 118 of file gpencil_cache_utils.c.
#define SORT_IMPL_LINKTYPE GPENCIL_tObject |
Definition at line 116 of file gpencil_cache_utils.c.
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 249 of file gpencil_cache_utils.c.
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, bGPDlayer::flag, bGPdata::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, GPENCIL_tObject::layers, bGPdata::layers, bGPDlayer::line_change, LISTBASE_FOREACH, mask(), GPENCIL_tLayer::mask_bits, GPENCIL_tLayer::mask_invert_bits, bGPDlayer::mask_layers, GPENCIL_PrivateData::mask_tx, ViewLayer::name, NULL, OB_DRAW_IN_FRONT, GPENCIL_tObject::object_scale, bGPdata::pixfactor, GPENCIL_tObject::plane_normal, GPENCIL_PrivateData::reveal_layer_tx, GPENCIL_PrivateData::scene_depth_tx, sh, 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, bGPDlayer::vertex_paint_opacity, GPENCIL_PrivateData::view_layer, and bGPDlayer::viewlayername.
Referenced by gpencil_layer_cache_populate().
GPENCIL_tLayer* gpencil_layer_cache_get | ( | GPENCIL_tObject * | tgp_ob, |
int | number | ||
) |
Definition at line 413 of file gpencil_cache_utils.c.
References GPENCIL_tObject::first, GPENCIL_tLayer::layer_id, GPENCIL_tObject::layers, GPENCIL_tLayer::next, and NULL.
Referenced by gpencil_draw_mask().
|
static |
Definition at line 178 of file gpencil_cache_utils.c.
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 199 of file gpencil_cache_utils.c.
References blender::math::abs(), clamp_f(), copy_v4_fl4(), copy_v4_v4(), bGPdata::gcolor_next, bGPdata::gcolor_prev, GP_ONION_FADE, GP_ONION_GHOST_PREVCOL, GPENCIL_SIMPLIFY_TINT, NULL, bGPdata::onion_factor, bGPdata::onion_flag, bGPDframe_Runtime::onion_id, bGPDframe::runtime, GPENCIL_PrivateData::scene, bGPDlayer::tintcolor, UNPACK3, and GPENCIL_PrivateData::xray_alpha.
Referenced by gpencil_layer_cache_add().
|
static |
Definition at line 235 of file gpencil_cache_utils.c.
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 | ||
) |
Definition at line 35 of file gpencil_cache_utils.c.
References add_v3_fl(), BKE_boundbox_calc_center_aabb(), BKE_boundbox_calc_size_aabb(), BKE_gpencil_material_settings(), BKE_object_boundbox_get(), BKE_object_material_count_eval(), BLI_LINKS_APPEND, BLI_memblock_alloc(), GPENCIL_PrivateData::camera_pos, GPENCIL_PrivateData::camera_z_axis, center, copy_v3_v3(), Object::data, dot_v3v3(), GPENCIL_PrivateData::draw_depth_only, bGPdata::draw_mode, DRW_view_is_persp_get(), Object::dtx, MaterialGPencilStyle::flag, GP_DRAWMODE_3D, GP_MATERIAL_IS_FILL_HOLDOUT, GP_MATERIAL_IS_STROKE_HOLDOUT, GPENCIL_PrivateData::gp_object_pool, invert_m4(), len_v3(), mat4_to_scale(), mul_m4_m4m4(), mul_m4_v3(), mul_mat3_m4_v3(), normalize_v3(), NULL, OB_DRAW_IN_FRONT, Object::obmat, orthogonalize_m4(), rescale_m4(), size(), sub_v3_v3v3(), GPENCIL_PrivateData::tobjects, GPENCIL_PrivateData::tobjects_infront, transpose_m4(), and unit_m4().
Referenced by GPENCIL_cache_populate(), and gpencil_sbuffer_cache_populate_fast().
void gpencil_object_cache_sort | ( | GPENCIL_PrivateData * | pd | ) |
Definition at line 139 of file gpencil_cache_utils.c.
References GPENCIL_PrivateData::first, gpencil_tobject_dist_sort(), GPENCIL_PrivateData::last, GPENCIL_tObject::next, NULL, GPENCIL_PrivateData::tobjects, and GPENCIL_PrivateData::tobjects_infront.
Referenced by GPENCIL_cache_finish().
Definition at line 124 of file gpencil_cache_utils.c.
References Freestyle::a, usdtokens::b(), and GPENCIL_tObject::camera_z.
Referenced by gpencil_object_cache_sort().