Commit: f713f39182afac8617711a21e97d33d24a87733c
Author: Antony Riakiotakis
Date:   Sun Dec 6 23:53:58 2015 +0100
Branches: temp_display_optimization
https://developer.blender.org/rBf713f39182afac8617711a21e97d33d24a87733c

Merge branch 'master' into temp_display_optimization

Conflicts:
        source/blender/blenkernel/intern/editderivedmesh.c
        source/blender/gpu/intern/gpu_buffers.c

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



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

diff --cc source/blender/blenkernel/intern/editderivedmesh.c
index c855c37,b6d009d..2886191
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@@ -1002,61 -754,10 +1002,62 @@@ static void emDM_drawMappedFaces
        }
        if (has_vcol_preview || has_fcol_preview) {
                flag |= DM_DRAW_ALWAYS_SMOOTH;
-               glDisable(GL_LIGHTING);  /* grr */
+               /* weak, this logic should really be moved higher up */
+               setMaterial = NULL;
        }
  
 +      GPU_vertex_setup(dm);
 +
 +      /* if we do selection, fill the selection buffer color */
 +      if (G.f & G_BACKBUFSEL) {
 +              if (!(flag & DM_DRAW_SKIP_SELECT)) {
 +                      unsigned int *fi_map;
 +                      unsigned int start_element = 0;
 +
-                       findex_buffer = 
GPU_buffer_alloc(dm->drawObject->tot_loop_verts * sizeof(int), false);
++                      findex_buffer = 
GPU_buffer_alloc(dm->drawObject->tot_loop_verts * sizeof(int));
 +                      fi_map = GPU_buffer_lock(findex_buffer, 
GPU_BINDING_ARRAY);
 +
 +                      if (fi_map) {
 +                              BMIter iter;
 +                              int j;
 +
 +                              BM_ITER_MESH_INDEX(efa, &iter, bm, 
BM_FACES_OF_MESH, i) {
 +                                      int selcol = 0xFFFFFFFF;
 +
 +                                      if (!skip_hidden || 
!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
 +                                              WM_framebuffer_index_get(i + 1, 
&selcol);
 +                                      }
 +
 +                                      for (j = 0; j < efa->len; j++)
 +                                              fi_map[start_element++] = 
selcol;
 +                              }
 +
 +                              GPU_buffer_unlock(findex_buffer, 
GPU_BINDING_ARRAY);
 +                              GPU_buffer_bind_as_color(findex_buffer);
 +                      }
 +              }
 +      }
-       else {
++      else if (!skip_normals){
 +              /* no need to setup normals when selecting */
 +              GPU_normal_setup(dm);
 +      }
 +      GPU_triangle_setup(dm);
 +      glShadeModel(GL_SMOOTH);
 +      for (i = 0; i < dm->drawObject->totmaterial; i++) {
 +              if (!setMaterial || 
setMaterial(dm->drawObject->materials[i].mat_nr + 1, NULL)) {
 +                      unsigned int totalelem = (skip_hidden) ? 
dm->drawObject->materials[i].totvisibleelems :
 +                                                               
dm->drawObject->materials[i].totelements;
 +                      GPU_buffer_draw_elements(dm->drawObject->triangles, 
GL_TRIANGLES,
 +                                               
dm->drawObject->materials[i].start, totalelem);
 +              }
 +      }
 +      glShadeModel(GL_FLAT);
 +      GPU_buffers_unbind();
 +
 +      if (findex_buffer)
 +              GPU_buffer_free(findex_buffer);
 +      return;
 +
        if (bmdm->vertexCos) {
                short prev_mat_nr = -1;
  
diff --cc source/blender/gpu/intern/gpu_buffers.c
index d19b28e,3c44811..96ea244
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@@ -80,23 -80,21 +80,23 @@@ static size_t gpu_buffer_size_from_type
  
  const GPUBufferTypeSettings gpu_buffer_type_settings[] = {
      /* vertex */
-     {GL_ARRAY_BUFFER_ARB, 3},
+     {GL_ARRAY_BUFFER, 3},
      /* normal */
-     {GL_ARRAY_BUFFER_ARB, 4}, /* we copy 3 shorts per normal but we add a 
fourth for alignment */
+     {GL_ARRAY_BUFFER, 4}, /* we copy 3 shorts per normal but we add a fourth 
for alignment */
      /* mcol */
-     {GL_ARRAY_BUFFER_ARB, 3},
+     {GL_ARRAY_BUFFER, 3},
      /* uv */
-     {GL_ARRAY_BUFFER_ARB, 2},
+     {GL_ARRAY_BUFFER, 2},
      /* uv for texpaint */
-     {GL_ARRAY_BUFFER_ARB, 4},
+     {GL_ARRAY_BUFFER, 4},
      /* edge */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 2},
+     {GL_ELEMENT_ARRAY_BUFFER, 2},
      /* uv edge */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 4},
+     {GL_ELEMENT_ARRAY_BUFFER, 4},
      /* triangles, 1 point since we are allocating from tottriangle points, 
which account for all points */
-     {GL_ELEMENT_ARRAY_BUFFER_ARB, 1},
+     {GL_ELEMENT_ARRAY_BUFFER, 1},
 +    /* editface colors */
-     {GL_ARRAY_BUFFER_ARB, 4},
++    {GL_ARRAY_BUFFER, 4},
  };
  
  #define MAX_GPU_ATTRIB_DATA 32

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to