Blender
V3.3
|
#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 |
Variables | |
DrawEngineType | draw_engine_gpencil_type |
#define GP_MAX_MASKBITS 256 |
Definition at line 43 of file gpencil_engine.h.
#define GPENCIL_PIXEL_FACTOR 2000.0f |
Definition at line 38 of file gpencil_engine.h.
#define GPENCIL_VBO_BLOCK_SIZE 128 |
Definition at line 41 of file gpencil_engine.h.
typedef struct GPENCIL_Data GPENCIL_Data |
typedef struct GPENCIL_FramebufferList GPENCIL_FramebufferList |
typedef struct GPENCIL_LightPool GPENCIL_LightPool |
typedef struct GPENCIL_MaterialPool GPENCIL_MaterialPool |
typedef struct GPENCIL_PassList GPENCIL_PassList |
typedef struct GPENCIL_PrivateData GPENCIL_PrivateData |
typedef struct GPENCIL_StorageList GPENCIL_StorageList |
typedef struct GPENCIL_TextureList GPENCIL_TextureList |
typedef struct GPENCIL_tLayer GPENCIL_tLayer |
typedef struct GPENCIL_tObject GPENCIL_tObject |
typedef struct GPENCIL_tVfx GPENCIL_tVfx |
typedef struct GPENCIL_ViewLayerData GPENCIL_ViewLayerData |
void GPENCIL_antialiasing_draw | ( | struct GPENCIL_Data * | vedata | ) |
Definition at line 121 of file gpencil_antialiasing.c.
References DRW_draw_pass(), GPENCIL_Data::fbl, GPU_framebuffer_bind(), GPENCIL_StorageList::pd, GPENCIL_Data::psl, GPENCIL_PrivateData::scene_fb, GPENCIL_PrivateData::simplify_antialias, GPENCIL_FramebufferList::smaa_edge_fb, GPENCIL_PassList::smaa_edge_ps, GPENCIL_PassList::smaa_resolve_ps, GPENCIL_FramebufferList::smaa_weight_fb, GPENCIL_PassList::smaa_weight_ps, and GPENCIL_Data::stl.
Referenced by GPENCIL_draw_scene().
void GPENCIL_antialiasing_init | ( | struct GPENCIL_Data * | vedata | ) |
Definition at line 14 of file gpencil_antialiasing.c.
References AREATEX_HEIGHT, AREATEX_WIDTH, areaTexBytes, GPENCIL_PrivateData::color_tx, draw_engine_gpencil_type, GPENCIL_PrivateData::draw_wireframe, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_clear_framebuffer(), DRW_shgroup_create(), DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_vec4_copy(), DRW_STATE_BLEND_CUSTOM, DRW_STATE_WRITE_COLOR, DRW_texture_pool_query_2d(), DRW_viewport_invert_size_get(), DRW_viewport_size_get(), GPENCIL_Data::fbl, GPENCIL_shader_antialiasing(), GPU_COLOR_BIT, GPU_DATA_UBYTE, GPU_R8, GPU_RG8, GPU_RGBA8, GPU_texture_create_2d(), GPU_texture_filter_mode(), GPU_texture_update(), Scene::grease_pencil_settings, NULL, GPENCIL_StorageList::pd, GPENCIL_Data::psl, GPENCIL_PrivateData::reveal_tx, GPENCIL_PrivateData::scene, SEARCHTEX_HEIGHT, SEARCHTEX_WIDTH, searchTexBytes, sh, GPENCIL_PrivateData::simplify_antialias, size(), GPENCIL_TextureList::smaa_area_tx, GPENCIL_FramebufferList::smaa_edge_fb, GPENCIL_PassList::smaa_edge_ps, GPENCIL_PrivateData::smaa_edge_tx, GPENCIL_PassList::smaa_resolve_ps, GPENCIL_TextureList::smaa_search_tx, SceneGpencil::smaa_threshold, GPENCIL_FramebufferList::smaa_weight_fb, GPENCIL_PassList::smaa_weight_ps, GPENCIL_PrivateData::smaa_weight_tx, GPENCIL_Data::stl, and GPENCIL_Data::txl.
Referenced by GPENCIL_cache_finish().
struct GpencilBatchCache* gpencil_batch_cache_get | ( | struct Object * | ob, |
int | cfra | ||
) |
Definition at line 649 of file gpencil_engine.c.
References BLI_memblock_iternew(), BLI_memblock_iterstep(), GPENCIL_PrivateData::color_layer_tx, GPENCIL_PrivateData::color_object_tx, GPENCIL_PrivateData::color_tx, GPENCIL_PrivateData::depth_tx, draw_engine_gpencil_type, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), GPENCIL_Data::fbl, GPENCIL_PrivateData::first, GPENCIL_PrivateData::gp_light_pool, GPENCIL_PrivateData::gp_material_pool, GPENCIL_antialiasing_init(), GPENCIL_FramebufferList::gpencil_fb, gpencil_object_cache_sort(), GPU_DEPTH24_STENCIL8, GPU_R11F_G11F_B10F, GPU_R16, GPU_R8, GPU_RGBA16F, GPU_uniformbuf_update(), GPENCIL_PrivateData::is_render, GPENCIL_FramebufferList::layer_fb, GPENCIL_LightPool::light_data, GPENCIL_FramebufferList::mask_fb, GPENCIL_PrivateData::mask_tx, GPENCIL_FramebufferList::object_fb, GPENCIL_StorageList::pd, blender::compositor::pool, GPENCIL_PrivateData::reveal_layer_tx, GPENCIL_PrivateData::reveal_object_tx, GPENCIL_PrivateData::reveal_tx, size(), GPENCIL_Data::stl, GPENCIL_PrivateData::tobjects, GPENCIL_LightPool::ubo, GPENCIL_PrivateData::use_layer_fb, GPENCIL_PrivateData::use_mask_fb, GPENCIL_PrivateData::use_object_fb, and GPENCIL_PrivateData::use_signed_fb.
Referenced by GPENCIL_render_to_image().
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().
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().
Definition at line 908 of file gpencil_engine.c.
References GPENCIL_PrivateData::do_fast_drawing, GPENCIL_PrivateData::draw_depth_only, DRW_cache_gpencil_sbuffer_clear(), ED_view3d_background_color_get(), GPENCIL_PrivateData::fade_3d_object_opacity, GPENCIL_Data::fbl, GPENCIL_PrivateData::first, GPENCIL_PrivateData::gp_layer_pool, GPENCIL_PrivateData::gp_maskbit_pool, GPENCIL_PrivateData::gp_object_pool, GPENCIL_PrivateData::gp_vfx_pool, GPENCIL_antialiasing_draw(), GPENCIL_draw_object(), GPENCIL_draw_scene_depth_only(), GPENCIL_fast_draw_end(), GPENCIL_fast_draw_start(), GPENCIL_FramebufferList::gpencil_fb, GPU_framebuffer_bind(), GPU_framebuffer_multi_clear(), interp_v3_v3v3(), GPENCIL_PrivateData::is_render, LISTBASE_FOREACH, mul_v4_fl(), NULL, OB_GPENCIL, GPENCIL_PrivateData::obact, GPENCIL_StorageList::pd, GPENCIL_PrivateData::sbuffer_gpd, GPENCIL_PrivateData::scene, GPENCIL_PrivateData::scene_fb, GPENCIL_Data::stl, GPENCIL_PrivateData::tobjects, Object::type, and GPENCIL_PrivateData::v3d.
Referenced by GPENCIL_render_to_image().
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_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().
void gpencil_light_ambient_add | ( | GPENCIL_LightPool * | lightpool, |
const float | color[3] | ||
) |
Definition at line 342 of file gpencil_draw_data.c.
References gpLight::color, color, copy_v3_v3(), GP_LIGHT_TYPE_AMBIENT, GPENCIL_LIGHT_BUFFER_LEN, GPENCIL_LightPool::light_data, GPENCIL_LightPool::light_used, and gpLight::type.
Referenced by GPENCIL_engine_init().
GPENCIL_LightPool* gpencil_light_pool_add | ( | GPENCIL_PrivateData * | pd | ) |
Definition at line 329 of file gpencil_draw_data.c.
References BLI_memblock_alloc(), gpLight::color, GPENCIL_PrivateData::gp_light_pool, GPU_uniformbuf_create, GPENCIL_PrivateData::last_light_pool, GPENCIL_LightPool::light_data, GPENCIL_LightPool::light_used, NULL, and GPENCIL_LightPool::ubo.
Referenced by GPENCIL_engine_init(), and 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.
Definition at line 434 of file gpencil_draw_data.c.
References DRW_UBO_FREE_SAFE, and GPENCIL_LightPool::ubo.
Referenced by GPENCIL_engine_init(), and gpencil_view_layer_data_free().
void gpencil_light_pool_populate | ( | GPENCIL_LightPool * | lightpool, |
Object * | ob | ||
) |
Definition at line 371 of file gpencil_draw_data.c.
References gpLight::color, copy_m4_m4(), copy_v3_v3(), copy_v4_v4(), cosf, Object::data, Light::energy, float(), gpLight::forward, GP_LIGHT_TYPE_POINT, GP_LIGHT_TYPE_SPOT, GP_LIGHT_TYPE_SUN, GPENCIL_LIGHT_BUFFER_LEN, if(), Object::imat, invert_m4(), LA_AREA, LA_SPOT, LA_SUN, GPENCIL_LightPool::light_data, light_power_get(), GPENCIL_LightPool::light_used, M_PI_2, mul_v3_fl(), normalize_m4_m4(), normalize_v3_v3(), Object::obmat, gpLight::position, Light::r, gpLight::right, gpLight::spot_blend, gpLight::spot_size, Light::spotblend, Light::spotsize, gpLight::type, and Light::type.
Referenced by GPENCIL_cache_populate().
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().
Definition at line 428 of file gpencil_draw_data.c.
References DRW_UBO_FREE_SAFE, and GPENCIL_MaterialPool::ubo.
Referenced by GPENCIL_engine_init(), and gpencil_view_layer_data_free().
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 | ||
) |
Definition at line 302 of file gpencil_draw_data.c.
References GPENCIL_MATERIAL_BUFFER_LEN, GPENCIL_MaterialPool::next, GPENCIL_MaterialPool::tex_fill, GPENCIL_MaterialPool::tex_stroke, and GPENCIL_MaterialPool::ubo.
Referenced by gpencil_layer_cache_populate(), and gpencil_stroke_cache_populate().
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().
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.
void GPENCIL_render_to_image | ( | void * | vedata, |
struct RenderEngine * | engine, | ||
struct RenderLayer * | render_layer, | ||
const rcti * | rect | ||
) |
Definition at line 227 of file gpencil_render.c.
References GPENCIL_PrivateData::camera, DEG_get_evaluated_object(), depsgraph, DRWContextState::depsgraph, DRW_context_state_get(), DRW_render_instance_buffer_finish(), DRW_render_object_iter(), GPENCIL_cache_finish(), GPENCIL_cache_init(), GPENCIL_draw_scene(), GPENCIL_engine_init(), GPENCIL_render_cache(), GPENCIL_render_init(), GPENCIL_render_result_combined(), GPENCIL_render_result_z(), GPENCIL_StorageList::pd, RenderEngine::re, RE_GetActiveRenderView(), RE_GetCamera(), and GPENCIL_Data::stl.
struct GPUShader* GPENCIL_shader_antialiasing | ( | int | stage | ) |
Definition at line 71 of file gpencil_shader.c.
References BLI_assert, g_shaders, GPU_shader_create_from_info_name(), SNPRINTF, and stage.
Referenced by GPENCIL_antialiasing_init(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 107 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by GPENCIL_cache_init(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 51 of file gpencil_shader.c.
References DRW_SHADER_FREE_SAFE, and g_shaders.
Referenced by GPENCIL_engine_free(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 117 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_blur(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 125 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_colorize(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 133 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by blender::draw::test_gpencil_glsl_shaders().
Definition at line 141 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_glow(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 149 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_pixelize(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 157 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_rim(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 165 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_shadow(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 173 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_vfx_flip(), gpencil_vfx_swirl(), gpencil_vfx_wave(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 83 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_layer_cache_add(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 91 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by gpencil_layer_cache_add(), and blender::draw::test_gpencil_glsl_shaders().
Definition at line 99 of file gpencil_shader.c.
References g_shaders, and GPU_shader_create_from_info_name().
Referenced by GPENCIL_cache_init(), and blender::draw::test_gpencil_glsl_shaders().
void gpencil_vfx_cache_populate | ( | GPENCIL_Data * | vedata, |
Object * | ob, | ||
GPENCIL_tObject * | tgp_ob | ||
) |
Definition at line 577 of file gpencil_shader_fx.c.
References Object::data, GPENCIL_Data::fbl, GPENCIL_StorageList::pd, gpIterVfxData::pd, and GPENCIL_Data::stl.
Referenced by GPENCIL_cache_populate(), and gpencil_sbuffer_cache_populate_fast().
GPENCIL_ViewLayerData* GPENCIL_view_layer_data_ensure | ( | void | ) |
Definition at line 458 of file gpencil_draw_data.c.
References BLI_BITMAP_SIZE, BLI_memblock_create, draw_engine_gpencil_type, DRW_view_layer_engine_data_ensure(), GP_MAX_MASKBITS, gpencil_view_layer_data_free(), MEM_callocN, and NULL.
Referenced by GPENCIL_engine_init().
|
extern |
Definition at line 971 of file gpencil_engine.c.
Referenced by DRW_draw_depth_loop(), DRW_draw_select_loop(), drw_engines_enable(), DRW_engines_register(), DRW_render_gpencil_to_image(), GPENCIL_antialiasing_init(), GPENCIL_cache_finish(), and GPENCIL_view_layer_data_ensure().