Blender  V3.3
Classes | Macros | Typedefs | Functions | Variables
gpencil_engine.h File Reference
#include "DNA_gpencil_types.h"
#include "DRW_render.h"
#include "BLI_bitmap.h"
#include "GPU_batch.h"
#include "gpencil_defines.h"
#include "gpencil_shader_shared.h"

Go to the source code of this file.

Classes

struct  GPENCIL_MaterialPool
 
struct  GPENCIL_LightPool
 
struct  GPENCIL_ViewLayerData
 
struct  GPENCIL_tVfx
 
struct  GPENCIL_tLayer
 
struct  GPENCIL_tObject
 
struct  GPENCIL_StorageList
 
struct  GPENCIL_PassList
 
struct  GPENCIL_FramebufferList
 
struct  GPENCIL_TextureList
 
struct  GPENCIL_Data
 
struct  GPENCIL_PrivateData
 

Macros

#define GPENCIL_PIXEL_FACTOR   2000.0f
 
#define GPENCIL_VBO_BLOCK_SIZE   128
 
#define GP_MAX_MASKBITS   256
 

Typedefs

typedef struct GPENCIL_MaterialPool GPENCIL_MaterialPool
 
typedef struct GPENCIL_LightPool GPENCIL_LightPool
 
typedef struct GPENCIL_ViewLayerData GPENCIL_ViewLayerData
 
typedef struct GPENCIL_tVfx GPENCIL_tVfx
 
typedef struct GPENCIL_tLayer GPENCIL_tLayer
 
typedef struct GPENCIL_tObject GPENCIL_tObject
 
typedef struct GPENCIL_StorageList GPENCIL_StorageList
 
typedef struct GPENCIL_PassList GPENCIL_PassList
 
typedef struct GPENCIL_FramebufferList GPENCIL_FramebufferList
 
typedef struct GPENCIL_TextureList GPENCIL_TextureList
 
typedef struct GPENCIL_Data GPENCIL_Data
 
typedef struct GPENCIL_PrivateData GPENCIL_PrivateData
 

Functions

struct GpencilBatchCachegpencil_batch_cache_get (struct Object *ob, int cfra)
 
GPENCIL_tObjectgpencil_object_cache_add (GPENCIL_PrivateData *pd, Object *ob)
 
void gpencil_object_cache_sort (GPENCIL_PrivateData *pd)
 
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)
 
GPENCIL_MaterialPoolgpencil_material_pool_create (GPENCIL_PrivateData *pd, Object *ob, int *ofs)
 
void gpencil_material_resources_get (GPENCIL_MaterialPool *first_pool, int mat_id, struct GPUTexture **r_tex_stroke, struct GPUTexture **r_tex_fill, struct GPUUniformBuf **r_ubo_mat)
 
void gpencil_light_ambient_add (GPENCIL_LightPool *lightpool, const float color[3])
 
void gpencil_light_pool_populate (GPENCIL_LightPool *lightpool, Object *ob)
 
GPENCIL_LightPoolgpencil_light_pool_add (GPENCIL_PrivateData *pd)
 
GPENCIL_LightPoolgpencil_light_pool_create (GPENCIL_PrivateData *pd, Object *ob)
 
void gpencil_vfx_cache_populate (GPENCIL_Data *vedata, Object *ob, GPENCIL_tObject *tgp_ob)
 
struct GPUShaderGPENCIL_shader_antialiasing (int stage)
 
struct GPUShaderGPENCIL_shader_geometry_get (void)
 
struct GPUShaderGPENCIL_shader_layer_blend_get (void)
 
struct GPUShaderGPENCIL_shader_mask_invert_get (void)
 
struct GPUShaderGPENCIL_shader_depth_merge_get (void)
 
struct GPUShaderGPENCIL_shader_fx_blur_get (void)
 
struct GPUShaderGPENCIL_shader_fx_colorize_get (void)
 
struct GPUShaderGPENCIL_shader_fx_composite_get (void)
 
struct GPUShaderGPENCIL_shader_fx_transform_get (void)
 
struct GPUShaderGPENCIL_shader_fx_glow_get (void)
 
struct GPUShaderGPENCIL_shader_fx_pixelize_get (void)
 
struct GPUShaderGPENCIL_shader_fx_rim_get (void)
 
