diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2017-05-04 16:46:09 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2017-05-04 17:59:58 +0300 |
commit | a3d8ef059cf831ec032977079a837214e7c92122 (patch) | |
tree | a5c878afa23dae03e0952142e6d91d9751237f7c /source/blender/draw/engines/external/external_engine.c | |
parent | 6ea45da05c1d42253c84a8603f4b08342adee4e4 (diff) |
Draw Manager: Implement render info for external engines
This can be used by any engine actually. For example to give feedback
regarding probe caching in Eevee, ....
Unline master, we try to conciliate both the original viewport info
(FPS, view name) and the render info.
Note: I had to split the function in two because the camera alpha
passepartout is handled inside the view3d_draw_region_info function.
Review: Campbell Barton and Clement Foucault.
Thanks to Sergey Sharybin and Pablo Vazquez for some of the design
discussions.
Diffstat (limited to 'source/blender/draw/engines/external/external_engine.c')
-rw-r--r-- | source/blender/draw/engines/external/external_engine.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/draw/engines/external/external_engine.c b/source/blender/draw/engines/external/external_engine.c index 7b6b4e51147..6a530cccb6e 100644 --- a/source/blender/draw/engines/external/external_engine.c +++ b/source/blender/draw/engines/external/external_engine.c @@ -80,6 +80,7 @@ typedef struct EXTERNAL_Data { EXTERNAL_TextureList *txl; EXTERNAL_PassList *psl; EXTERNAL_StorageList *stl; + char info[GPU_INFO_SIZE]; } EXTERNAL_Data; /* *********** STATIC *********** */ @@ -138,7 +139,7 @@ static void EXTERNAL_cache_finish(void *UNUSED(vedata)) { } -static void external_draw_scene(void *UNUSED(vedata)) +static void external_draw_scene(void *vedata) { const DRWContextState *draw_ctx = DRW_context_state_get(); Scene *scene = draw_ctx->scene; @@ -173,6 +174,15 @@ static void external_draw_scene(void *UNUSED(vedata)) type->render_to_view(rv3d->render_engine, draw_ctx->evil_C); gpuPopProjectionMatrix(); + + /* Set render info. */ + EXTERNAL_Data *data = vedata; + if (rv3d->render_engine->text) { + BLI_strncpy(data->info, rv3d->render_engine->text, sizeof(data->info)); + } + else { + data->info[0] = '\0'; + } } static void EXTERNAL_draw_scene(void *vedata) |