Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-11-11 01:36:05 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-11-11 18:23:55 +0300
commitf30a2a786214c4ef08612486c227add0bb6bf35b (patch)
treec12d720ce8b4f3c3b5888fda471e6d77df8fa1b2 /source/blender/draw/intern
parent0260fad9ba41c3a714df9b39e6e6d171b143cf41 (diff)
GPUFramebuffer: Add possibility to blit stencil buffer.
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r--source/blender/draw/intern/DRW_render.h10
-rw-r--r--source/blender/draw/intern/draw_manager.c4
2 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index b54d90a5682..1941ad0a441 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -94,8 +94,8 @@ typedef char DRWViewportEmptyList;
#define MULTISAMPLE_SYNC_ENABLE(dfbl) { \
if (dfbl->multisample_fb != NULL) { \
DRW_stats_query_start("Multisample Blit"); \
- DRW_framebuffer_blit(dfbl->default_fb, dfbl->multisample_fb, false); \
- DRW_framebuffer_blit(dfbl->default_fb, dfbl->multisample_fb, true); \
+ DRW_framebuffer_blit(dfbl->default_fb, dfbl->multisample_fb, false, false); \
+ DRW_framebuffer_blit(dfbl->default_fb, dfbl->multisample_fb, true, false); \
DRW_framebuffer_bind(dfbl->multisample_fb); \
DRW_stats_query_end(); \
} \
@@ -104,8 +104,8 @@ typedef char DRWViewportEmptyList;
#define MULTISAMPLE_SYNC_DISABLE(dfbl) { \
if (dfbl->multisample_fb != NULL) { \
DRW_stats_query_start("Multisample Resolve"); \
- DRW_framebuffer_blit(dfbl->multisample_fb, dfbl->default_fb, false); \
- DRW_framebuffer_blit(dfbl->multisample_fb, dfbl->default_fb, true); \
+ DRW_framebuffer_blit(dfbl->multisample_fb, dfbl->default_fb, false, false); \
+ DRW_framebuffer_blit(dfbl->multisample_fb, dfbl->default_fb, true, false); \
DRW_framebuffer_bind(dfbl->default_fb); \
DRW_stats_query_end(); \
} \
@@ -234,7 +234,7 @@ void DRW_framebuffer_texture_attach(struct GPUFrameBuffer *fb, struct GPUTexture
void DRW_framebuffer_texture_layer_attach(struct GPUFrameBuffer *fb, struct GPUTexture *tex, int slot, int layer, int mip);
void DRW_framebuffer_cubeface_attach(struct GPUFrameBuffer *fb, struct GPUTexture *tex, int slot, int face, int mip);
void DRW_framebuffer_texture_detach(struct GPUTexture *tex);
-void DRW_framebuffer_blit(struct GPUFrameBuffer *fb_read, struct GPUFrameBuffer *fb_write, bool depth);
+void DRW_framebuffer_blit(struct GPUFrameBuffer *fb_read, struct GPUFrameBuffer *fb_write, bool depth, bool stencil);
void DRW_framebuffer_recursive_downsample(
struct GPUFrameBuffer *fb, struct GPUTexture *tex, int num_iter,
void (*callback)(void *userData, int level), void *userData);
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 7061aa640a5..2e35a30351a 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -2393,9 +2393,9 @@ void DRW_framebuffer_texture_detach(GPUTexture *tex)
GPU_framebuffer_texture_detach(tex);
}
-void DRW_framebuffer_blit(struct GPUFrameBuffer *fb_read, struct GPUFrameBuffer *fb_write, bool depth)
+void DRW_framebuffer_blit(struct GPUFrameBuffer *fb_read, struct GPUFrameBuffer *fb_write, bool depth, bool stencil)
{
- GPU_framebuffer_blit(fb_read, 0, fb_write, 0, depth);
+ GPU_framebuffer_blit(fb_read, 0, fb_write, 0, depth, stencil);
}
void DRW_framebuffer_recursive_downsample(