[Bf-blender-cvs] [d5a1c5a4a0d] soc-2018-npr: debugging f12

Nick Wu noreply at git.blender.org
Wed Jul 4 09:52:40 CEST 2018


Commit: d5a1c5a4a0dfcf633edfa770da2e6a8ac54a2eb5
Author: Nick Wu
Date:   Wed Jul 4 15:52:20 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rBd5a1c5a4a0dfcf633edfa770da2e6a8ac54a2eb5

debugging f12

===================================================================

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..424ed65d30b 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -345,7 +345,7 @@ 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);
+		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);
@@ -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;
 
@@ -477,8 +477,11 @@ static void lanpr_draw_scene_exec(void *vedata, GPUFrameBuffer* dfb) {
 
 		//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);
+
+		//this line works weird in viewport render
+	    GPU_framebuffer_clear(fbl->software_ms, clear_bits, clear_col, clear_depth, clear_stencil);
+
+		DRW_draw_pass(psl->color_pass);
 		DRW_draw_pass(psl->software_pass);
 
 		GPU_framebuffer_bind(dfb);
@@ -535,6 +538,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