[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30311] trunk/blender/source/blender: Fix a few compile warnings and rename gpu_buffers.h to GPU_buffers.h
Brecht Van Lommel
brecht at blender.org
Wed Jul 14 12:46:13 CEST 2010
Revision: 30311
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30311
Author: blendix
Date: 2010-07-14 12:46:12 +0200 (Wed, 14 Jul 2010)
Log Message:
-----------
Fix a few compile warnings and rename gpu_buffers.h to GPU_buffers.h
for consistency.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
trunk/blender/source/blender/blenlib/intern/pbvh.c
trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
trunk/blender/source/blender/editors/space_view3d/drawmesh.c
trunk/blender/source/blender/gpu/intern/gpu_buffers.c
trunk/blender/source/blender/gpu/intern/gpu_draw.c
trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
Added Paths:
-----------
trunk/blender/source/blender/gpu/GPU_buffers.h
Removed Paths:
-------------
trunk/blender/source/blender/gpu/gpu_buffers.h
Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2010-07-14 10:44:34 UTC (rev 30310)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2010-07-14 10:46:12 UTC (rev 30311)
@@ -59,7 +59,7 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#include "GPU_draw.h"
#include "GPU_extensions.h"
#include "GPU_material.h"
Modified: trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c 2010-07-14 10:44:34 UTC (rev 30310)
+++ trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c 2010-07-14 10:46:12 UTC (rev 30311)
@@ -54,7 +54,7 @@
#include "MEM_guardedalloc.h"
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#include "GPU_draw.h"
#include "GPU_extensions.h"
#include "GPU_material.h"
Modified: trunk/blender/source/blender/blenlib/intern/pbvh.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/pbvh.c 2010-07-14 10:44:34 UTC (rev 30310)
+++ trunk/blender/source/blender/blenlib/intern/pbvh.c 2010-07-14 10:46:12 UTC (rev 30311)
@@ -32,7 +32,7 @@
#include "BKE_mesh.h" /* for mesh_calc_normals */
#include "BKE_global.h" /* for mesh_calc_normals */
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#define LEAF_LIMIT 10000
Modified: trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/sculpt.c 2010-07-14 10:44:34 UTC (rev 30310)
+++ trunk/blender/source/blender/editors/sculpt_paint/sculpt.c 2010-07-14 10:46:12 UTC (rev 30311)
@@ -82,7 +82,7 @@
#include "RE_render_ext.h"
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#include <math.h>
#include <stdlib.h>
Modified: trunk/blender/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawmesh.c 2010-07-14 10:44:34 UTC (rev 30310)
+++ trunk/blender/source/blender/editors/space_view3d/drawmesh.c 2010-07-14 10:46:12 UTC (rev 30311)
@@ -62,7 +62,7 @@
#include "UI_resources.h"
-#include "gpu_buffers.h"
+#include "GPU_buffers.h"
#include "GPU_extensions.h"
#include "GPU_draw.h"
Copied: trunk/blender/source/blender/gpu/GPU_buffers.h (from rev 30304, trunk/blender/source/blender/gpu/gpu_buffers.h)
===================================================================
--- trunk/blender/source/blender/gpu/GPU_buffers.h (rev 0)
+++ trunk/blender/source/blender/gpu/GPU_buffers.h 2010-07-14 10:46:12 UTC (rev 30311)
@@ -0,0 +1,178 @@
+/**
+ * $Id$
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Brecht Van Lommel.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __GPU_BUFFERS_H__
+#define __GPU_BUFFERS_H__
+
+#define MAX_FREE_GPU_BUFFERS 8
+
+#ifdef _DEBUG
+/*#define DEBUG_VBO(X) printf(X)*/
+#define DEBUG_VBO(X)
+#else
+#define DEBUG_VBO(X)
+#endif
+
+#ifdef _DEBUG
+#define ERROR_VBO(X) printf(X)
+#else
+#define ERROR_VBO(X)
+#endif
+
+struct DerivedMesh;
+struct DMGridData;
+struct GHash;
+struct DMGridData;
+
+/* V - vertex, N - normal, T - uv, C - color
+ F - float, UB - unsigned byte */
+#define GPU_BUFFER_INTER_V3F 1
+#define GPU_BUFFER_INTER_N3F 2
+#define GPU_BUFFER_INTER_T2F 3
+#define GPU_BUFFER_INTER_C3UB 4
+#define GPU_BUFFER_INTER_C4UB 5
+#define GPU_BUFFER_INTER_END -1
+
+typedef struct GPUBuffer
+{
+ int size; /* in bytes */
+ void *pointer; /* used with vertex arrays */
+ unsigned int id; /* used with vertex buffer objects */
+} GPUBuffer;
+
+typedef struct GPUBufferPool
+{
+ int size; /* number of allocated buffers stored */
+ int maxsize; /* size of the array */
+ GPUBuffer **buffers;
+} GPUBufferPool;
+
+typedef struct GPUBufferMaterial
+{
+ int start; /* at which vertex in the buffer the material starts */
+ int end; /* at which vertex it ends */
+ char mat_nr;
+} GPUBufferMaterial;
+
+typedef struct IndexLink {
+ int element;
+ struct IndexLink *next;
+} IndexLink;
+
+typedef struct GPUDrawObject
+{
+ GPUBuffer *vertices;
+ GPUBuffer *normals;
+ GPUBuffer *uv;
+ GPUBuffer *colors;
+ GPUBuffer *edges;
+ GPUBuffer *uvedges;
+
+ int *faceRemap; /* at what index was the face originally in DerivedMesh */
+ IndexLink *indices; /* given an index, find all elements using it */
+ IndexLink *indexMem; /* for faster memory allocation/freeing */
+ int indexMemUsage; /* how many are already allocated */
+ int colType;
+
+ GPUBufferMaterial *materials;
+
+ int nmaterials;
+ int nelements; /* (number of faces) * 3 */
+ int nlooseverts;
+ int nedges;
+ int nindices;
+ int legacy; /* if there was a failure allocating some buffer, use old rendering code */
+
+} GPUDrawObject;
+
+typedef struct GPUAttrib
+{
+ int index;
+ int size;
+ int type;
+} GPUAttrib;
+
+GPUBufferPool *GPU_buffer_pool_new();
+void GPU_buffer_pool_free( GPUBufferPool *pool );
+void GPU_buffer_pool_free_unused( GPUBufferPool *pool );
+
+GPUBuffer *GPU_buffer_alloc( int size, GPUBufferPool *pool );
+void GPU_buffer_free( GPUBuffer *buffer, GPUBufferPool *pool );
+
+GPUDrawObject *GPU_drawobject_new( struct DerivedMesh *dm );
+void GPU_drawobject_free( struct DerivedMesh *dm );
+
+/* Buffers for non-DerivedMesh drawing */
+void *GPU_build_mesh_buffers(struct GHash *map, struct MVert *mvert,
+ struct MFace *mface, int *face_indices,
+ int totface, int *vert_indices, int uniq_verts,
+ int totvert);
+void GPU_update_mesh_buffers(void *buffers, struct MVert *mvert,
+ int *vert_indices, int totvert);
+void *GPU_build_grid_buffers(struct DMGridData **grids,
+ int *grid_indices, int totgrid, int gridsize);
+void GPU_update_grid_buffers(void *buffers_v, struct DMGridData **grids,
+ int *grid_indices, int totgrid, int gridsize, int smooth);
+void GPU_draw_buffers(void *buffers);
+void GPU_free_buffers(void *buffers);
+
+/* called before drawing */
+void GPU_vertex_setup( struct DerivedMesh *dm );
+void GPU_normal_setup( struct DerivedMesh *dm );
+void GPU_uv_setup( struct DerivedMesh *dm );
+void GPU_color_setup( struct DerivedMesh *dm );
+void GPU_edge_setup( struct DerivedMesh *dm ); /* does not mix with other data */
+void GPU_uvedge_setup( struct DerivedMesh *dm );
+void GPU_interleaved_setup( GPUBuffer *buffer, int data[] );
+int GPU_attrib_element_size( GPUAttrib data[], int numdata );
+void GPU_interleaved_attrib_setup( GPUBuffer *buffer, GPUAttrib data[], int numdata );
+
+/* can't lock more than one buffer at once */
+void *GPU_buffer_lock( GPUBuffer *buffer );
+void *GPU_buffer_lock_stream( GPUBuffer *buffer );
+void GPU_buffer_unlock( GPUBuffer *buffer );
+
+/* upload three unsigned chars, representing RGB colors, for each vertex. Resets dm->drawObject->colType to -1 */
+void GPU_color3_upload( struct DerivedMesh *dm, unsigned char *data );
+/* upload four unsigned chars, representing RGBA colors, for each vertex. Resets dm->drawObject->colType to -1 */
+void GPU_color4_upload( struct DerivedMesh *dm, unsigned char *data );
+/* switch color rendering on=1/off=0 */
+void GPU_color_switch( int mode );
+
+void GPU_buffer_draw_elements( GPUBuffer *elements, unsigned int mode, int start, int count );
+
+/* called after drawing */
+void GPU_buffer_unbind();
+
+int GPU_buffer_legacy( struct DerivedMesh *dm );
+
+#endif
Property changes on: trunk/blender/source/blender/gpu/GPU_buffers.h
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:mergeinfo
+
Name: svn:eol-style
+ native
Deleted: trunk/blender/source/blender/gpu/gpu_buffers.h
===================================================================
--- trunk/blender/source/blender/gpu/gpu_buffers.h 2010-07-14 10:44:34 UTC (rev 30310)
+++ trunk/blender/source/blender/gpu/gpu_buffers.h 2010-07-14 10:46:12 UTC (rev 30311)
@@ -1,177 +0,0 @@
-/**
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License. See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2005 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Brecht Van Lommel.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __GPU_BUFFERS_H__
-#define __GPU_BUFFERS_H__
-
-#define MAX_FREE_GPU_BUFFERS 8
-
-#ifdef _DEBUG
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list