42#define GPENCIL_PIXEL_FACTOR 2000.0f
45#define GPENCIL_VBO_BLOCK_SIZE 128
47#define GP_MAX_MASKBITS 256
56 struct GPUUniformBuf *
ubo;
68 struct GPUUniformBuf *
ubo;
329 bool is_stroke_order_3d,
346 bool is_used_as_mask,
356 bool is_vertex_mode);
359 struct GPUTexture **r_tex_stroke,
360 struct GPUTexture **r_tex_fill,
361 struct GPUUniformBuf **r_ubo_mat);
375 const bool is_edit_mode);
Low-level operations for grease pencil.
struct GPUShader GPUShader
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
const Depsgraph * depsgraph
#define GPENCIL_MATERIAL_BUFFER_LEN
#define GPENCIL_LIGHT_BUFFER_LEN
struct GPENCIL_Data GPENCIL_Data
void GPENCIL_antialiasing_draw(struct GPENCIL_Data *vedata)
struct GPUShader * GPENCIL_shader_fx_composite_get(void)
struct GPUShader * GPENCIL_shader_mask_invert_get(void)
struct GPUShader * GPENCIL_shader_fx_transform_get(void)
GPENCIL_ViewLayerData * GPENCIL_view_layer_data_ensure(void)
void gpencil_vfx_cache_populate(GPENCIL_Data *vedata, Object *ob, GPENCIL_tObject *tgp_ob, const bool is_edit_mode)
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)
struct GPENCIL_tVfx GPENCIL_tVfx
void gpencil_light_pool_populate(GPENCIL_LightPool *lightpool, Object *ob)
struct GPENCIL_tObject GPENCIL_tObject
GPENCIL_LightPool * gpencil_light_pool_add(GPENCIL_PrivateData *pd)
void GPENCIL_engine_init(void *vedata)
struct GPENCIL_FramebufferList GPENCIL_FramebufferList
void GPENCIL_antialiasing_init(struct GPENCIL_Data *vedata)
struct GPUShader * GPENCIL_shader_fx_shadow_get(void)
GPENCIL_tLayer * grease_pencil_layer_cache_get(GPENCIL_tObject *tgp_ob, int layer_id, bool skip_onion)
struct GPUShader * GPENCIL_shader_fx_blur_get(void)
void GPENCIL_cache_init(void *vedata)
GPENCIL_tObject * gpencil_object_cache_add(GPENCIL_PrivateData *pd, Object *ob, bool is_stroke_order_3d, blender::Bounds< float3 > bounds)
struct GPUShader * GPENCIL_shader_depth_merge_get(void)
void GPENCIL_cache_finish(void *vedata)
struct GPENCIL_ViewLayerData GPENCIL_ViewLayerData
void GPENCIL_cache_populate(void *vedata, struct Object *ob)
GPENCIL_MaterialPool * gpencil_material_pool_create(GPENCIL_PrivateData *pd, Object *ob, int *ofs, bool is_vertex_mode)
struct GPUShader * GPENCIL_shader_fx_glow_get(void)
struct GPENCIL_MaterialPool GPENCIL_MaterialPool
struct GPUShader * GPENCIL_shader_fx_rim_get(void)
struct GpencilBatchCache * gpencil_batch_cache_get(struct Object *ob, int cfra)
GPENCIL_tLayer * grease_pencil_layer_cache_add(GPENCIL_PrivateData *pd, const Object *ob, const blender::bke::greasepencil::Layer &layer, int onion_id, bool is_used_as_mask, GPENCIL_tObject *tgp_ob)
struct GPENCIL_PassList GPENCIL_PassList
struct GPENCIL_tLayer GPENCIL_tLayer
GPENCIL_LightPool * gpencil_light_pool_create(GPENCIL_PrivateData *pd, Object *ob)
void gpencil_light_pool_free(void *storage)
void GPENCIL_shader_free(void)
struct GPUShader * GPENCIL_shader_layer_blend_get(void)
void GPENCIL_render_init(struct GPENCIL_Data *ved, struct RenderEngine *engine, struct RenderLayer *render_layer, const struct Depsgraph *depsgraph, const rcti *rect)
struct GPENCIL_StorageList GPENCIL_StorageList
void gpencil_material_pool_free(void *storage)
struct GPUShader * GPENCIL_shader_fx_colorize_get(void)
void gpencil_object_cache_sort(GPENCIL_PrivateData *pd)
struct GPENCIL_LightPool GPENCIL_LightPool
DrawEngineType draw_engine_gpencil_type
struct GPENCIL_TextureList GPENCIL_TextureList
GPENCIL_tLayer * gpencil_layer_cache_add(GPENCIL_PrivateData *pd, const Object *ob, const bGPDlayer *gpl, const bGPDframe *gpf, GPENCIL_tObject *tgp_ob)
void gpencil_light_ambient_add(GPENCIL_LightPool *lightpool, const float color[3])
struct GPUShader * GPENCIL_shader_fx_pixelize_get(void)
struct GPUShader * GPENCIL_shader_geometry_get(void)
void GPENCIL_draw_scene(void *vedata)
void GPENCIL_render_to_image(void *vedata, struct RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect)
struct GPENCIL_PrivateData GPENCIL_PrivateData
struct GPUShader * GPENCIL_shader_antialiasing(int stage)
struct GPENCIL_TextureList * txl
struct GPENCIL_PassList * psl
struct GPENCIL_StorageList * stl
struct GPENCIL_FramebufferList * fbl
struct GPUFrameBuffer * smaa_weight_fb
struct GPUFrameBuffer * render_fb
struct GPUFrameBuffer * smaa_edge_fb
struct GPUFrameBuffer * snapshot_fb
struct GPUFrameBuffer * mask_fb
struct GPUFrameBuffer * gpencil_fb
struct GPUFrameBuffer * object_fb
struct GPUFrameBuffer * layer_fb
gpLight light_data[GPENCIL_LIGHT_BUFFER_LEN]
struct GPUUniformBuf * ubo
gpMaterial mat_data[GPENCIL_MATERIAL_BUFFER_LEN]
struct GPUTexture * tex_fill[GPENCIL_MATERIAL_BUFFER_LEN]
struct GPUUniformBuf * ubo
struct GPENCIL_MaterialPool * next
struct GPUTexture * tex_stroke[GPENCIL_MATERIAL_BUFFER_LEN]
struct DRWPass * mask_invert_ps
struct DRWPass * smaa_weight_ps
struct DRWPass * merge_depth_ps
struct DRWPass * composite_ps
struct DRWPass * smaa_resolve_ps
struct DRWPass * smaa_edge_ps
float object_bound_mat[4][4]
GPENCIL_LightPool * last_light_pool
struct BLI_memblock * gp_vfx_pool
GPUTexture * scene_depth_tx
struct bGPDstroke * sbuffer_stroke
struct BLI_memblock * gp_layer_pool
GPUTexture * color_object_tx
GPENCIL_LightPool * shadeless_light_pool
GPUTexture * smaa_weight_tx
struct bGPDlayer * sbuffer_layer
struct ViewLayer * view_layer
struct GPENCIL_PrivateData::@202 tobjects_infront
bool snapshot_buffer_dirty
struct BLI_memblock * gp_maskbit_pool
blender::gpu::Batch * fill_batch
struct BLI_memblock * gp_object_pool
float vertex_paint_opacity
float fade_gp_object_opacity
float v3d_single_color[3]
blender::gpu::Batch * stroke_batch
GPENCIL_LightPool * global_light_pool
float fade_3d_object_opacity
struct GPENCIL_PrivateData::@203 sbuffer_tobjects
struct BLI_memblock * gp_material_pool
struct GPENCIL_PrivateData::@202 tobjects
GPUFrameBuffer * scene_fb
GPUTexture * smaa_edge_tx
bool use_multiedit_lines_only
GPUTexture * reveal_layer_tx
struct bGPdata * sbuffer_gpd
GPUTexture * color_layer_tx
struct BLI_memblock * gp_light_pool
GPENCIL_MaterialPool * last_material_pool
GPUTexture * reveal_object_tx
struct GPENCIL_PrivateData * pd
struct GPUTexture * snapshot_reveal_tx
struct GPUTexture * smaa_area_tx
struct GPUTexture * snapshot_depth_tx
struct GPUTexture * snapshot_color_tx
struct GPUTexture * smaa_search_tx
struct GPUTexture * render_depth_tx
struct GPUTexture * render_color_tx
struct GPUTexture * dummy_texture
struct BLI_memblock * gp_vfx_pool
struct BLI_memblock * gp_material_pool
struct BLI_memblock * gp_maskbit_pool
struct BLI_memblock * gp_light_pool
struct BLI_memblock * gp_layer_pool
struct BLI_memblock * gp_object_pool
DRWShadingGroup * base_shgrp
BLI_bitmap * mask_invert_bits
struct GPENCIL_tLayer * next
struct GPENCIL_tObject::@201 vfx
struct GPENCIL_tObject * next
struct GPENCIL_tObject::@200 layers
GPUFrameBuffer ** target_fb
struct GPENCIL_tVfx * next