[Bf-blender-cvs] [42ddafedf5b] soc-2018-npr: debugging f12 weird behavior
Nick Wu
noreply at git.blender.org
Wed Jul 4 11:38:24 CEST 2018
Commit: 42ddafedf5b95e291feeeb7164176a752469cddb
Author: Nick Wu
Date: Wed Jul 4 15:52:20 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB42ddafedf5b95e291feeeb7164176a752469cddb
debugging f12 weird behavior
===================================================================
M source/blender/draw/engines/lanpr/lanpr_engine.c
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index bc514380939..1dfa94f5b4c 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -345,8 +345,8 @@ static void lanpr_cache_init(void *vedata){
BLI_mempool_clear(pd->mp_batch_list);
}
}elif(lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE) {
- psl->software_pass = DRW_pass_create("Software Render Preview", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_ALWAYS);
- LANPR_LineLayer* ll;
+ psl->software_pass = DRW_pass_create("Software Render Preview", DRW_STATE_WRITE_COLOR | DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS_EQUAL);
+ LANPR_LineLayer* ll;
for (ll = lanpr->line_layers.first; ll; ll = ll->next) {
ll->shgrp = DRW_shgroup_create(OneTime.software_shader, psl->software_pass);
DRW_shgroup_uniform_vec4(ll->shgrp, "color", ll->color, 1);
@@ -381,7 +381,7 @@ static void lanpr_cache_populate(void *vedata, Object *ob){
struct Gwn_Batch *geom = DRW_cache_object_surface_get(ob);
if (geom) {
- DRW_shgroup_call_object_add(stl->g_data->multipass_shgrp, geom, ob);
+ DRW_shgroup_call_object_add_no_cull(stl->g_data->multipass_shgrp, geom, ob);
}
if (lanpr->master_mode == LANPR_MASTER_MODE_DPIX && lanpr->active_layer) {
@@ -444,7 +444,7 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer* dfb) {
LANPR_StorageList *stl = ((LANPR_Data *)vedata)->stl;
LANPR_FramebufferList *fbl = ((LANPR_Data *)vedata)->fbl;
- float clear_col[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+ float clear_col[4] = { 1.0f, 0.0f, 0.0f, 1.0f };
float clear_depth = 1.0f;
uint clear_stencil = 0xFF;
@@ -475,14 +475,14 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer* dfb) {
}
elif(lanpr->master_mode == LANPR_MASTER_MODE_SOFTWARE) {
- //DRW_draw_pass(psl->color_pass);
GPU_framebuffer_bind(fbl->software_ms);
- // almost forgot
+
GPU_framebuffer_clear(fbl->software_ms, clear_bits, lanpr->background_color, clear_depth, clear_stencil);
- DRW_draw_pass(psl->software_pass);
- GPU_framebuffer_bind(dfb);
- DRW_multisamples_resolve(txl->ms_resolve_depth,txl->ms_resolve_color);
+ DRW_draw_pass(psl->color_pass);
+ //DRW_draw_pass(psl->software_pass);
+
+ GPU_framebuffer_blit(fbl->software_ms,0,dfb,0,GPU_COLOR_BIT);
}
}
@@ -535,6 +535,14 @@ static void lanpr_render_to_image(LANPR_Data *vedata, RenderEngine *engine, stru
DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, LANPR_render_cache);
lanpr_cache_finish(vedata);
+ float clear_col[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+ float clear_depth = 1.0f;
+ uint clear_stencil = 0xFF;
+ GPUFrameBufferBits clear_bits = GPU_DEPTH_BIT | GPU_COLOR_BIT;
+
+ GPU_framebuffer_bind(dfbl->default_fb);
+ GPU_framebuffer_clear(dfbl->default_fb, clear_bits, clear_col, clear_depth, clear_stencil);
+
lanpr_draw_scene_exec(vedata, dfbl->default_fb);
// read it back so we can again display and save it.
More information about the Bf-blender-cvs
mailing list