Blender  V3.3
gpencil_cache_utils.c File Reference
#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_tLayergpencil_layer_cache_add (GPENCIL_PrivateData *pd, const Object *ob, const bGPDlayer *gpl, const bGPDframe *gpf, GPENCIL_tObject *tgp_ob)
 
GPENCIL_tLayergpencil_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_tObjectgpencil_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)
 

Macro Definition Documentation

◆ SORT_IMPL_FUNC

#define SORT_IMPL_FUNC   gpencil_tobject_sort_fn_r

Definition at line 118 of file gpencil_cache_utils.c.

◆ SORT_IMPL_LINKTYPE

#define SORT_IMPL_LINKTYPE   GPENCIL_tObject

Definition at line 116 of file gpencil_cache_utils.c.

Function Documentation

◆ gpencil_layer_cache_add()

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_layer_cache_get()

GPENCIL_tLayer* gpencil_layer_cache_get ( GPENCIL_tObject tgp_ob,
int  number 
)

◆ gpencil_layer_final_opacity_get()

static float gpencil_layer_final_opacity_get ( const GPENCIL_PrivateData pd,
const Object ob,
const bGPDlayer gpl 
)
static

◆ gpencil_layer_final_tint_and_alpha_get()

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

◆ gpencil_layer_random_color_get()

static void gpencil_layer_random_color_get ( const Object ob,
const bGPDlayer gpl,
float  r_color[3] 
)
static

◆ gpencil_object_cache_add()

GPENCIL_tObject* gpencil_object_cache_add ( GPENCIL_PrivateData pd,
Object ob 
)

◆ gpencil_object_cache_sort()

void gpencil_object_cache_sort ( GPENCIL_PrivateData pd)

◆ gpencil_tobject_dist_sort()

static int gpencil_tobject_dist_sort ( const void a,
const void b 
)
static

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().