struct GPUShaderGPENCIL_shader_fx_shadow_get (void)
 
void GPENCIL_shader_free (void)
 
void GPENCIL_antialiasing_init (struct GPENCIL_Data *vedata)
 
void GPENCIL_antialiasing_draw (struct GPENCIL_Data *vedata)
 
void GPENCIL_engine_init (void *vedata)
 
void GPENCIL_cache_init (void *vedata)
 
void GPENCIL_cache_populate (void *vedata, struct Object *ob)
 
void GPENCIL_cache_finish (void *vedata)
 
void GPENCIL_draw_scene (void *vedata)
 
void GPENCIL_render_init (struct GPENCIL_Data *ved, struct RenderEngine *engine, struct RenderLayer *render_layer, const struct Depsgraph *depsgraph, const rcti *rect)
 
void GPENCIL_render_to_image (void *vedata, struct RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect)
 
void gpencil_light_pool_free (void *storage)
 
void gpencil_material_pool_free (void *storage)
 
GPENCIL_ViewLayerDataGPENCIL_view_layer_data_ensure (void)
 

Variables

DrawEngineType draw_engine_gpencil_type
 

Macro Definition Documentation

◆ GP_MAX_MASKBITS

#define GP_MAX_MASKBITS   256

Definition at line 43 of file gpencil_engine.h.

◆ GPENCIL_PIXEL_FACTOR

#define GPENCIL_PIXEL_FACTOR   2000.0f

Definition at line 38 of file gpencil_engine.h.

◆ GPENCIL_VBO_BLOCK_SIZE

#define GPENCIL_VBO_BLOCK_SIZE   128

Definition at line 41 of file gpencil_engine.h.

Typedef Documentation

◆ GPENCIL_Data

typedef struct GPENCIL_Data GPENCIL_Data

◆ GPENCIL_FramebufferList

◆ GPENCIL_LightPool

◆ GPENCIL_MaterialPool

◆ GPENCIL_PassList

◆ GPENCIL_PrivateData

◆ GPENCIL_StorageList

◆ GPENCIL_TextureList

◆ GPENCIL_tLayer

◆ GPENCIL_tObject

◆ GPENCIL_tVfx

typedef struct GPENCIL_tVfx GPENCIL_tVfx

◆ GPENCIL_ViewLayerData

Function Documentation

◆ GPENCIL_antialiasing_draw()

void GPENCIL_antialiasing_draw ( struct GPENCIL_Data vedata)

◆ GPENCIL_antialiasing_init()

void GPENCIL_antialiasing_init ( struct GPENCIL_Data vedata)

◆ gpencil_batch_cache_get()

struct GpencilBatchCache* gpencil_batch_cache_get ( struct Object ob,
int  cfra 
)

◆ GPENCIL_cache_finish()

void GPENCIL_cache_finish ( void vedata)

◆ GPENCIL_cache_init()

void GPENCIL_cache_init ( void vedata)

Definition at line 171 of file gpencil_engine.c.

