From e89d42ddffef8892a8eb52d29e2a7329ad381204 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 8 Dec 2021 20:29:39 +1100 Subject: Cleanup: move public doc-strings into headers for 'draw' Ref T92709 --- .../blender/draw/engines/eevee/eevee_cryptomatte.c | 3 - source/blender/draw/engines/eevee/eevee_effects.c | 6 -- .../blender/draw/engines/eevee/eevee_lightcache.c | 3 - .../blender/draw/engines/eevee/eevee_lightcache.h | 15 +++- .../blender/draw/engines/eevee/eevee_lightprobes.c | 5 -- source/blender/draw/engines/eevee/eevee_lights.c | 1 - .../blender/draw/engines/eevee/eevee_materials.c | 3 - source/blender/draw/engines/eevee/eevee_private.h | 94 ++++++++++++++++++++++ source/blender/draw/engines/eevee/eevee_render.c | 2 - .../draw/engines/eevee/eevee_renderpasses.c | 11 --- source/blender/draw/engines/eevee/eevee_sampling.c | 6 -- source/blender/draw/engines/eevee/eevee_shaders.c | 3 - source/blender/draw/engines/eevee/eevee_shadows.c | 2 - .../draw/engines/eevee/eevee_shadows_cube.c | 1 - .../draw/engines/eevee/eevee_temporal_sampling.c | 2 - .../draw/engines/gpencil/gpencil_draw_data.c | 8 -- .../blender/draw/engines/gpencil/gpencil_engine.h | 12 +++ .../blender/draw/engines/gpencil/gpencil_render.c | 1 - .../draw/engines/overlay/overlay_armature.c | 3 - .../blender/draw/engines/overlay/overlay_image.c | 2 - .../blender/draw/engines/overlay/overlay_private.h | 7 ++ .../workbench/workbench_effect_antialiasing.c | 1 - .../draw/engines/workbench/workbench_engine.c | 2 - .../draw/engines/workbench/workbench_materials.c | 1 - .../draw/engines/workbench/workbench_private.h | 14 ++++ .../draw/engines/workbench/workbench_transparent.c | 2 - 26 files changed, 140 insertions(+), 70 deletions(-) (limited to 'source/blender/draw/engines') diff --git a/source/blender/draw/engines/eevee/eevee_cryptomatte.c b/source/blender/draw/engines/eevee/eevee_cryptomatte.c index 1b8e967e38f..80207523a65 100644 --- a/source/blender/draw/engines/eevee/eevee_cryptomatte.c +++ b/source/blender/draw/engines/eevee/eevee_cryptomatte.c @@ -435,9 +435,6 @@ void EEVEE_cryptomatte_output_accumulate(EEVEE_ViewLayerData *UNUSED(sldata), EE /** \name Update Render Passes * \{ */ -/* Register the render passes needed for cryptomatte - * normally this is done in `EEVEE_render_update_passes`, but it has been placed here to keep - * related code side-by-side for clarity. */ void EEVEE_cryptomatte_update_passes(RenderEngine *engine, Scene *scene, ViewLayer *view_layer) { char cryptomatte_pass_name[MAX_NAME]; diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c index c2f3e3a6d95..3d32b4acd82 100644 --- a/source/blender/draw/engines/eevee/eevee_effects.c +++ b/source/blender/draw/engines/eevee/eevee_effects.c @@ -411,9 +411,6 @@ static void downsample_radiance_cb(void *vedata, int level) DRW_draw_pass(psl->color_downsample_ps); } -/** - * Simple down-sampling algorithm. Reconstruct mip chain up to mip level. - */ void EEVEE_effects_downsample_radiance_buffer(EEVEE_Data *vedata, GPUTexture *texture_src) { EEVEE_PassList *psl = vedata->psl; @@ -430,9 +427,6 @@ void EEVEE_effects_downsample_radiance_buffer(EEVEE_Data *vedata, GPUTexture *te DRW_stats_group_end(); } -/** - * Simple down-sampling algorithm for cube-map. Reconstruct mip chain up to mip level. - */ void EEVEE_downsample_cube_buffer(EEVEE_Data *vedata, GPUTexture *texture_src, int level) { EEVEE_FramebufferList *fbl = vedata->fbl; diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.c b/source/blender/draw/engines/eevee/eevee_lightcache.c index 9a85037ac77..bcbe17fdabc 100644 --- a/source/blender/draw/engines/eevee/eevee_lightcache.c +++ b/source/blender/draw/engines/eevee/eevee_lightcache.c @@ -806,7 +806,6 @@ wmJob *EEVEE_lightbake_job_create(struct wmWindowManager *wm, return wm_job; } -/* MUST run on the main thread. */ void *EEVEE_lightbake_job_data_alloc(struct Main *bmain, struct ViewLayer *view_layer, struct Scene *scene, @@ -1484,8 +1483,6 @@ void EEVEE_lightbake_job(void *custom_data, short *stop, short *do_update, float EEVEE_volumes_free_smoke_textures(); } -/* This is to update the world irradiance and reflection contribution from - * within the viewport drawing (does not have the overhead of a full light cache rebuild.) */ void EEVEE_lightbake_update_world_quick(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, const Scene *scene) diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.h b/source/blender/draw/engines/eevee/eevee_lightcache.h index fde0c80ab37..ccd53f6c037 100644 --- a/source/blender/draw/engines/eevee/eevee_lightcache.h +++ b/source/blender/draw/engines/eevee/eevee_lightcache.h @@ -33,7 +33,9 @@ struct Scene; struct SceneEEVEE; struct ViewLayer; -/* Light Bake */ +/** + * Light Bake. + */ struct wmJob *EEVEE_lightbake_job_create(struct wmWindowManager *wm, struct wmWindow *win, struct Main *bmain, @@ -41,6 +43,9 @@ struct wmJob *EEVEE_lightbake_job_create(struct wmWindowManager *wm, struct Scene *scene, int delay, int frame); +/** + * MUST run on the main thread. + */ void *EEVEE_lightbake_job_data_alloc(struct Main *bmain, struct ViewLayer *view_layer, struct Scene *scene, @@ -50,11 +55,17 @@ void EEVEE_lightbake_job_data_free(void *custom_data); void EEVEE_lightbake_update(void *custom_data); void EEVEE_lightbake_job(void *custom_data, short *stop, short *do_update, float *progress); +/** + * This is to update the world irradiance and reflection contribution from + * within the viewport drawing (does not have the overhead of a full light cache rebuild.) + */ void EEVEE_lightbake_update_world_quick(struct EEVEE_ViewLayerData *sldata, struct EEVEE_Data *vedata, const Scene *scene); -/* Light Cache */ +/** + * Light Cache. + */ struct LightCache *EEVEE_lightcache_create(const int grid_len, const int cube_len, const int cube_size, diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c b/source/blender/draw/engines/eevee/eevee_lightprobes.c index ab083253499..d9fc12d14a8 100644 --- a/source/blender/draw/engines/eevee/eevee_lightprobes.c +++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c @@ -202,7 +202,6 @@ void EEVEE_lightprobes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) } } -/* Only init the passes useful for rendering the light cache. */ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, GPUTexture *rt_color, @@ -871,7 +870,6 @@ static void lightbake_render_scene_face(int face, EEVEE_BakeRenderData *user_dat DRW_draw_pass(psl->transparent_pass); } -/* Render the scene to the probe_rt texture. */ void EEVEE_lightbake_render_scene(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUFrameBuffer *face_fb[6], @@ -975,7 +973,6 @@ static void eevee_lightbake_render_scene_to_planars(EEVEE_ViewLayerData *sldata, /** \name Filtering * \{ */ -/* Glossy filter rt_color to light_cache->cube_tx.tex at index probe_idx */ void EEVEE_lightbake_filter_glossy(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, @@ -1064,7 +1061,6 @@ void EEVEE_lightbake_filter_glossy(EEVEE_ViewLayerData *sldata, } } -/* Diffuse filter rt_color to light_cache->grid_tx.tex at index grid_offset */ void EEVEE_lightbake_filter_diffuse(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, @@ -1117,7 +1113,6 @@ void EEVEE_lightbake_filter_diffuse(EEVEE_ViewLayerData *sldata, GPU_framebuffer_viewport_reset(fb); } -/* Filter rt_depth to light_cache->grid_tx.tex at index grid_offset */ void EEVEE_lightbake_filter_visibility(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *UNUSED(rt_depth), diff --git a/source/blender/draw/engines/eevee/eevee_lights.c b/source/blender/draw/engines/eevee/eevee_lights.c index afaf604322c..4ed968e2935 100644 --- a/source/blender/draw/engines/eevee/eevee_lights.c +++ b/source/blender/draw/engines/eevee/eevee_lights.c @@ -28,7 +28,6 @@ #include "eevee_private.h" -/* Reconstruct local obmat from EEVEE_light. (normalized) */ void eevee_light_matrix_get(const EEVEE_Light *evli, float r_mat[4][4]) { copy_v3_v3(r_mat[0], evli->rightvec); diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c index 582540529a6..a0522ad94d2 100644 --- a/source/blender/draw/engines/eevee/eevee_materials.c +++ b/source/blender/draw/engines/eevee/eevee_materials.c @@ -76,9 +76,6 @@ struct GPUTexture *EEVEE_materials_get_util_tex(void) return e_data.util_tex; } -/** - * ssr_id can be null to disable ssr contribution. - */ void EEVEE_material_bind_resources(DRWShadingGroup *shgrp, GPUMaterial *gpumat, EEVEE_ViewLayerData *sldata, diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h index 87f84ec584d..f0d518a58b1 100644 --- a/source/blender/draw/engines/eevee/eevee_private.h +++ b/source/blender/draw/engines/eevee/eevee_private.h @@ -1073,6 +1073,7 @@ typedef struct EEVEE_PrivateData { } EEVEE_PrivateData; /* Transient data */ /* eevee_data.c */ + void EEVEE_motion_blur_data_init(EEVEE_MotionBlurData *mb); void EEVEE_motion_blur_data_free(EEVEE_MotionBlurData *mb); void EEVEE_view_layer_data_free(void *storage); @@ -1097,6 +1098,7 @@ EEVEE_WorldEngineData *EEVEE_world_data_ensure(World *wo); void eevee_id_update(void *vedata, ID *id); /* eevee_materials.c */ + struct GPUTexture *EEVEE_materials_get_util_tex(void); /* XXX */ void EEVEE_materials_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, @@ -1121,6 +1123,9 @@ void EEVEE_update_noise(EEVEE_PassList *psl, EEVEE_FramebufferList *fbl, const d void EEVEE_material_renderpasses_init(EEVEE_Data *vedata); void EEVEE_material_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples); void EEVEE_material_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); +/** + * \param ssr_id: Can be null to disable SSR contribution. + */ void EEVEE_material_bind_resources(DRWShadingGroup *shgrp, struct GPUMaterial *gpumat, EEVEE_ViewLayerData *sldata, @@ -1130,20 +1135,34 @@ void EEVEE_material_bind_resources(DRWShadingGroup *shgrp, bool use_ssrefraction, bool use_alpha_blend); /* eevee_lights.c */ + +/** + * Reconstruct local `obmat` from EEVEE_light. (normalized). + */ void eevee_light_matrix_get(const EEVEE_Light *evli, float r_mat[4][4]); void EEVEE_lights_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_lights_cache_add(EEVEE_ViewLayerData *sldata, struct Object *ob); void EEVEE_lights_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); /* eevee_shadows.c */ + void eevee_contact_shadow_setup(const Light *la, EEVEE_Shadow *evsh); void EEVEE_shadows_init(EEVEE_ViewLayerData *sldata); void EEVEE_shadows_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); +/** + * Make that object update shadow casting lights inside its influence bounding box. + */ void EEVEE_shadows_caster_register(EEVEE_ViewLayerData *sldata, struct Object *ob); void EEVEE_shadows_update(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_shadows_cube_add(EEVEE_LightsInfo *linfo, EEVEE_Light *evli, struct Object *ob); +/** + * Return true if sample has changed and light needs to be updated. + */ bool EEVEE_shadows_cube_setup(EEVEE_LightsInfo *linfo, const EEVEE_Light *evli, int sample_ofs); void EEVEE_shadows_cascade_add(EEVEE_LightsInfo *linfo, EEVEE_Light *evli, struct Object *ob); +/** + * This refresh lights shadow buffers. + */ void EEVEE_shadows_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct DRWView *view); void EEVEE_shadows_draw_cubemap(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, int cube_index); void EEVEE_shadows_draw_cascades(EEVEE_ViewLayerData *sldata, @@ -1154,6 +1173,13 @@ void EEVEE_shadow_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, u void EEVEE_shadow_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); /* eevee_sampling.c */ + +/** + * Special ball distribution: + * Point are distributed in a way that when they are orthogonally + * projected into any plane, the resulting distribution is (close to) + * a uniform disc distribution. + */ void EEVEE_sample_ball(int sample_ofs, float radius, float rsample[3]); void EEVEE_sample_rectangle(int sample_ofs, const float x_axis[3], @@ -1170,6 +1196,7 @@ void EEVEE_sample_ellipse(int sample_ofs, void EEVEE_random_rotation_m4(int sample_ofs, float scale, float r_mat[4][4]); /* eevee_shaders.c */ + void EEVEE_shaders_material_shaders_init(void); struct DRWShaderLibrary *EEVEE_shader_lib_get(void); struct GPUShader *EEVEE_shaders_bloom_blit_get(bool high_quality); @@ -1236,18 +1263,28 @@ struct GPUShader *EEVEE_shaders_probe_planar_display_sh_get(void); struct GPUShader *EEVEE_shaders_update_noise_sh_get(void); struct GPUShader *EEVEE_shaders_velocity_resolve_sh_get(void); struct GPUShader *EEVEE_shaders_taa_resolve_sh_get(EEVEE_EffectsFlag enabled_effects); +/** + * Configure a default node-tree with the given material. + */ struct bNodeTree *EEVEE_shader_default_surface_nodetree(Material *ma); +/** + * Configure a default node-tree with the given world. + */ struct bNodeTree *EEVEE_shader_default_world_nodetree(World *wo); Material *EEVEE_material_default_diffuse_get(void); Material *EEVEE_material_default_glossy_get(void); Material *EEVEE_material_default_error_get(void); World *EEVEE_world_default_get(void); +/** + * \note Compilation is not deferred. + */ struct GPUMaterial *EEVEE_material_default_get(struct Scene *scene, Material *ma, int options); struct GPUMaterial *EEVEE_material_get( EEVEE_Data *vedata, struct Scene *scene, Material *ma, World *wo, int options); void EEVEE_shaders_free(void); /* eevee_lightprobes.c */ + bool EEVEE_lightprobes_obj_visibility_cb(bool vis_in, void *user_data); void EEVEE_lightprobes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); @@ -1257,6 +1294,9 @@ void EEVEE_lightprobes_refresh(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_lightprobes_refresh_planar(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_lightprobes_free(void); +/** + * Only initialize the passes useful for rendering the light cache. + */ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, GPUTexture *rt_color, @@ -1264,12 +1304,18 @@ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata, void EEVEE_lightbake_render_world(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUFrameBuffer *face_fb[6]); +/** + * Render the scene to the `probe_rt` texture. + */ void EEVEE_lightbake_render_scene(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUFrameBuffer *face_fb[6], const float pos[3], float near_clip, float far_clip); +/** + * Glossy filter `rt_color` to `light_cache->cube_tx.tex` at index `probe_idx`. + */ void EEVEE_lightbake_filter_glossy(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, @@ -1279,12 +1325,18 @@ void EEVEE_lightbake_filter_glossy(EEVEE_ViewLayerData *sldata, int maxlevel, float filter_quality, float firefly_fac); +/** + * Diffuse filter `rt_color` to `light_cache->grid_tx.tex` at index `grid_offset`. + */ void EEVEE_lightbake_filter_diffuse(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, struct GPUFrameBuffer *fb, int grid_offset, float intensity); +/** + * Filter `rt_depth` to `light_cache->grid_tx.tex` at index `grid_offset`. + */ void EEVEE_lightbake_filter_visibility(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_depth, @@ -1303,6 +1355,7 @@ void EEVEE_lightprobes_planar_data_from_object(Object *ob, EEVEE_LightProbeVisTest *vis_test); /* eevee_depth_of_field.c */ + int EEVEE_depth_of_field_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera); void EEVEE_depth_of_field_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_depth_of_field_draw(EEVEE_Data *vedata); @@ -1314,6 +1367,7 @@ int EEVEE_depth_of_field_sample_count_get(EEVEE_EffectsInfo *effects, int *r_ring_count); /* eevee_bloom.c */ + int EEVEE_bloom_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_bloom_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_bloom_draw(EEVEE_Data *vedata); @@ -1321,6 +1375,7 @@ void EEVEE_bloom_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, ui void EEVEE_bloom_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); /* eevee_cryptomatte.c */ + void EEVEE_cryptomatte_renderpasses_init(EEVEE_Data *vedata); void EEVEE_cryptomatte_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, @@ -1334,6 +1389,11 @@ void EEVEE_cryptomatte_object_hair_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob); void EEVEE_cryptomatte_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); +/** + * Register the render passes needed for cryptomatte + * normally this is done in `EEVEE_render_update_passes`, but it has been placed here to keep + * related code side-by-side for clarity. + */ void EEVEE_cryptomatte_update_passes(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer); @@ -1409,6 +1469,17 @@ void EEVEE_renderpasses_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *ve void EEVEE_renderpasses_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, bool post_effect); +/** + * Post-process data to construct a specific render-pass + * + * This method will create a shading group to perform the post-processing for the given + * `renderpass_type`. The post-processing will be done and the result will be stored in the + * `vedata->txl->renderpass` texture. + * + * Only invoke this function for passes that need post-processing. + * + * After invoking this function the active frame-buffer is set to `vedata->fbl->renderpass_fb`. + */ void EEVEE_renderpasses_postprocess(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, eViewLayerEEVEEPassType renderpass_type, @@ -1416,6 +1487,10 @@ void EEVEE_renderpasses_postprocess(EEVEE_ViewLayerData *sldata, void EEVEE_renderpasses_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_renderpasses_draw_debug(EEVEE_Data *vedata); bool EEVEE_renderpasses_only_first_sample_pass_active(EEVEE_Data *vedata); +/** + * Calculate the hash for an AOV. The least significant bit is used to store the AOV + * type the rest of the bits are used for the name hash. + */ int EEVEE_renderpasses_aov_hash(const ViewLayerAOV *aov); /* eevee_temporal_sampling.c */ @@ -1427,11 +1502,16 @@ void EEVEE_temporal_sampling_offset_calc(const double ht_point[2], const float filter_size, float r_offset[2]); void EEVEE_temporal_sampling_matrices_calc(EEVEE_EffectsInfo *effects, const double ht_point[2]); +/** + * Update the matrices based on the current sample. + * \note `DRW_MAT_PERS` and `DRW_MAT_VIEW` needs to read the original matrices. + */ void EEVEE_temporal_sampling_update_matrices(EEVEE_Data *vedata); void EEVEE_temporal_sampling_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_temporal_sampling_draw(EEVEE_Data *vedata); /* eevee_volumes.c */ + void EEVEE_volumes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_volumes_set_jitter(EEVEE_ViewLayerData *sldata, uint current_sample); void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); @@ -1449,18 +1529,29 @@ void EEVEE_volumes_free_smoke_textures(void); void EEVEE_volumes_free(void); /* eevee_effects.c */ + void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, const bool minimal); void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); void EEVEE_effects_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); +/** + * Simple down-sampling algorithm. Reconstruct mip chain up to mip level. + */ void EEVEE_effects_downsample_radiance_buffer(EEVEE_Data *vedata, struct GPUTexture *texture_src); void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, struct GPUTexture *depth_src, int layer); +/** + * Simple down-sampling algorithm for cube-map. Reconstruct mip chain up to mip level. + */ void EEVEE_downsample_cube_buffer(EEVEE_Data *vedata, struct GPUTexture *texture_src, int level); void EEVEE_draw_effects(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); /* eevee_render.c */ + +/** + * Return true if initialized properly. + */ bool EEVEE_render_init(EEVEE_Data *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph); @@ -1471,6 +1562,9 @@ void EEVEE_render_modules_init(EEVEE_Data *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph); void EEVEE_render_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata); +/** + * Used by light cache. in this case engine is NULL. + */ void EEVEE_render_cache(void *vedata, struct Object *ob, struct RenderEngine *engine, diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c index 5db0ca70dc9..9e7a67060da 100644 --- a/source/blender/draw/engines/eevee/eevee_render.c +++ b/source/blender/draw/engines/eevee/eevee_render.c @@ -46,7 +46,6 @@ #include "eevee_private.h" -/* Return true if init properly. */ bool EEVEE_render_init(EEVEE_Data *ved, RenderEngine *engine, struct Depsgraph *depsgraph) { EEVEE_Data *vedata = (EEVEE_Data *)ved; @@ -194,7 +193,6 @@ void EEVEE_render_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) EEVEE_cryptomatte_cache_init(sldata, vedata); } -/* Used by light cache. in this case engine is NULL. */ void EEVEE_render_cache(void *vedata, struct Object *ob, struct RenderEngine *engine, diff --git a/source/blender/draw/engines/eevee/eevee_renderpasses.c b/source/blender/draw/engines/eevee/eevee_renderpasses.c index aa42deb13fa..3ebfc8a8f0f 100644 --- a/source/blender/draw/engines/eevee/eevee_renderpasses.c +++ b/source/blender/draw/engines/eevee/eevee_renderpasses.c @@ -75,8 +75,6 @@ bool EEVEE_renderpasses_only_first_sample_pass_active(EEVEE_Data *vedata) return (g_data->render_passes & ~EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE) == 0; } -/* Calculate the hash for an AOV. The least significant bit is used to store the AOV - * type the rest of the bits are used for the name hash. */ int EEVEE_renderpasses_aov_hash(const ViewLayerAOV *aov) { int hash = BLI_hash_string(aov->name) << 1; @@ -257,15 +255,6 @@ void EEVEE_renderpasses_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *ve } } -/* Post-process data to construct a specific render-pass - * - * This method will create a shading group to perform the post-processing for the given - * `renderpass_type`. The post-processing will be done and the result will be stored in the - * `vedata->txl->renderpass` texture. - * - * Only invoke this function for passes that need post-processing. - * - * After invoking this function the active frame-buffer is set to `vedata->fbl->renderpass_fb`. */ void EEVEE_renderpasses_postprocess(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata, eViewLayerEEVEEPassType renderpass_type, diff --git a/source/blender/draw/engines/eevee/eevee_sampling.c b/source/blender/draw/engines/eevee/eevee_sampling.c index da4bd20106c..99d14bd2c82 100644 --- a/source/blender/draw/engines/eevee/eevee_sampling.c +++ b/source/blender/draw/engines/eevee/eevee_sampling.c @@ -24,12 +24,6 @@ #include "BLI_rand.h" -/** - * Special ball distribution: - * Point are distributed in a way that when they are orthogonally - * projected into any plane, the resulting distribution is (close to) - * a uniform disc distribution. - */ void EEVEE_sample_ball(int sample_ofs, float radius, float rsample[3]) { double ht_point[3]; diff --git a/source/blender/draw/engines/eevee/eevee_shaders.c b/source/blender/draw/engines/eevee/eevee_shaders.c index 56ae7185b51..8550eefea66 100644 --- a/source/blender/draw/engines/eevee/eevee_shaders.c +++ b/source/blender/draw/engines/eevee/eevee_shaders.c @@ -1274,7 +1274,6 @@ Material *EEVEE_material_default_error_get(void) return e_data.error_mat; } -/* Configure a default nodetree with the given material. */ struct bNodeTree *EEVEE_shader_default_surface_nodetree(Material *ma) { /* WARNING: This function is not threadsafe. Which is not a problem for the moment. */ @@ -1302,7 +1301,6 @@ struct bNodeTree *EEVEE_shader_default_surface_nodetree(Material *ma) return e_data.surface.ntree; } -/* Configure a default nodetree with the given world. */ struct bNodeTree *EEVEE_shader_default_world_nodetree(World *wo) { /* WARNING: This function is not threadsafe. Which is not a problem for the moment. */ @@ -1493,7 +1491,6 @@ static struct GPUMaterial *eevee_material_get_ex( return mat; } -/* NOTE: Compilation is not deferred. */ struct GPUMaterial *EEVEE_material_default_get(struct Scene *scene, Material *ma, int options) { Material *def_ma = (ma && (options & VAR_MAT_VOLUME)) ? BKE_material_default_volume() : diff --git a/source/blender/draw/engines/eevee/eevee_shadows.c b/source/blender/draw/engines/eevee/eevee_shadows.c index ee1a6652809..d8a40fd13cc 100644 --- a/source/blender/draw/engines/eevee/eevee_shadows.c +++ b/source/blender/draw/engines/eevee/eevee_shadows.c @@ -123,7 +123,6 @@ void EEVEE_shadows_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) } } -/* Make that object update shadow casting lights inside its influence bounding box. */ void EEVEE_shadows_caster_register(EEVEE_ViewLayerData *sldata, Object *ob) { EEVEE_LightsInfo *linfo = sldata->lights; @@ -300,7 +299,6 @@ void EEVEE_shadows_update(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) } } -/* this refresh lights shadow buffers */ void EEVEE_shadows_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, DRWView *view) { EEVEE_LightsInfo *linfo = sldata->lights; diff --git a/source/blender/draw/engines/eevee/eevee_shadows_cube.c b/source/blender/draw/engines/eevee/eevee_shadows_cube.c index 89caa0dd193..ed9f05df13c 100644 --- a/source/blender/draw/engines/eevee/eevee_shadows_cube.c +++ b/source/blender/draw/engines/eevee/eevee_shadows_cube.c @@ -95,7 +95,6 @@ start: add_v3_v3(ws_sample_pos, jitter); } -/* Return true if sample has changed and light needs to be updated. */ bool EEVEE_shadows_cube_setup(EEVEE_LightsInfo *linfo, const EEVEE_Light *evli, int sample_ofs) { EEVEE_Shadow *shdw_data = linfo->shadow_data + (int)evli->shadow_id; diff --git a/source/blender/draw/engines/eevee/eevee_temporal_sampling.c b/source/blender/draw/engines/eevee/eevee_temporal_sampling.c index b03172a1270..361fa2704c9 100644 --- a/source/blender/draw/engines/eevee/eevee_temporal_sampling.c +++ b/source/blender/draw/engines/eevee/eevee_temporal_sampling.c @@ -196,8 +196,6 @@ void EEVEE_temporal_sampling_matrices_calc(EEVEE_EffectsInfo *effects, const dou DRW_view_update_sub(effects->taa_view, viewmat, winmat); } -/* Update the matrices based on the current sample. - * NOTE: `DRW_MAT_PERS` and `DRW_MAT_VIEW` needs to read the original matrices. */ void EEVEE_temporal_sampling_update_matrices(EEVEE_Data *vedata) { EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl; diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_data.c b/source/blender/draw/engines/gpencil/gpencil_draw_data.c index 4636b9e949a..8aba1090b58 100644 --- a/source/blender/draw/engines/gpencil/gpencil_draw_data.c +++ b/source/blender/draw/engines/gpencil/gpencil_draw_data.c @@ -176,11 +176,6 @@ static MaterialGPencilStyle *gpencil_viewport_material_overrides( return gp_style; } -/** - * 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. - */ GPENCIL_MaterialPool *gpencil_material_pool_create(GPENCIL_PrivateData *pd, Object *ob, int *ofs) { GPENCIL_MaterialPool *matpool = pd->last_material_pool; @@ -429,9 +424,6 @@ void gpencil_light_pool_populate(GPENCIL_LightPool *lightpool, Object *ob) } } -/** - * Creates a single pool containing all lights assigned (light linked) for a given object. - */ GPENCIL_LightPool *gpencil_light_pool_create(GPENCIL_PrivateData *pd, Object *UNUSED(ob)) { GPENCIL_LightPool *lightpool = pd->last_light_pool; diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h index 328e60cf60b..29a9c0211be 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.h +++ b/source/blender/draw/engines/gpencil/gpencil_engine.h @@ -392,6 +392,11 @@ GPENCIL_tLayer *gpencil_layer_cache_add(GPENCIL_PrivateData *pd, GPENCIL_tObject *tgp_ob); GPENCIL_tLayer *gpencil_layer_cache_get(GPENCIL_tObject *tgp_ob, int number); +/** + * 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. + */ GPENCIL_MaterialPool *gpencil_material_pool_create(GPENCIL_PrivateData *pd, Object *ob, int *ofs); void gpencil_material_resources_get(GPENCIL_MaterialPool *first_pool, int mat_id, @@ -402,6 +407,9 @@ void gpencil_material_resources_get(GPENCIL_MaterialPool *first_pool, void gpencil_light_ambient_add(GPENCIL_LightPool *lightpool, const float color[3]); void gpencil_light_pool_populate(GPENCIL_LightPool *lightpool, Object *ob); GPENCIL_LightPool *gpencil_light_pool_add(GPENCIL_PrivateData *pd); +/** + * Creates a single pool containing all lights assigned (light linked) for a given object. + */ GPENCIL_LightPool *gpencil_light_pool_create(GPENCIL_PrivateData *pd, Object *ob); /* effects */ @@ -436,6 +444,10 @@ void GPENCIL_cache_finish(void *vedata); void GPENCIL_draw_scene(void *vedata); /* render */ + +/** + * Initialize render data. + */ void GPENCIL_render_init(struct GPENCIL_Data *ved, struct RenderEngine *engine, struct RenderLayer *render_layer, diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c b/source/blender/draw/engines/gpencil/gpencil_render.c index b597a786e86..26a14c433b3 100644 --- a/source/blender/draw/engines/gpencil/gpencil_render.c +++ b/source/blender/draw/engines/gpencil/gpencil_render.c @@ -33,7 +33,6 @@ #include "gpencil_engine.h" -/* init render data */ void GPENCIL_render_init(GPENCIL_Data *vedata, RenderEngine *engine, struct RenderLayer *render_layer, diff --git a/source/blender/draw/engines/overlay/overlay_armature.c b/source/blender/draw/engines/overlay/overlay_armature.c index cc12f097526..efd9b21f2e8 100644 --- a/source/blender/draw/engines/overlay/overlay_armature.c +++ b/source/blender/draw/engines/overlay/overlay_armature.c @@ -104,9 +104,6 @@ typedef struct ArmatureDrawContext { const ThemeWireColor *bcolor; /* pchan color */ } ArmatureDrawContext; -/** - * Return true if armature should be handled by the pose mode engine. - */ bool OVERLAY_armature_is_pose_mode(Object *ob, const DRWContextState *draw_ctx) { Object *active_ob = draw_ctx->obact; diff --git a/source/blender/draw/engines/overlay/overlay_image.c b/source/blender/draw/engines/overlay/overlay_image.c index 2e9a9bc5c64..0608725d342 100644 --- a/source/blender/draw/engines/overlay/overlay_image.c +++ b/source/blender/draw/engines/overlay/overlay_image.c @@ -462,8 +462,6 @@ void OVERLAY_image_cache_finish(OVERLAY_Data *vedata) DRW_pass_sort_shgroup_z(psl->image_empties_back_ps); } -/* This function draws images that needs the view transform applied. - * It draws these images directly into the scene color buffer. */ void OVERLAY_image_scene_background_draw(OVERLAY_Data *vedata) { OVERLAY_PassList *psl = vedata->psl; diff --git a/source/blender/draw/engines/overlay/overlay_private.h b/source/blender/draw/engines/overlay/overlay_private.h index def278f98df..8e7c3094062 100644 --- a/source/blender/draw/engines/overlay/overlay_private.h +++ b/source/blender/draw/engines/overlay/overlay_private.h @@ -510,6 +510,9 @@ void OVERLAY_xray_fade_draw(OVERLAY_Data *vedata); void OVERLAY_xray_depth_copy(OVERLAY_Data *vedata); void OVERLAY_xray_depth_infront_copy(OVERLAY_Data *vedata); +/** + * Return true if armature should be handled by the pose mode engine. + */ bool OVERLAY_armature_is_pose_mode(Object *ob, const struct DRWContextState *draw_ctx); void OVERLAY_armature_cache_init(OVERLAY_Data *vedata); void OVERLAY_armature_cache_populate(OVERLAY_Data *vedata, Object *ob); @@ -631,6 +634,10 @@ void OVERLAY_image_empty_cache_populate(OVERLAY_Data *vedata, Object *ob); void OVERLAY_image_cache_finish(OVERLAY_Data *vedata); void OVERLAY_image_draw(OVERLAY_Data *vedata); void OVERLAY_image_background_draw(OVERLAY_Data *vedata); +/** + * This function draws images that needs the view transform applied. + * It draws these images directly into the scene color buffer. + */ void OVERLAY_image_scene_background_draw(OVERLAY_Data *vedata); void OVERLAY_image_in_front_draw(OVERLAY_Data *vedata); diff --git a/source/blender/draw/engines/workbench/workbench_effect_antialiasing.c b/source/blender/draw/engines/workbench/workbench_effect_antialiasing.c index 8206add7412..f4014fac41f 100644 --- a/source/blender/draw/engines/workbench/workbench_effect_antialiasing.c +++ b/source/blender/draw/engines/workbench/workbench_effect_antialiasing.c @@ -371,7 +371,6 @@ void workbench_antialiasing_cache_init(WORKBENCH_Data *vedata) } } -/* Return true if render is not cached. */ bool workbench_antialiasing_setup(WORKBENCH_Data *vedata) { WORKBENCH_PrivateData *wpd = vedata->stl->wpd; diff --git a/source/blender/draw/engines/workbench/workbench_engine.c b/source/blender/draw/engines/workbench/workbench_engine.c index 1db21cb4124..5bc2c53e253 100644 --- a/source/blender/draw/engines/workbench/workbench_engine.c +++ b/source/blender/draw/engines/workbench/workbench_engine.c @@ -473,8 +473,6 @@ void workbench_cache_finish(void *ved) } } -/* Used by viewport rendering & final rendering. - * Do one render loop iteration (i.e: One TAA sample). */ void workbench_draw_sample(void *ved) { WORKBENCH_Data *vedata = ved; diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index aaa1a5a6ff6..d70633eaa85 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -244,7 +244,6 @@ DRWShadingGroup *workbench_material_setup_ex(WORKBENCH_PrivateData *wpd, } } -/* If ima is null, search appropriate image node but will fallback to purple texture otherwise. */ DRWShadingGroup *workbench_image_setup_ex(WORKBENCH_PrivateData *wpd, Object *ob, int mat_nr, diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h index e17bd7d9956..42c873c7691 100644 --- a/source/blender/draw/engines/workbench/workbench_private.h +++ b/source/blender/draw/engines/workbench/workbench_private.h @@ -414,6 +414,10 @@ void workbench_opaque_cache_init(WORKBENCH_Data *data); /* workbench_transparent.c */ void workbench_transparent_engine_init(WORKBENCH_Data *data); void workbench_transparent_cache_init(WORKBENCH_Data *data); +/** + * Redraw the transparent passes but with depth test + * to output correct outline IDs and depth. + */ void workbench_transparent_draw_depth_pass(WORKBENCH_Data *data); /* workbench_shadow.c */ @@ -463,6 +467,9 @@ int workbench_antialiasing_sample_count_get(WORKBENCH_PrivateData *wpd); void workbench_antialiasing_engine_init(WORKBENCH_Data *vedata); void workbench_antialiasing_cache_init(WORKBENCH_Data *vedata); void workbench_antialiasing_view_updated(WORKBENCH_Data *vedata); +/** + * Return true if render is not cached. + */ bool workbench_antialiasing_setup(WORKBENCH_Data *vedata); void workbench_antialiasing_draw_pass(WORKBENCH_Data *vedata); @@ -491,6 +498,9 @@ DRWShadingGroup *workbench_material_setup_ex(WORKBENCH_PrivateData *wpd, eV3DShadingColorType color_type, eWORKBENCH_DataType datatype, bool *r_transp); +/** + * If `ima` is null, search appropriate image node but will fallback to purple texture otherwise. + */ DRWShadingGroup *workbench_image_setup_ex(WORKBENCH_PrivateData *wpd, Object *ob, int mat_nr, @@ -535,6 +545,10 @@ void workbench_engine_init(void *ved); void workbench_cache_init(void *ved); void workbench_cache_populate(void *ved, Object *ob); void workbench_cache_finish(void *ved); +/** + * Used by viewport rendering & final rendering. + * Do one render loop iteration (i.e: One TAA sample). + */ void workbench_draw_sample(void *ved); void workbench_draw_finish(void *ved); diff --git a/source/blender/draw/engines/workbench/workbench_transparent.c b/source/blender/draw/engines/workbench/workbench_transparent.c index ad855cb284c..3be005b43d0 100644 --- a/source/blender/draw/engines/workbench/workbench_transparent.c +++ b/source/blender/draw/engines/workbench/workbench_transparent.c @@ -149,8 +149,6 @@ void workbench_transparent_cache_init(WORKBENCH_Data *vedata) } } -/* Redraw the transparent passes but with depth test - * to output correct outline IDs and depth. */ void workbench_transparent_draw_depth_pass(WORKBENCH_Data *data) { WORKBENCH_PrivateData *wpd = data->stl->wpd; -- cgit v1.2.3