diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-03-18 21:03:48 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-03-18 22:49:09 +0300 |
commit | 59f53f5802276c4ff1d8e5422a76e54f94383626 (patch) | |
tree | 2de805a6a8ddca7615885910c89a9e72f2b69999 /source/blender/draw/engines/eevee_next | |
parent | 37b93b5df85c9e7acac989c86cf658bf8a0bc1e5 (diff) |
EEVEE: Add new experimental "EEVEE Next" option
This is supposed to hold the latest improvement from the EEVEE rewrite branch.
Note that a restart is necessary in order for the engine to appear.
The registration code is a bit convoluted as it needs to be after the WM_init.
Diffstat (limited to 'source/blender/draw/engines/eevee_next')
-rw-r--r-- | source/blender/draw/engines/eevee_next/eevee_engine.cc | 110 | ||||
-rw-r--r-- | source/blender/draw/engines/eevee_next/eevee_engine.h | 19 |
2 files changed, 129 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee_next/eevee_engine.cc b/source/blender/draw/engines/eevee_next/eevee_engine.cc new file mode 100644 index 00000000000..b2d750f81eb --- /dev/null +++ b/source/blender/draw/engines/eevee_next/eevee_engine.cc @@ -0,0 +1,110 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright 2021 Blender Foundation. + */ + +#include "BKE_global.h" +#include "BLI_rect.h" + +#include "GPU_framebuffer.h" + +#include "ED_view3d.h" + +#include "DRW_render.h" + +typedef struct EEVEE_Data { + DrawEngineType *engine_type; + DRWViewportEmptyList *fbl; + DRWViewportEmptyList *txl; + DRWViewportEmptyList *psl; + DRWViewportEmptyList *stl; + void *instance; +} EEVEE_Data; + +static void eevee_engine_init(void *vedata) +{ + UNUSED_VARS(vedata); +} + +static void eevee_draw_scene(void *vedata) +{ + UNUSED_VARS(vedata); +} + +static void eevee_cache_init(void *vedata) +{ + UNUSED_VARS(vedata); +} + +static void eevee_cache_populate(void *vedata, Object *object) +{ + UNUSED_VARS(vedata, object); +} + +static void eevee_cache_finish(void *vedata) +{ + UNUSED_VARS(vedata); +} + +static void eevee_engine_free(void) +{ +} + +static void eevee_instance_free(void *instance) +{ + UNUSED_VARS(instance); +} + +static void eevee_render_to_image(void *UNUSED(vedata), + struct RenderEngine *engine, + struct RenderLayer *layer, + const struct rcti *UNUSED(rect)) +{ + UNUSED_VARS(engine, layer); +} + +static void eevee_render_update_passes(RenderEngine *engine, Scene *scene, ViewLayer *view_layer) +{ + UNUSED_VARS(engine, scene, view_layer); +} + +static const DrawEngineDataSize eevee_data_size = DRW_VIEWPORT_DATA_SIZE(EEVEE_Data); + +extern "C" { + +DrawEngineType draw_engine_eevee_next_type = { + nullptr, + nullptr, + N_("Eevee"), + &eevee_data_size, + &eevee_engine_init, + &eevee_engine_free, + &eevee_instance_free, + &eevee_cache_init, + &eevee_cache_populate, + &eevee_cache_finish, + &eevee_draw_scene, + nullptr, + nullptr, + &eevee_render_to_image, + nullptr, +}; + +RenderEngineType DRW_engine_viewport_eevee_next_type = { + nullptr, + nullptr, + "BLENDER_EEVEE_NEXT", + N_("Eevee Next"), + RE_INTERNAL | RE_USE_PREVIEW | RE_USE_STEREO_VIEWPORT | RE_USE_GPU_CONTEXT, + nullptr, + &DRW_render_to_image, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr, + &eevee_render_update_passes, + &draw_engine_eevee_next_type, + {nullptr, nullptr, nullptr}, +}; +} diff --git a/source/blender/draw/engines/eevee_next/eevee_engine.h b/source/blender/draw/engines/eevee_next/eevee_engine.h new file mode 100644 index 00000000000..9cee11bbba8 --- /dev/null +++ b/source/blender/draw/engines/eevee_next/eevee_engine.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright 2016 Blender Foundation. */ + +/** \file + * \ingroup DNA + */ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +extern DrawEngineType draw_engine_eevee_next_type; +extern RenderEngineType DRW_engine_viewport_eevee_next_type; + +#ifdef __cplusplus +} +#endif |