[Bf-blender-cvs] [bd434b9] viewport_experiments: Revert "Hook up flags to request a specific sorting scheme from GPU buffer setup"
Antony Riakiotakis
noreply at git.blender.org
Fri Nov 28 16:20:54 CET 2014
Commit: bd434b92b69b1c9f5412cf129a1440d875dd66fd
Author: Antony Riakiotakis
Date: Fri Nov 28 16:10:25 2014 +0100
Branches: viewport_experiments
https://developer.blender.org/rBbd434b92b69b1c9f5412cf129a1440d875dd66fd
Revert "Hook up flags to request a specific sorting scheme from GPU buffer setup"
This reverts commit 827ad6075dcf144025db7c4319e9954dcf45b26c.
===================================================================
M source/blender/blenkernel/intern/cdderivedmesh.c
M source/blender/editors/sculpt_paint/paint_vertex.c
M source/blender/editors/space_view3d/drawmesh.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 0c1041f..bfc70c9 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -347,15 +347,15 @@ static void cdDM_drawVerts(DerivedMesh *dm)
MVert *mv = cddm->mvert;
int i;
- if (GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ if (GPU_buffer_legacy(dm)) {
glBegin(GL_POINTS);
for (i = 0; i < dm->numVertData; i++, mv++)
glVertex3fv(mv->co);
glEnd();
}
else { /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
- GPU_vertex_setup(dm, GPU_SORT_NONE);
- if (!GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ GPU_vertex_setup(dm);
+ if (!GPU_buffer_legacy(dm)) {
if (dm->drawObject->tot_triangle_point)
glDrawArrays(GL_POINTS, 0, dm->drawObject->tot_triangle_point);
else
@@ -373,7 +373,7 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
int i;
if (mf) {
- if (GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ if (GPU_buffer_legacy(dm)) {
glBegin(GL_LINES);
for (i = 0; i < dm->numTessFaceData; i++, mf++, tf++) {
if (!(mf->flag & ME_HIDE)) {
@@ -404,8 +404,8 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
int draw = 1;
int curpos = 0;
- GPU_uvedge_setup(dm, GPU_SORT_NONE);
- if (!GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ GPU_uvedge_setup(dm);
+ if (!GPU_buffer_legacy(dm)) {
for (i = 0; i < dm->numTessFaceData; i++, mf++) {
if (!(mf->flag & ME_HIDE)) {
draw = 1;
@@ -451,7 +451,7 @@ static void cdDM_drawEdges(DerivedMesh *dm, bool drawLooseEdges, bool drawAllEdg
return;
}
- if (GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ if (GPU_buffer_legacy(dm)) {
DEBUG_VBO("Using legacy code. cdDM_drawEdges\n");
glBegin(GL_LINES);
for (i = 0; i < dm->numEdgeData; i++, medge++) {
@@ -469,8 +469,8 @@ static void cdDM_drawEdges(DerivedMesh *dm, bool drawLooseEdges, bool drawAllEdg
int prevdraw = 1;
bool draw = true;
- GPU_edge_setup(dm, GPU_SORT_NONE);
- if (!GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ GPU_edge_setup(dm);
+ if (!GPU_buffer_legacy(dm)) {
for (i = 0; i < dm->numEdgeData; i++, medge++) {
if ((drawAllEdges || (medge->flag & ME_EDGEDRAW)) &&
(drawLooseEdges || !(medge->flag & ME_LOOSEEDGE)))
@@ -503,7 +503,7 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm)
MEdge *medge = cddm->medge;
int i;
- if (GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ if (GPU_buffer_legacy(dm)) {
DEBUG_VBO("Using legacy code. cdDM_drawLooseEdges\n");
glBegin(GL_LINES);
for (i = 0; i < dm->numEdgeData; i++, medge++) {
@@ -519,8 +519,8 @@ static void cdDM_drawLooseEdges(DerivedMesh *dm)
int prevdraw = 1;
int draw = 1;
- GPU_edge_setup(dm, GPU_SORT_NONE);
- if (!GPU_buffer_legacy(dm, GPU_SORT_NONE)) {
+ GPU_edge_setup(dm);
+ if (!GPU_buffer_legacy(dm)) {
for (i = 0; i < dm->numEdgeData; i++, medge++) {
if (medge->flag & ME_LOOSEEDGE) {
draw = 1;
@@ -567,7 +567,7 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm,
return;
}
- if (GPU_buffer_legacy(dm, GPU_SORT_MATERIAL)) {
+ if (GPU_buffer_legacy(dm)) {
DEBUG_VBO("Using legacy code. cdDM_drawFacesSolid\n");
glBegin(glmode = GL_QUADS);
for (a = 0; a < dm->numTessFaceData; a++, mface++) {
@@ -648,9 +648,9 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm,
glEnd();
}
else { /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
- GPU_vertex_setup(dm, GPU_SORT_MATERIAL);
- GPU_normal_setup(dm, GPU_SORT_MATERIAL);
- if (!GPU_buffer_legacy(dm, GPU_SORT_MATERIAL)) {
+ GPU_vertex_setup(dm);
+ GPU_normal_setup(dm);
+ if (!GPU_buffer_legacy(dm)) {
glShadeModel(GL_SMOOTH);
for (a = 0; a < dm->drawObject->totmaterial; a++) {
if (!setMaterial || setMaterial(dm->drawObject->materials[a].mat_nr + 1, NULL)) {
@@ -718,7 +718,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
cdDM_update_normals_from_pbvh(dm);
- if (GPU_buffer_legacy(dm, GPU_SORT_MATERIAL_TEXTURE)) {
+ if (GPU_buffer_legacy(dm)) {
int mat_nr_cache = -1;
MTFace *tf_base = DM_get_tessface_data_layer(dm, CD_MTFACE);
MTFace *tf_stencil_base = NULL;
@@ -843,17 +843,17 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
}
}
else { /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
- GPU_vertex_setup(dm, GPU_SORT_MATERIAL_TEXTURE);
- GPU_normal_setup(dm, GPU_SORT_MATERIAL_TEXTURE);
+ GPU_vertex_setup(dm);
+ GPU_normal_setup(dm);
if (uvflag & DM_DRAW_USE_TEXPAINT_UV)
- GPU_texpaint_uv_setup(dm, GPU_SORT_MATERIAL_TEXTURE);
+ GPU_texpaint_uv_setup(dm);
else
- GPU_uv_setup(dm, GPU_SORT_MATERIAL_TEXTURE);
+ GPU_uv_setup(dm);
if (mcol) {
- GPU_color_setup(dm, colType, GPU_SORT_MATERIAL_TEXTURE);
+ GPU_color_setup(dm, colType);
}
- if (!GPU_buffer_legacy(dm, GPU_SORT_MATERIAL_TEXTURE)) {
+ if (!GPU_buffer_legacy(dm)) {
int tottri = dm->drawObject->tot_triangle_point / 3;
int next_actualFace = dm->drawObject->triangle_to_mface[0];
@@ -968,7 +968,7 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm,
/* back-buffer always uses legacy since VBO's would need the
* color array temporarily overwritten for drawing, then reset. */
- if (GPU_buffer_legacy(dm, GPU_SORT_MATERIAL) || G.f & G_BACKBUFSEL) {
+ if (GPU_buffer_legacy(dm) || G.f & G_BACKBUFSEL) {
DEBUG_VBO("Using legacy code. cdDM_drawMappedFaces\n");
for (i = 0; i < dm->numTessFaceData; i++, mf++) {
int drawSmooth = ((flag & DM_DRAW_ALWAYS_SMOOTH) || lnors) ? 1 : (mf->flag & ME_SMOOTH);
@@ -1070,12 +1070,12 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm,
}
else { /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
int prevstart = 0;
- GPU_vertex_setup(dm, GPU_SORT_MATERIAL);
- GPU_normal_setup(dm, GPU_SORT_MATERIAL);
+ GPU_vertex_setup(dm);
+ GPU_normal_setup(dm);
if (useColors && mcol) {
- GPU_color_setup(dm, colType, GPU_SORT_MATERIAL);
+ GPU_color_setup(dm, colType);
}
- if (!GPU_buffer_legacy(dm, GPU_SORT_MATERIAL)) {
+ if (!GPU_buffer_legacy(dm)) {
int tottri = dm->drawObject->tot_triangle_point / 3;
glShadeModel(GL_SMOOTH);
@@ -1270,7 +1270,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
glShadeModel(GL_SMOOTH);
- if (GPU_buffer_legacy(dm, GPU_SORT_MATERIAL) || setDrawOptions != NULL) {
+ if (GPU_buffer_legacy(dm) || setDrawOptions != NULL) {
DEBUG_VBO("Using legacy code. cdDM_drawMappedFacesGLSL\n");
memset(&attribs, 0, sizeof(attribs));
@@ -1352,10 +1352,10 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
GPUAttrib datatypes[GPU_MAX_ATTRIB]; /* TODO, messing up when switching materials many times - [#21056]*/
memset(&attribs, 0, sizeof(attribs));
- GPU_vertex_setup(dm, GPU_SORT_MATERIAL);
- GPU_normal_setup(dm, GPU_SORT_MATERIAL);
+ GPU_vertex_setup(dm);
+ GPU_normal_setup(dm);
- if (!GPU_buffer_legacy(dm, GPU_SORT_MATERIAL)) {
+ if (!GPU_buffer_legacy(dm)) {
for (i = 0; i < dm->drawObject->tot_triangle_point / 3; i++) {
a = dm->drawObject->triangle_to_mface[i];
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 07abb99..376d3d3 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -3024,7 +3024,7 @@ static void vpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
* avoid this if we can! */
DAG_id_tag_update(ob->data, 0);
}
- else if (!GPU_buffer_legacy(ob->derivedFinal, GPU_SORT_MATERIAL)) {
+ else if (!GPU_buffer_legacy(ob->derivedFinal)) {
/* If using new VBO drawing, mark mcol as dirty to force colors gpu buffer refresh! */
ob->derivedFinal->dirty |= DM_DIRTY_MCOL_UPDATE_DRAW;
}
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index d2eaeee..7334afe 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -930,7 +930,7 @@ static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d
}
}
else {
- if (GPU_buffer_legacy(dm, GPU_SORT_MATERIAL)) {
+ if (GPU_buffer_legacy(dm)) {
if (draw_flags & DRAW_MODIFIERS_PREVIEW)
dm->drawFacesTex(dm, draw_mcol__set_draw_legacy, NULL, NULL, uvflag);
else
diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h
index e152acf..c690b0c 100644
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@ -133,25 +133,18 @@ void GPU_global_buffer_pool_free_unused(void);
GPUBuffer *GPU_buffer_alloc(int size);
void GPU_buffer_free(GPUBuffer *buffer);
-/* how are vertex data sorted */
-typedef enum GPUSortType {
- GPU_SORT_NONE = 0, /* no sorting, just dump data */
- GPU_SORT_MATERIAL = 1, /* sort based on materials only */
- GPU_SORT_MATERIAL_TEXTURE = 2 /* sort based on materials and textures */
-} GPUSortType;
-
-GPUDrawObject *GPU_drawobject_new(struct DerivedMesh *dm, GPUSortType type);
+GPUDrawObject *GPU_drawobject_new(struct DerivedMesh *dm);
void GPU_drawobject_free(struct DerivedMesh *dm);
/* called before drawing */
-void GPU_vertex_setup(struct DerivedMesh *dm, GPUSortType type);
-void GPU_normal_setup(struct DerivedMesh *dm, GPUSortType type);
-void GPU_uv_setup(struct DerivedMesh *dm, GPUSortType type);
-void GPU_texpaint_uv_setup(struct DerivedMesh *dm, GPUSortType type);
+void GPU_vertex_setup(struct DerivedMesh *dm);
+void GPU_normal_setup(struct DerivedMesh *dm);
+void GPU_uv_setup(struct DerivedMesh *dm);
+void GPU_texpaint_uv_setup(struct DerivedMesh *dm);
/* colType is the cddata MCol type to use! */
-void GPU_color_setup(struct DerivedMesh *dm, int colType, GPUSortType type);
-void GPU_edge_setup(struct DerivedMesh *dm, GPUSortType type); /* does not mix with other data */
-void GPU_uvedge_setup(struct DerivedMesh *dm, GPUSortType type);
+void GPU_color_setup(struct DerivedMesh *dm, int colType);
+void GPU_edge_setup(struct DerivedMesh *dm); /* does not mix with other data */
+void GPU_uvedge_setup(struct DerivedMesh *dm);
int GPU_attrib_ele
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list