References CameraDOFSettings::aperture_fstop, BKE_camera_object_dof_distance(), BKE_camera_sensor_size(), BKE_gpencil_layer_active_get(), CAM_DOF_ENABLED, GPENCIL_PrivateData::camera, GPENCIL_PrivateData::cfra, CTX_wm_manager(), Object::data, DEG_get_ctime(), DRWContextState::depsgraph, GPENCIL_PrivateData::depth_tx, GPENCIL_PrivateData::do_fast_drawing, GPENCIL_PrivateData::do_onion, Camera::dof, GPENCIL_PrivateData::dof_params, GPENCIL_PrivateData::draw_depth_only, DRW_cache_gpencil_sbuffer_stroke_data_get(), DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_bool(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec4(), DRW_STATE_DEPTH_LESS, DRW_STATE_LOGIC_INVERT, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_texture_ensure_2d(), DRW_TEXTURE_FREE_SAFE, DRW_viewport_size_get(), ED_screen_animation_playing(), DRWContextState::evil_C, fabsf, GPENCIL_PrivateData::fade_3d_object_opacity, GPENCIL_PrivateData::fade_gp_object_opacity, GPENCIL_PrivateData::fade_layer_opacity, GPENCIL_Data::fbl, GPENCIL_PrivateData::fill_batch, CameraDOFSettings::flag, View3D::flag2, View3D::gp_flag, View3DOverlay::gpencil_fade_layer, View3DOverlay::gpencil_paper_opacity, GPENCIL_shader_depth_merge_get(), GPENCIL_shader_mask_invert_get(), GPENCIL_SIMPLIFY_AA, GPENCIL_SIMPLIFY_FILL, GPENCIL_SIMPLIFY_FX, View3DOverlay::gpencil_vertex_paint_opacity, GPU_DEPTH24_STENCIL8, GPU_R11F_G11F_B10F, if(), GPENCIL_PrivateData::is_render, GPENCIL_PrivateData::is_stroke_order_3d, GPENCIL_PrivateData::is_viewport, Camera::lens, GPENCIL_PassList::mask_invert_ps, GPENCIL_PassList::merge_depth_ps, NULL, OB_CAMERA, OB_GPENCIL, OB_RENDER, GPENCIL_PrivateData::obact, DRWContextState::obact, GPENCIL_PrivateData::object_bound_mat, View3D::overlay, GPENCIL_StorageList::pd, GPENCIL_PrivateData::playing, GPENCIL_Data::psl, bGPdata::runtime, DRWContextState::rv3d, GPENCIL_PrivateData::sbuffer_gpd, GPENCIL_PrivateData::sbuffer_layer, GPENCIL_PrivateData::sbuffer_stroke, bGPdata_Runtime::sbuffer_used, scene, DRWContextState::scene, Camera::sensor_fit, Camera::sensor_x, Camera::sensor_y, sh, View3D::shading, GPENCIL_PrivateData::simplify_antialias, GPENCIL_PrivateData::simplify_fill, GPENCIL_PrivateData::simplify_fx, size(), GPENCIL_PrivateData::snapshot_buffer_dirty, GPENCIL_TextureList::snapshot_color_tx, GPENCIL_TextureList::snapshot_depth_tx, GPENCIL_FramebufferList::snapshot_fb, GPENCIL_TextureList::snapshot_reveal_tx, state, GPENCIL_Data::stl, GPENCIL_PrivateData::stroke_batch, GPENCIL_Data::txl, Object::type, View3DShading::type, GPENCIL_PrivateData::use_layer_fb, GPENCIL_PrivateData::use_mask_fb, GPENCIL_PrivateData::use_object_fb, GPENCIL_PrivateData::use_signed_fb, DRWContextState::v3d, V3D_GP_FADE_NOACTIVE_GPENCIL, V3D_GP_FADE_NOACTIVE_LAYERS, V3D_GP_FADE_OBJECTS, V3D_GP_SHOW_ONION_SKIN, V3D_HIDE_OVERLAYS, GPENCIL_PrivateData::vertex_paint_opacity, and RegionView3D::viewcamtexcofac.

Referenced by GPENCIL_render_to_image().

◆ GPENCIL_cache_populate()

void GPENCIL_cache_populate ( void vedata,
struct Object ob 
)

Definition at line 580 of file gpencil_engine.c.

References bGPDlayer::actframe, BKE_gpencil_frame_retime_get(), BKE_gpencil_has_time_modifiers(), BKE_gpencil_layer_frame_get(), BKE_gpencil_visible_stroke_advanced_iter(), GPENCIL_PrivateData::cfra, Object::data, DRWContextState::depsgraph, GPENCIL_PrivateData::do_fast_drawing, GPENCIL_PrivateData::do_onion, gpIterPopulateData::do_sbuffer_call, DRW_context_state_get(), DRW_object_visibility_in_active_context(), DRW_state_is_image_render(), Object::dt, GPENCIL_TextureList::dummy_texture, GPENCIL_PrivateData::global_light_pool, GP_GETFRAME_USE_PREV, GP_ONION_GHOST_ALWAYS, gpencil_drawcall_flush(), gpencil_layer_cache_populate(), gpencil_light_pool_populate(), gpencil_material_pool_create(), gpencil_object_cache_add(), gpencil_sbuffer_cache_populate(), gpencil_sbuffer_cache_populate_fast(), gpencil_stroke_cache_populate(), gpencil_vfx_cache_populate(), if(), GPENCIL_PrivateData::is_render, bGPdata::layers, LISTBASE_FOREACH, gpIterPopulateData::mat_ofs, gpIterPopulateData::matpool, NULL, gpIterPopulateData::ob, OB_GPENCIL, OB_LAMP, OB_SOLID, OB_VISIBLE_SELF, bGPdata::onion_flag, gpIterPopulateData::pd, GPENCIL_StorageList::pd, GPENCIL_PrivateData::playing, bGPdata_Runtime::playing, GPENCIL_TextureList::render_depth_tx, bGPdata::runtime, GPENCIL_PrivateData::scene, GPENCIL_Data::stl, gpIterPopulateData::tex_fill, gpIterPopulateData::tex_stroke, gpIterPopulateData::tgp_ob, GPENCIL_Data::txl, Object::type, GPENCIL_PrivateData::use_lights, and GPENCIL_PrivateData::view_layer.

Referenced by GPENCIL_render_cache().

◆ GPENCIL_draw_scene()

void GPENCIL_draw_scene ( void vedata)

◆ GPENCIL_engine_init()

void GPENCIL_engine_init ( void vedata)

Definition at line 44 of file gpencil_engine.c.

References BLI_memblock_clear(), GPENCIL_PrivateData::camera, View3D::camera, GPENCIL_PrivateData::camera_pos, GPENCIL_PrivateData::camera_z_axis, GPENCIL_PrivateData::camera_z_offset, View3DShading::color_type, copy_v3_fl(), copy_v3_v3(), DefaultFramebufferList::default_fb, DefaultTextureList::depth, dot_v3v3(), GPENCIL_PrivateData::draw_depth_only, GPENCIL_PrivateData::draw_wireframe, DRW_context_state_get(), DRW_state_is_fbo(), DRW_TEX_WRAP, DRW_texture_create_2d(), DRW_view_viewmat_get(), DRW_viewport_framebuffer_list_get(), DRW_viewport_texture_list_get(), GPENCIL_TextureList::dummy_texture, GPENCIL_PrivateData::dummy_tx, GPENCIL_Data::fbl, GPENCIL_PrivateData::first, View3D::flag2, GPENCIL_PrivateData::global_light_pool, View3D::gp_flag, GPENCIL_ViewLayerData::gp_layer_pool, GPENCIL_PrivateData::gp_layer_pool, GPENCIL_ViewLayerData::gp_light_pool, GPENCIL_PrivateData::gp_light_pool, GPENCIL_ViewLayerData::gp_maskbit_pool, GPENCIL_PrivateData::gp_maskbit_pool, GPENCIL_ViewLayerData::gp_material_pool, GPENCIL_PrivateData::gp_material_pool, GPENCIL_ViewLayerData::gp_object_pool, GPENCIL_PrivateData::gp_object_pool, GPENCIL_ViewLayerData::gp_vfx_pool, GPENCIL_PrivateData::gp_vfx_pool, gpencil_light_ambient_add(), gpencil_light_pool_add(), gpencil_light_pool_free(), gpencil_material_pool_free(), GPENCIL_view_layer_data_ensure(), GPU_RGBA8, World::horr, if(), GPENCIL_PrivateData::is_render, GPENCIL_PrivateData::is_viewport, GPENCIL_PrivateData::last, GPENCIL_PrivateData::last_light_pool, GPENCIL_PrivateData::last_material_pool, MEM_callocN, Object::mode, NULL, OB_GPENCIL, OB_MODE_VERTEX_GPENCIL, OB_RENDER, OB_SOLID, OB_WIRE, DRWContextState::obact, GPENCIL_StorageList::pd, RegionView3D::persp, GPENCIL_TextureList::render_depth_tx, GPENCIL_FramebufferList::render_fb, DRWContextState::rv3d, RV3D_CAMOB, GPENCIL_PrivateData::sbuffer_tobjects, GPENCIL_PrivateData::scene, DRWContextState::scene, GPENCIL_PrivateData::scene_depth_tx, GPENCIL_PrivateData::scene_fb, GPENCIL_PrivateData::shadeless_light_pool, View3D::shading, View3DShading::single_color, GPENCIL_Data::stl, View3DShading::studiolight_intensity, GPENCIL_PrivateData::tobjects, GPENCIL_PrivateData::tobjects_infront, GPENCIL_Data::txl, Object::type, View3DShading::type, GPENCIL_PrivateData::use_lighting, GPENCIL_PrivateData::use_lights, GPENCIL_PrivateData::use_multiedit_lines_only, GPENCIL_PrivateData::v3d, DRWContextState::v3d, GPENCIL_PrivateData::v3d_color_type, V3D_GP_SHOW_MULTIEDIT_LINES, V3D_HIDE_OVERLAYS, V3D_SHADING_VERTEX_COLOR, GPENCIL_PrivateData::v3d_single_color, V3D_USES_SCENE_LIGHTS, V3D_USES_SCENE_WORLD, GPENCIL_PrivateData::view_layer, DRWContextState::view_layer, world, Scene::world, GPENCIL_PrivateData::xray_alpha, XRAY_ALPHA, and XRAY_ENABLED.

Referenced by GPENCIL_render_to_image().

◆ 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_light_ambient_add()

void gpencil_light_ambient_add ( GPENCIL_LightPool lightpool,
const float  color[3] 
)

◆ gpencil_light_pool_add()

GPENCIL_LightPool* gpencil_light_pool_add ( GPENCIL_PrivateData pd)

◆ gpencil_light_pool_create()

GPENCIL_LightPool* gpencil_light_pool_create ( GPENCIL_PrivateData pd,
Object ob 
)

Creates a single pool containing all lights assigned (light linked) for a given object.

◆ gpencil_light_pool_free()

void gpencil_light_pool_free ( void storage)

◆ gpencil_light_pool_populate()

void gpencil_light_pool_populate ( GPENCIL_LightPool lightpool,
Object ob 
)

◆ gpencil_material_pool_create()

GPENCIL_MaterialPool* gpencil_material_pool_create ( GPENCIL_PrivateData pd,
Object ob,
int *  ofs 
)

Creates a linked list of material pool containing all materials assigned for a given object. We merge the material pools together if object does not contain a huge amount of materials. Also return an offset to the first material of the object in the UBO.

Definition at line 165 of file gpencil_draw_data.c.

References MaterialGPencilStyle::alignment_mode, gpMaterial::alignment_rot, MaterialGPencilStyle::alignment_rotation, BKE_gpencil_material_settings(), BKE_object_material_count_eval(), copy_v4_v4(), cosf, Object::data, gpMaterial::fill_color, gpMaterial::fill_mix_color, MaterialGPencilStyle::fill_rgba, MaterialGPencilStyle::fill_style, gpMaterial::fill_texture_mix, gpMaterial::fill_uv_offset, gpMaterial::fill_uv_rot_scale, gpMaterial::flag, MaterialGPencilStyle::flag, GP_FILL_GRADIENT_RADIAL, GP_FILL_GRADIENT_USE, GP_FILL_HOLDOUT, GP_FILL_TEXTURE_CLIP, GP_FILL_TEXTURE_PREMUL, GP_FILL_TEXTURE_USE, GP_MATERIAL_DISABLE_STENCIL, GP_MATERIAL_FILL_STYLE_GRADIENT, GP_MATERIAL_FILL_STYLE_TEXTURE, GP_MATERIAL_FLIP_FILL, GP_MATERIAL_FOLLOW_FIXED, GP_MATERIAL_FOLLOW_OBJ, GP_MATERIAL_FOLLOW_PATH, GP_MATERIAL_GRADIENT_RADIAL, GP_MATERIAL_IS_FILL_HOLDOUT, GP_MATERIAL_IS_STROKE_HOLDOUT, GP_MATERIAL_MODE_DOT, GP_MATERIAL_MODE_LINE, GP_MATERIAL_STROKE_STYLE_TEXTURE, GP_MATERIAL_TEX_CLAMP, GP_STROKE_ALIGNMENT_FIXED, GP_STROKE_ALIGNMENT_OBJECT, GP_STROKE_ALIGNMENT_STROKE, GP_STROKE_DOTS, GP_STROKE_HOLDOUT, GP_STROKE_OVERLAP, GP_STROKE_TEXTURE_PREMUL, GP_STROKE_TEXTURE_USE, gpencil_image_texture_get(), GPENCIL_MATERIAL_BUFFER_LEN, gpencil_material_pool_add(), gpencil_uv_transform_get(), GPENCIL_VERTEX_MODE, gpencil_viewport_material_overrides(), MaterialGPencilStyle::gradient_type, MaterialGPencilStyle::ima, GPENCIL_PrivateData::last_material_pool, View3DShading::light, max_ii(), MaterialGPencilStyle::mix_factor, MaterialGPencilStyle::mix_rgba, MaterialGPencilStyle::mix_stroke_factor, MaterialGPencilStyle::mode, NULL, blender::compositor::pool, View3D::shading, MaterialGPencilStyle::sima, sinf, gpMaterial::stroke_color, MaterialGPencilStyle::stroke_rgba, MaterialGPencilStyle::stroke_style, gpMaterial::stroke_texture_mix, gpMaterial::stroke_u_scale, swap_v4_v4(), MaterialGPencilStyle::texture_angle, MaterialGPencilStyle::texture_offset, MaterialGPencilStyle::texture_pixsize, MaterialGPencilStyle::texture_scale, GPENCIL_MaterialPool::used_count, GPENCIL_PrivateData::v3d, GPENCIL_PrivateData::v3d_color_type, V3D_LIGHTING_STUDIO, and V3D_SHADING_VERTEX_COLOR.

Referenced by GPENCIL_cache_populate().

◆ gpencil_material_pool_free()

void gpencil_material_pool_free ( void storage)

◆ gpencil_material_resources_get()

void gpencil_material_resources_get ( GPENCIL_MaterialPool first_pool,
int  mat_id,
struct GPUTexture **  r_tex_stroke,
struct GPUTexture **  r_tex_fill,
struct GPUUniformBuf **  r_ubo_mat 
)

◆ 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_render_init()

void GPENCIL_render_init ( struct GPENCIL_Data ved,
struct RenderEngine engine,
struct RenderLayer render_layer,
const struct Depsgraph depsgraph,
const rcti rect 
)

Initialize render data.

◆ GPENCIL_render_to_image()

void GPENCIL_render_to_image ( void vedata,
struct RenderEngine engine,
struct RenderLayer render_layer,
const rcti rect 
)

◆ GPENCIL_shader_antialiasing()

struct GPUShader* GPENCIL_shader_antialiasing ( int  stage)

◆ GPENCIL_shader_depth_merge_get()

struct GPUShader* GPENCIL_shader_depth_merge_get ( void  )

◆ GPENCIL_shader_free()

void GPENCIL_shader_free ( void  )

◆ GPENCIL_shader_fx_blur_get()

struct GPUShader* GPENCIL_shader_fx_blur_get ( void  )

◆ GPENCIL_shader_fx_colorize_get()

struct GPUShader* GPENCIL_shader_fx_colorize_get ( void  )

◆ GPENCIL_shader_fx_composite_get()

struct GPUShader* GPENCIL_shader_fx_composite_get ( void  )

◆ GPENCIL_shader_fx_glow_get()

struct GPUShader* GPENCIL_shader_fx_glow_get ( void  )

◆ GPENCIL_shader_fx_pixelize_get()

struct GPUShader* GPENCIL_shader_fx_pixelize_get ( void  )

◆ GPENCIL_shader_fx_rim_get()

struct GPUShader* GPENCIL_shader_fx_rim_get ( void  )

◆ GPENCIL_shader_fx_shadow_get()

struct GPUShader* GPENCIL_shader_fx_shadow_get ( void  )

◆ GPENCIL_shader_fx_transform_get()

struct GPUShader* GPENCIL_shader_fx_transform_get ( void  )

◆ GPENCIL_shader_geometry_get()

struct GPUShader* GPENCIL_shader_geometry_get ( void  )

◆ GPENCIL_shader_layer_blend_get()

struct GPUShader* GPENCIL_shader_layer_blend_get ( void  )

◆ GPENCIL_shader_mask_invert_get()

struct GPUShader* GPENCIL_shader_mask_invert_get ( void  )

◆ gpencil_vfx_cache_populate()

void gpencil_vfx_cache_populate ( GPENCIL_Data vedata,
Object ob,
GPENCIL_tObject tgp_ob 
)

◆ GPENCIL_view_layer_data_ensure()

GPENCIL_ViewLayerData* GPENCIL_view_layer_data_ensure ( void  )

Variable Documentation

◆ draw_engine_gpencil_type

DrawEngineType draw_engine_gpencil_type
extern