Blender  V3.3
Macros | Functions | Variables
eevee_engine.c File Reference
#include "DRW_render.h"
#include "draw_color_management.h"
#include "BLI_rand.h"
#include "BKE_object.h"
#include "DEG_depsgraph_query.h"
#include "DNA_world_types.h"
#include "IMB_imbuf.h"
#include "eevee_private.h"
#include "eevee_engine.h"

Go to the source code of this file.

Macros

#define EEVEE_ENGINE   "BLENDER_EEVEE"
 

Functions

static void eevee_engine_init (void *ved)
 
static void eevee_cache_init (void *vedata)
 
void EEVEE_cache_populate (void *vedata, Object *ob)
 
static void eevee_cache_finish (void *vedata)
 
static void eevee_draw_scene (void *vedata)
 
static void eevee_view_update (void *vedata)
 
static void eevee_id_object_update (void *UNUSED(vedata), Object *object)
 
static void eevee_id_world_update (void *vedata, World *wo)
 
void eevee_id_update (void *vedata, ID *id)
 
static void eevee_render_reset_passes (EEVEE_Data *vedata)
 
static void eevee_render_to_image (void *vedata, RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect)
 
static void eevee_store_metadata (void *vedata, struct RenderResult *render_result)
 
static void eevee_engine_free (void)
 

Variables

static const DrawEngineDataSize eevee_data_size = DRW_VIEWPORT_DATA_SIZE(EEVEE_Data)
 
DrawEngineType draw_engine_eevee_type
 
RenderEngineType DRW_engine_viewport_eevee_type
 

Macro Definition Documentation

◆ EEVEE_ENGINE

#define EEVEE_ENGINE   "BLENDER_EEVEE"

Definition at line 26 of file eevee_engine.c.

Function Documentation

◆ eevee_cache_finish()

static void eevee_cache_finish ( void vedata)
static

◆ eevee_cache_init()

static void eevee_cache_init ( void vedata)
static

◆ EEVEE_cache_populate()

void EEVEE_cache_populate ( void vedata,
Object ob 
)

◆ eevee_draw_scene()

static void eevee_draw_scene ( void vedata)
static

Definition at line 186 of file eevee_engine.c.

References EEVEE_PassList::background_ps, BLI_halton_3d(), EEVEE_EffectsInfo::bypass_drawing, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, copy_m4_m4(), DefaultFramebufferList::default_fb, DefaultTextureList::depth, EEVEE_PassList::depth_ps, EEVEE_PassList::depth_refract_ps, EEVEE_PrivateData::disable_ligthprobes, EEVEE_FramebufferList::double_buffer_depth_fb, DRW_context_state_get(), DRW_draw_pass(), DRW_pass_sort_shgroup_z(), DRW_state_draw_background(), DRW_state_is_image_render(), DRW_stats_group_end(), DRW_stats_group_start(), DRW_transform_none(), DRW_view_set_active(), DRW_viewport_framebuffer_list_get(), DRW_viewport_texture_list_get(), Scene::eevee, EEVEE_create_minmax_buffer(), EEVEE_draw_effects(), EEVEE_lightprobes_refresh(), EEVEE_lightprobes_refresh_planar(), EEVEE_materials_init(), EEVEE_occlusion_compute(), EEVEE_occlusion_draw_debug(), EEVEE_RAY_CAMERA, EEVEE_reflection_compute(), EEVEE_refraction_compute(), EEVEE_RENDER_PASS_COMBINED, EEVEE_renderpasses_draw(), EEVEE_renderpasses_draw_debug(), EEVEE_renderpasses_output_accumulate(), EEVEE_shadows_draw(), EEVEE_shadows_update(), EEVEE_subsurface_compute(), EEVEE_subsurface_data_render(), EEVEE_temporal_sampling_reset(), EEVEE_temporal_sampling_update_matrices(), EEVEE_update_noise(), EEVEE_view_layer_data_ensure(), EEVEE_volumes_compute(), EEVEE_volumes_resolve(), EEVEE_volumes_set_jitter(), EFFECT_SSR, EFFECT_SSS, EFFECT_TAA, EFFECT_TAA_REPROJECT, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_EffectsInfo::final_tx, EEVEE_StorageList::g_data, GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_framebuffer_bind(), GPU_framebuffer_blit(), GPU_framebuffer_clear(), GPU_framebuffer_texture_attach(), GPU_framebuffer_texture_detach(), GPU_STENCIL_BIT, GPU_uniformbuf_update(), EEVEE_FramebufferList::main_color_fb, EEVEE_FramebufferList::main_fb, EEVEE_PassList::material_ps, EEVEE_PassList::material_refract_ps, MAX2, NULL, offset, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_EffectsInfo::prev_persmat, EEVEE_CommonUniformBuffer::prev_persmat, EEVEE_PassList::probe_display, r, EEVEE_CommonUniformBuffer::ray_depth, EEVEE_CommonUniformBuffer::ray_type, EEVEE_PrivateData::render_passes, scene, DRWContextState::scene, SET_FLAG_FROM_TEST, EEVEE_EffectsInfo::ssr_was_valid_double_buffer, EEVEE_EffectsInfo::taa_current_sample, EEVEE_EffectsInfo::taa_reproject_sample, SceneEEVEE::taa_samples, EEVEE_EffectsInfo::taa_view, EEVEE_PassList::transparent_pass, EEVEE_PrivateData::valid_double_buffer, and EEVEE_PrivateData::view_updated.

