From 723c33aba075a6722a73bafe44076982981420ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Thu, 19 Apr 2018 14:22:32 +0200 Subject: UV Editor: Fix overflow issue with IMM usage. Use batch API in this case. It's not the ideal solution (slow) but it works. --- source/blender/editors/uvedit/uvedit_draw.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/uvedit') diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c index e0d0dec8fbd..20f05502b35 100644 --- a/source/blender/editors/uvedit/uvedit_draw.c +++ b/source/blender/editors/uvedit/uvedit_draw.c @@ -719,7 +719,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, ViewLayer *view_layer, Obje immBindBuiltinProgram(GPU_SHADER_2D_FLAT_COLOR); - immBegin(GWN_PRIM_TRIS, tri_count * 3); + Gwn_Batch *face_batch = immBeginBatch(GWN_PRIM_TRIS, tri_count * 3); for (unsigned int i = 0; i < em->tottri; i++) { efa = em->looptris[i][0]->f; if (BM_elem_flag_test(efa, BM_ELEM_TAG)) { @@ -740,6 +740,11 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, ViewLayer *view_layer, Obje } immEnd(); + /* XXX performance: we should not create and throw away result. */ + GWN_batch_draw(face_batch); + GWN_batch_program_use_end(face_batch); + GWN_batch_discard(face_batch); + immUnbindProgram(); glDisable(GL_BLEND); -- cgit v1.2.3