[Bf-blender-cvs] [25e8550739e] master: CPencil: Cleanup unused fill code

Antonio Vazquez noreply at git.blender.org
Fri Mar 27 12:36:29 CET 2020


Commit: 25e8550739ef6e14b1496931228138533e3944bb
Author: Antonio Vazquez
Date:   Fri Mar 27 12:11:48 2020 +0100
Branches: master
https://developer.blender.org/rB25e8550739ef6e14b1496931228138533e3944bb

CPencil: Cleanup unused fill code

This is now replaced by draw engine and annotations don't use fill.

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

M	source/blender/blenkernel/intern/material.c
M	source/blender/editors/gpencil/drawgpencil.c
M	source/blender/editors/gpencil/gpencil_ops_versioning.c
M	source/blender/makesdna/DNA_material_types.h

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

diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 31fe93f64ed..16ec4c0a313 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -171,7 +171,6 @@ void BKE_gpencil_material_attr_init(Material *ma)
     gp_style->fill_rgba[3] = 1.0f;
     ARRAY_SET_ITEMS(gp_style->mix_rgba, 1.0f, 1.0f, 1.0f, 0.2f);
     ARRAY_SET_ITEMS(gp_style->texture_scale, 1.0f, 1.0f);
-    gp_style->texture_opacity = 1.0f;
     gp_style->texture_pixsize = 100.0f;
 
     gp_style->flag |= GP_MATERIAL_STROKE_SHOW;
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c
index 896ef7a9ad3..7107aacad37 100644
--- a/source/blender/editors/gpencil/drawgpencil.c
+++ b/source/blender/editors/gpencil/drawgpencil.c
@@ -232,90 +232,6 @@ static void gp_draw_stroke_volumetric_3d(const bGPDspoint *points,
   GPU_program_point_size(false);
 }
 