◆ eevee_engine_free()

static void eevee_engine_free ( void  )
static

◆ eevee_engine_init()

static void eevee_engine_init ( void ved)
static

◆ eevee_id_object_update()

static void eevee_id_object_update ( void UNUSEDvedata,
Object object 
)
static

◆ eevee_id_update()

void eevee_id_update ( void vedata,
ID id 
)

Definition at line 414 of file eevee_engine.c.

References eevee_id_object_update(), eevee_id_world_update(), GS, id, ID_OB, ID_WO, and ID::name.

Referenced by EEVEE_render_cache().

◆ eevee_id_world_update()

static void eevee_id_world_update ( void vedata,
World wo 
)
static

◆ eevee_render_reset_passes()

static void eevee_render_reset_passes ( EEVEE_Data vedata)
static

Definition at line 430 of file eevee_engine.c.

References EEVEE_Data::psl.

Referenced by eevee_render_to_image().

◆ eevee_render_to_image()

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

Definition at line 436 of file eevee_engine.c.

References BLI_assert_msg, RenderData::cfra, DEG_get_evaluated_scene(), depsgraph, DRWContextState::depsgraph, DRW_cache_restart(), DRW_context_state_get(), DRW_render_object_iter(), DRW_render_set_time(), DRW_render_viewport_size_set(), Scene::eevee, EEVEE_effects_draw_init(), eevee_id_world_update(), EEVEE_lightprobes_cache_finish(), EEVEE_lights_cache_finish(), EEVEE_materials_cache_finish(), EEVEE_motion_blur_cache_finish(), EEVEE_motion_blur_data_free(), EEVEE_motion_blur_step_set(), EEVEE_motion_blur_swap_data(), EEVEE_render_cache(), EEVEE_render_cache_init(), EEVEE_render_draw(), EEVEE_render_init(), EEVEE_render_modules_init(), EEVEE_render_read_result(), eevee_render_reset_passes(), EEVEE_renderpasses_cache_finish(), EEVEE_renderpasses_output_init(), EEVEE_subsurface_draw_init(), EEVEE_temporal_sampling_create_view(), EEVEE_temporal_sampling_reset(), EEVEE_temporal_sampling_sample_count_get(), EEVEE_view_layer_data_ensure(), EEVEE_volumes_cache_finish(), EEVEE_volumes_draw_init(), EEVEE_StorageList::effects, SceneEEVEE::flag, floorf, fractf(), EEVEE_StorageList::g_data, g_data, max_ii(), MB_CURR, MB_NEXT, MB_PREV, EEVEE_EffectsInfo::motion_blur, SceneEEVEE::motion_blur_max, SceneEEVEE::motion_blur_position, SceneEEVEE::motion_blur_shutter, SceneEEVEE::motion_blur_steps, Scene::r, RE_engine_frame_set(), RE_engine_test_break(), SCE_EEVEE_MB_CENTER, SCE_EEVEE_MB_END, SCE_EEVEE_MB_START, SCE_EEVEE_MOTION_BLUR_ENABLED, scene, EEVEE_Data::stl, RenderData::subframe, time, and Scene::world.

