[Bf-blender-cvs] [5c8c64eeae6] temp-lanpr-cleanup: LANPR: Fix assert errors.

YimingWu noreply at git.blender.org
Thu Sep 12 16:18:37 CEST 2019


Commit: 5c8c64eeae67c66942c575cfe68e8497f6d4ac0c
Author: YimingWu
Date:   Thu Sep 12 22:18:13 2019 +0800
Branches: temp-lanpr-cleanup
https://developer.blender.org/rB5c8c64eeae67c66942c575cfe68e8497f6d4ac0c

LANPR: Fix assert errors.

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

M	source/blender/draw/engines/lanpr/lanpr_chain_draw.c
M	source/blender/draw/engines/lanpr/lanpr_cpu.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_chain_draw.c b/source/blender/draw/engines/lanpr/lanpr_chain_draw.c
index f036a8940a4..57cb92163cc 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain_draw.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain_draw.c
@@ -160,15 +160,15 @@ void lanpr_chain_generate_draw_command(LANPR_RenderBuffer *rb)
 
       if (rlci == rlc->chain.first) {
         if (rlci->next == rlc->chain.last) {
-          GPU_indexbuf_add_line_adj_verts(&elb, vert_count, i, i + 1, vert_count);
+          GPU_indexbuf_add_line_adj_verts(&elb, vert_count-1, i, i + 1, vert_count-1);
         }
         else {
-          GPU_indexbuf_add_line_adj_verts(&elb, vert_count, i, i + 1, i + 2);
+          GPU_indexbuf_add_line_adj_verts(&elb, vert_count-1, i, i + 1, i + 2);
         }
       }
       else {
         if (rlci->next == rlc->chain.last) {
-          GPU_indexbuf_add_line_adj_verts(&elb, i - 1, i, i + 1, vert_count);
+          GPU_indexbuf_add_line_adj_verts(&elb, i - 1, i, i + 1, vert_count-1);
         }
         else {
           GPU_indexbuf_add_line_adj_verts(&elb, i - 1, i, i + 1, i + 2);
diff --git a/source/blender/draw/engines/lanpr/lanpr_cpu.c b/source/blender/draw/engines/lanpr/lanpr_cpu.c
index 2e5771a8ca5..9ca6e002d96 100644
--- a/source/blender/draw/engines/lanpr/lanpr_cpu.c
+++ b/source/blender/draw/engines/lanpr/lanpr_cpu.c
@@ -221,7 +221,7 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render)
   Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph);
   SceneLANPR *lanpr = &scene->lanpr;
   View3D *v3d = draw_ctx->v3d;
-  float indentity_mat[4][4];
+  float indentity_mat[4][4], win_mat[4][4];
   static float normal_object_direction[3] = {0, 0, 1};
   float use_background_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
   static float camdx, camdy, camzoom;
@@ -253,8 +253,11 @@ void lanpr_software_draw_scene(void *vedata, GPUFrameBuffer *dfb, int is_render)
     pd->dpix_viewport[3] = texh;
 
     unit_m4(indentity_mat);
+    copy_m4_m4(win_mat,indentity_mat);
+    /* win_mat needs to be negative */
+    swap_v3_v3(win_mat[0], win_mat[1]);
 
-    DRWView *view = DRW_view_create(indentity_mat, indentity_mat, NULL, NULL, NULL);
+    DRWView *view = DRW_view_create(indentity_mat, win_mat, NULL, NULL, NULL);
     if (is_render) {
       DRW_view_default_set(view);
     }



More information about the Bf-blender-cvs mailing list