-/* --------------- Stroke Fills ----------------- */
-/* add a new fill point and texture coordinates to vertex buffer */
-static void gp_add_filldata_tobuffer(const bGPDspoint *pt,
-                                     uint pos,
-                                     uint texcoord,
-                                     short flag,
-                                     int offsx,
-                                     int offsy,
-                                     int winx,
-                                     int winy,
-                                     const float diff_mat[4][4])
-{
-  float fpt[3];
-  float co[2];
-
-  mul_v3_m4v3(fpt, diff_mat, &pt->x);
-  /* if 2d, need conversion */
-  if (!(flag & GP_STROKE_3DSPACE)) {
-    gp_calc_2d_stroke_fxy(fpt, flag, offsx, offsy, winx, winy, co);
-    copy_v2_v2(fpt, co);
-    fpt[2] = 0.0f; /* 2d always is z=0.0f */
-  }
-
-  immAttr2f(texcoord, pt->uv_fill[0], pt->uv_fill[1]); /* texture coordinates */
-  immVertex3fv(pos, fpt);                              /* position */
-}
-
-/* draw fills for shapes */
-static void gp_draw_stroke_fill(bGPdata *gpd,
-                                bGPDstroke *gps,
-                                int offsx,
-                                int offsy,
-                                int winx,
-                                int winy,
-                                const float diff_mat[4][4],
-                                const float color[4])
-{
-  BLI_assert(gps->totpoints >= 3);
-  BLI_assert(gps->tot_triangles >= 1);
-  const bool use_mat = (gpd->mat != NULL);
-
-  Material *ma = (use_mat) ? gpd->mat[gps->mat_nr] : BKE_material_default_gpencil();
-  MaterialGPencilStyle *gp_style = (ma) ? ma->gp_style : NULL;
-
-  GPUVertFormat *format = immVertexFormat();
-  uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
-  uint texcoord = GPU_vertformat_attr_add(format, "texCoord", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
-  immBindBuiltinProgram(GPU_SHADER_GPENCIL_FILL);
-
-  immUniformColor4fv(color);
-  immUniform4fv("color2", gp_style->mix_rgba);
-  immUniform1i("fill_type", gp_style->fill_style);
-  immUniform1f("mix_factor", gp_style->mix_factor);
-
-  immUniform1f("texture_angle", gp_style->texture_angle);
-  immUniform2fv("texture_scale", gp_style->texture_scale);
-  immUniform2fv("texture_offset", gp_style->texture_offset);
-  immUniform1f("texture_opacity", gp_style->texture_opacity);
-  immUniform1i("t_mix", (gp_style->flag & GP_MATERIAL_FILL_TEX_MIX) != 0);
-  immUniform1i("t_flip", (gp_style->flag & GP_MATERIAL_FLIP_FILL) != 0);
-
-  /* Draw all triangles for filling the polygon (cache must be calculated before) */
-  immBegin(GPU_PRIM_TRIS, gps->tot_triangles * 3);
-  /* TODO: use batch instead of immediate mode, to share vertices */
-
-  const bGPDtriangle *stroke_triangle = gps->triangles;
-  for (int i = 0; i < gps->tot_triangles; i++, stroke_triangle++) {
-    for (int j = 0; j < 3; j++) {
-      gp_add_filldata_tobuffer(&gps->points[stroke_triangle->verts[j]],
-                               pos,
-                               texcoord,
-                               gps->flag,
-                               offsx,
-                               offsy,
-                               winx,
-                               winy,
-                               diff_mat);
-    }
-  }
-
-  immEnd();
-  immUnbindProgram();
-}
-
 /* ----- Existing Strokes Drawing (3D and Point) ------ */
 
 /* draw a given stroke - just a single dot (only one point) */
@@ -691,7 +607,6 @@ static bool gp_can_draw_stroke(const bGPDstroke *gps, const int dflag)
 static void gp_draw_strokes(tGPDdraw *tgpw)
 {
   float tcolor[4];
-  float tfill[4];
   short sthickness;
   float ink[4];
   const bool is_unique = (tgpw->gps != NULL);
@@ -748,37 +663,6 @@ static void gp_draw_strokes(tGPDdraw *tgpw)
         bglPolygonOffset(1.0f, 1.0f);
       }
 
-      /* 3D Fill */
-      // if ((dflag & GP_DRAWDATA_FILL) && (gps->totpoints >= 3)) {
-      if ((gps->totpoints >= 3) && (tgpw->disable_fill != 1)) {
-        /* set color using material, tint color and opacity */
-        interp_v3_v3v3(tfill, gp_style->fill_rgba, tgpw->tintcolor, tgpw->tintcolor[3]);
-        tfill[3] = gp_style->fill_rgba[3] * tgpw->opacity;
-        if ((tfill[3] > GPENCIL_ALPHA_OPACITY_THRESH) || (gp_style->fill_style > 0)) {
-          const float *color;
-          if (!tgpw->onion) {
-            color = tfill;
-          }
-          else {
-            if (tgpw->custonion) {
-              color = tgpw->tintcolor;
-            }
-            else {
-              ARRAY_SET_ITEMS(tfill, UNPACK3(gp_style->fill_rgba), tgpw->tintcolor[3]);
-              color = tfill;
-            }
-          }
-          gp_draw_stroke_fill(tgpw->gpd,
-                              gps,
-                              tgpw->offsx,
-                              tgpw->offsy,
-                              tgpw->winx,
-                              tgpw->winy,
-                              tgpw->diff_mat,
-                              color);
-        }
-      }
-
       /* 3D Stroke */
       /* set color using material tint color and opacity */
       if (!tgpw->onion) {
@@ -811,21 +695,7 @@ static void gp_draw_strokes(tGPDdraw *tgpw)
       }
       else {
         /* 3D Lines - OpenGL primitives-based */
-        if (gps->totpoints == 1) {
-          if (tgpw->disable_fill != 1) {
-            gp_draw_stroke_point(gps->points,
-                                 sthickness,
-                                 tgpw->dflag,
-                                 gps->flag,
-                                 tgpw->offsx,
-                                 tgpw->offsy,
-                                 tgpw->winx,
-                                 tgpw->winy,
-                                 tgpw->diff_mat,
-                                 ink);
-          }
-        }
-        else {
+        if (gps->totpoints > 1) {
           tgpw->gps = gps;
           gp_draw_stroke_3d(tgpw, sthickness, ink, gps->flag & GP_STROKE_CYCLIC);
         }
@@ -837,97 +707,6 @@ static void gp_draw_strokes(tGPDdraw *tgpw)
         bglPolygonOffset(0.0, 0.0);
       }
     }
-    else {
-      /* 2D - Fill */
-      if (gps->totpoints >= 3) {
-        /* set color using material, tint color and opacity */
-        interp_v3_v3v3(tfill, gp_style->fill_rgba, tgpw->tintcolor, tgpw->tintcolor[3]);
-        tfill[3] = gp_style->fill_rgba[3] * tgpw->opacity;
-        if ((tfill[3] > GPENCIL_ALPHA_OPACITY_THRESH) || (gp_style->fill_style > 0)) {
-          const float *color;
-          if (!tgpw->onion) {
-            color = tfill;
-          }
-          else {
-            if (tgpw->custonion) {
-              color = tgpw->tintcolor;
-            }
-            else {
-              ARRAY_SET_ITEMS(tfill, UNPACK3(gp_style->fill_rgba), tgpw->tintcolor[3]);
-              color = tfill;
-            }
-          }
-          gp_draw_stroke_fill(tgpw->gpd,
-                              gps,
-                              tgpw->offsx,
-                              tgpw->offsy,
-                              tgpw->winx,
-                              tgpw->winy,
-                              tgpw->diff_mat,
-                              color);
-        }
-      }
-
-      /* 2D Strokes... */
-      /* set color using material, tint color and opacity */
-      if (!tgpw->onion) {
-        interp_v3_v3v3(tcolor, gp_style->stroke_rgba, tgpw->tintcolor, tgpw->tintcolor[3]);
-        tcolor[3] = gp_style->stroke_rgba[3] * tgpw->opacity;
-        copy_v4_v4(ink, tcolor);
-      }
-      else {
-        if (tgpw->custonion) {
-          copy_v4_v4(ink, tgpw->tintcolor);
-        }
-        else {
-          ARRAY_SET_ITEMS(tcolor, UNPACK3(gp_style->stroke_rgba), tgpw->opacity);
-          copy_v4_v4(ink, tcolor);
-        }
-      }
-      if (gp_style->mode == GP_MATERIAL_MODE_DOT) {
-        /* blob/disk-based "volumetric" drawing */
-        gp_draw_stroke_volumetric_2d(gps->points,
-                                     gps->totpoints,
-                                     sthickness,
-                                     tgpw->dflag,
-                                     gps->flag,
-                                     tgpw->offsx,
-                                     tgpw->offsy,
-                                     tgpw->winx,
-                                     tgpw->winy,
-                                     tgpw->diff_mat,
-                                     ink);
-      }
-      else {
-        /* normal 2D strokes */
-        if (gps->totpoints == 1) {
-          gp_draw_stroke_point(gps->points,
-                               sthickness,
-                               tgpw->dflag,
-                               gps->flag,
-                               tgpw->offsx,
-                               tgpw->offsy,
-                               tgpw->winx,
-                               tgpw->winy,
-                               tgpw->diff_mat,
-                               ink);
-        }
-        else {
-          gp_draw_stroke_2d(gps->points,
-                            gps->totpoints,
-                            sthickness,
-        

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list