Commit: a5e3c4f04ce0b36ed78c88a221ccca5a3d2bcd50
Author: Antony Riakiotakis
Date:   Wed Jul 15 20:17:55 2015 +0200
Branches: temp-derivedmesh-looptri
https://developer.blender.org/rBa5e3c4f04ce0b36ed78c88a221ccca5a3d2bcd50

Port UV display to new design. As plus, we can remove the extra buffer 
completely

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

M       source/blender/blenkernel/intern/cdderivedmesh.c
M       source/blender/gpu/GPU_buffers.h
M       source/blender/gpu/intern/gpu_buffers.c

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

diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c 
b/source/blender/blenkernel/intern/cdderivedmesh.c
index bf1a9cf..e5bdb2b 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -371,14 +371,14 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
 
        if (lt) {
                const MPoly *mpoly = cddm->mpoly;
+               const int totpoly = dm->getNumPolys(dm);
                int prevstart = 0;
                bool prevdraw = true;
                int curpos = 0;
                
                GPU_uvedge_setup(dm);
-               for (i = 0; i < dm->looptris.num; i++, lt++) {
-                       const MPoly *mp = &mpoly[lt->poly];
-                       const bool draw = (mp->flag & ME_HIDE) == 0;
+               for (i = 0; i < totpoly; i++, mpoly++) {
+                       const bool draw = (mpoly->flag & ME_HIDE) == 0;
 
                        if (prevdraw != draw) {
                                if (prevdraw && (curpos != prevstart)) {
@@ -387,7 +387,7 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
                                prevstart = curpos;
                        }
 
-                       curpos += 6;
+                       curpos += mpoly->totloop;
                        prevdraw = draw;
                }
                if (prevdraw && (curpos != prevstart)) {
@@ -1505,37 +1505,6 @@ static void cdDM_buffer_copy_edge(
        dm->drawObject->tot_edge_drawn = tot;
 }
 
-static void cdDM_buffer_copy_uvedge(
-        DerivedMesh *dm, float *varray)
-{
-       int i, tottri;
-       int start;
-       const MLoopTri *lt;
-       const MLoopUV *mloopuv;
-
-       if ((mloopuv = DM_get_loop_data_layer(dm, CD_MLOOPUV)) == NULL) {
-               return;
-       }
-
-       lt = dm->looptris.array;
-       tottri = dm->looptris.num;
-       start = 0;
-
-       for (i = 0; i < tottri; i++, lt++) {
-               const unsigned int *ltri = lt->tri;
-
-               copy_v2_v2(&varray[start + 0], mloopuv[ltri[0]].uv);
-               copy_v2_v2(&varray[start + 2], mloopuv[ltri[1]].uv);
-
-               copy_v2_v2(&varray[start + 4], mloopuv[ltri[1]].uv);
-               copy_v2_v2(&varray[start + 6], mloopuv[ltri[2]].uv);
-
-               copy_v2_v2(&varray[start + 8], mloopuv[ltri[2]].uv);
-               copy_v2_v2(&varray[start + 10], mloopuv[ltri[0]].uv);
-               start += 12;
-       }
-}
-
 static void cdDM_copy_gpu_data(
         DerivedMesh *dm, int type, void *varray_p,
         const int *mat_orig_to_new, const void *user_data)
@@ -1560,9 +1529,6 @@ static void cdDM_copy_gpu_data(
                case GPU_BUFFER_EDGE:
                        cdDM_buffer_copy_edge(dm, (unsigned int *)varray_p);
                        break;
-               case GPU_BUFFER_UVEDGE:
-                       cdDM_buffer_copy_uvedge(dm, (float *)varray_p);
-                       break;
                case GPU_BUFFER_TRIANGLES:
                        cdDM_buffer_copy_triangles(dm, (unsigned int 
*)varray_p, mat_orig_to_new);
                        break;
diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h
index 3a8b71c..0c76b1f 100644
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@ -160,7 +160,6 @@ typedef enum {
        GPU_BUFFER_UV,
        GPU_BUFFER_UV_TEXPAINT,
        GPU_BUFFER_EDGE,
-       GPU_BUFFER_UVEDGE,
        GPU_BUFFER_TRIANGLES
 } GPUBufferType;
 
diff --git a/source/blender/gpu/intern/gpu_buffers.c 
b/source/blender/gpu/intern/gpu_buffers.c
index 370a11f..ac304be 100644
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@ -575,8 +575,6 @@ static GPUBuffer 
**gpu_drawobject_buffer_from_type(GPUDrawObject *gdo, GPUBuffer
                        return &gdo->uv_tex;
                case GPU_BUFFER_EDGE:
                        return &gdo->edges;
-               case GPU_BUFFER_UVEDGE:
-                       return &gdo->uvedges;
                case GPU_BUFFER_TRIANGLES:
                        return &gdo->triangles;
                default:
@@ -600,13 +598,6 @@ static int gpu_buffer_size_from_type(DerivedMesh *dm, 
GPUBufferType type)
                        return sizeof(float) * 
gpu_buffer_type_settings[type].num_components * 
dm->drawObject->tot_triangle_point;
                case GPU_BUFFER_EDGE:
                        return sizeof(int) * 
gpu_buffer_type_settings[type].num_components * dm->drawObject->totedge;
-               case GPU_BUFFER_UVEDGE:
-                       /* each face gets 3 points, 3 edges per triangle, and
-                        * each edge has its own, non-shared coords, so each
-                        * tri corner needs minimum of 4 floats, quads used
-                        * less so here we can over allocate and assume all
-                        * tris. */
-                       return sizeof(int) * 
gpu_buffer_type_settings[type].num_components * 
dm->drawObject->tot_triangle_point;
                case GPU_BUFFER_TRIANGLES:
                        return sizeof(int) * 
gpu_buffer_type_settings[type].num_components * 
dm->drawObject->tot_triangle_point;
                default:
@@ -807,7 +798,7 @@ void GPU_edge_setup(DerivedMesh *dm)
 
 void GPU_uvedge_setup(DerivedMesh *dm)
 {
-       if (!gpu_buffer_setup_common(dm, GPU_BUFFER_UVEDGE))
+       if (!gpu_buffer_setup_common(dm, GPU_BUFFER_UV))
                return;
 
        glEnableClientState(GL_VERTEX_ARRAY);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to