diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-01-10 00:26:52 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-01-11 18:00:23 +0300 |
commit | 86ec304ffabcb3df6853753f0beb4d316c03adf8 (patch) | |
tree | 4a0875b03601b51c756997bb0a3e0e5548a25802 | |
parent | 74260a2b6da86e3f6da0a37afc6d47338c1be034 (diff) |
WM: Use draw manager to draw UV image editor spaces
This is in order to use batch cache directly without using tricks like
batch presets reseting the VAOs.
Note: For now it also create a depth buffer for this area which is not
needed. We could get rid of this to lower VRAM usage.
-rw-r--r-- | source/blender/editors/space_image/space_image.c | 14 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_draw.c | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 3c850ae1689..4f2b0f0db2b 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -83,6 +83,12 @@ #include "image_intern.h" #include "GPU_framebuffer.h" +#include "GPU_batch_presets.h" +#include "GPU_viewport.h" + +/* TODO(fclem) remove bad level calls */ +#include "../draw/DRW_engine.h" +#include "wm_draw.h" /**************************** common state *****************************/ @@ -620,6 +626,14 @@ static void image_main_region_draw(const bContext *C, ARegion *ar) //View2DScrollers *scrollers; float col[3]; + /* XXX This is in order to draw UI batches with the DRW + * olg context since we now use it for drawing the entire area */ + gpu_batch_presets_reset(); + + /* TODO(fclem) port to draw manager and remove the depth buffer allocation. */ + DefaultFramebufferList *fbl = GPU_viewport_framebuffer_list_get(ar->draw_buffer->viewport[0]); + GPU_framebuffer_bind(fbl->color_only_fb); + /* XXX not supported yet, disabling for now */ scene->r.scemode &= ~R_COMP_CROP; diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index d6058ac0d28..c811a52c0e9 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -213,7 +213,7 @@ static void wm_region_test_render_do_draw(const Scene *scene, struct Depsgraph * static bool wm_region_use_viewport(ScrArea *sa, ARegion *ar) { - return (sa->spacetype == SPACE_VIEW3D && ar->regiontype == RGN_TYPE_WINDOW); + return (ELEM(sa->spacetype, SPACE_VIEW3D, SPACE_IMAGE) && ar->regiontype == RGN_TYPE_WINDOW); } /********************** draw all **************************/ |