◆ eevee_store_metadata()

static void eevee_store_metadata ( void vedata,
struct RenderResult render_result 
)
static

◆ eevee_view_update()

static void eevee_view_update ( void vedata)
static

Definition at line 366 of file eevee_engine.c.

References EEVEE_StorageList::g_data, and EEVEE_PrivateData::view_updated.

Variable Documentation

◆ draw_engine_eevee_type

DrawEngineType draw_engine_eevee_type
Initial value:
= {
N_("Eevee"),
NULL,
}
static void eevee_render_to_image(void *vedata, RenderEngine *engine, struct RenderLayer *render_layer, const rcti *rect)
Definition: eevee_engine.c:436
static void eevee_engine_free(void)
Definition: eevee_engine.c:607
static void eevee_cache_init(void *vedata)
Definition: eevee_engine.c:81
void EEVEE_cache_populate(void *vedata, Object *ob)
Definition: eevee_engine.c:99
static void eevee_view_update(void *vedata)
Definition: eevee_engine.c:366
void eevee_id_update(void *vedata, ID *id)
Definition: eevee_engine.c:414
static const DrawEngineDataSize eevee_data_size
Definition: eevee_engine.c:616
static void eevee_cache_finish(void *vedata)
Definition: eevee_engine.c:142
static void eevee_engine_init(void *ved)
Definition: eevee_engine.c:30
static void eevee_draw_scene(void *vedata)
Definition: eevee_engine.c:186
static void eevee_store_metadata(void *vedata, struct RenderResult *render_result)
Definition: eevee_engine.c:597
#define N_(msgid)

Definition at line 618 of file eevee_engine.c.

Referenced by EEVEE_bloom_init(), EEVEE_effects_init(), EEVEE_light_data_ensure(), EEVEE_light_data_get(), EEVEE_lightprobe_data_ensure(), EEVEE_lightprobe_data_get(), EEVEE_motion_blur_init(), EEVEE_object_data_ensure(), EEVEE_object_data_get(), EEVEE_occlusion_init(), EEVEE_subsurface_draw_init(), EEVEE_view_layer_data_ensure(), EEVEE_view_layer_data_ensure_ex(), EEVEE_view_layer_data_get(), EEVEE_world_data_ensure(), EEVEE_world_data_get(), and lightbake_do_sample().

◆ DRW_engine_viewport_eevee_type

RenderEngineType DRW_engine_viewport_eevee_type
Initial value:
= {
N_("Eevee"),
{NULL, NULL, NULL},
}
#define RE_USE_STEREO_VIEWPORT
Definition: RE_engine.h:51
#define RE_INTERNAL
Definition: RE_engine.h:43
#define RE_USE_GPU_CONTEXT
Definition: RE_engine.h:52
#define RE_USE_PREVIEW
Definition: RE_engine.h:45
void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
#define EEVEE_ENGINE
Definition: eevee_engine.c:26
DrawEngineType draw_engine_eevee_type
Definition: eevee_engine.c:618
void EEVEE_render_update_passes(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
Definition: eevee_render.c:682

Definition at line 636 of file eevee_engine.c.

Referenced by DRW_engines_register().

◆ eevee_data_size

const DrawEngineDataSize eevee_data_size = DRW_VIEWPORT_DATA_SIZE(EEVEE_Data)
static

Definition at line 616 of file eevee_engine.c.