From be648680c7542c161cf4709846b88bf6c480e2fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Fri, 20 Apr 2018 20:51:54 +0200 Subject: Fix frame-buffer texture creation - disable depth buffer didn't work. - push/pop viewport bit was needed. --- source/blender/gpu/intern/gpu_framebuffer.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/blender/gpu/intern/gpu_framebuffer.c b/source/blender/gpu/intern/gpu_framebuffer.c index cb23b436fcb..73a1f14b9f6 100644 --- a/source/blender/gpu/intern/gpu_framebuffer.c +++ b/source/blender/gpu/intern/gpu_framebuffer.c @@ -664,11 +664,13 @@ GPUOffScreen *GPU_offscreen_create(int width, int height, int samples, bool dept ofs->depth = GPU_texture_create_depth_with_stencil_multisample(width, height, samples, err_out); } - if (!ofs->depth || !ofs->color) { + if ((depth && !ofs->depth) || !ofs->color) { GPU_offscreen_free(ofs); return NULL; } - + + gpuPushAttrib(GPU_VIEWPORT_BIT); + GPU_framebuffer_ensure_config(&ofs->fb, { GPU_ATTACHMENT_TEXTURE(ofs->depth), GPU_ATTACHMENT_TEXTURE(ofs->color) @@ -677,11 +679,14 @@ GPUOffScreen *GPU_offscreen_create(int width, int height, int samples, bool dept /* check validity at the very end! */ if (!GPU_framebuffer_check_valid(ofs->fb, err_out)) { GPU_offscreen_free(ofs); + gpuPopAttrib(); return NULL; } GPU_framebuffer_restore(); + gpuPopAttrib(); + return ofs; } -- cgit v1.2.3