Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Unified Diff: third_party/gles_book_examples/Common/Source/esShapes.c

Issue 543002: Renamed gles_book_examples to gles2_book to make it shorter and more correct.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gles_book_examples/Common/Source/esShapes.c
===================================================================
--- third_party/gles_book_examples/Common/Source/esShapes.c (revision 35873)
+++ third_party/gles_book_examples/Common/Source/esShapes.c (working copy)
@@ -1,280 +0,0 @@
-//
-// Book: OpenGL(R) ES 2.0 Programming Guide
-// Authors: Aaftab Munshi, Dan Ginsburg, Dave Shreiner
-// ISBN-10: 0321502795
-// ISBN-13: 9780321502797
-// Publisher: Addison-Wesley Professional
-// URLs: http://safari.informit.com/9780321563835
-// http://www.opengles-book.com
-//
-
-// ESShapes.c
-//
-// Utility functions for generating shapes
-//
-
-///
-// Includes
-//
-#include "esUtil.h"
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-
-///
-// Defines
-//
-#define ES_PI (3.14159265f)
-
-//////////////////////////////////////////////////////////////////
-//
-// Private Functions
-//
-//
-
-
-
-//////////////////////////////////////////////////////////////////
-//
-// Public Functions
-//
-//
-
-//
-/// \brief Generates geometry for a sphere. Allocates memory for the vertex data and stores
-/// the results in the arrays. Generate index list for a TRIANGLE_STRIP
-/// \param numSlices The number of slices in the sphere
-/// \param vertices If not NULL, will contain array of float3 positions
-/// \param normals If not NULL, will contain array of float3 normals
-/// \param texCoords If not NULL, will contain array of float2 texCoords
-/// \param indices If not NULL, will contain the array of indices for the triangle strip
-/// \return The number of indices required for rendering the buffers (the number of indices stored in the indices array
-/// if it is not NULL ) as a GL_TRIANGLE_STRIP
-//
-int esGenSphere ( int numSlices, float radius, GLfloat **vertices, GLfloat **normals,
- GLfloat **texCoords, GLuint **indices )
-{
- int i;
- int j;
- int numParallels = numSlices / 2;
- int numVertices = ( numParallels + 1 ) * ( numSlices + 1 );
- int numIndices = numParallels * numSlices * 6;
- float angleStep = (2.0f * ES_PI) / ((float) numSlices);
-
- // Allocate memory for buffers
- if ( vertices != NULL )
- *vertices = malloc ( sizeof(GLfloat) * 3 * numVertices );
-
- if ( normals != NULL )
- *normals = malloc ( sizeof(GLfloat) * 3 * numVertices );
-
- if ( texCoords != NULL )
- *texCoords = malloc ( sizeof(GLfloat) * 2 * numVertices );
-
- if ( indices != NULL )
- *indices = malloc ( sizeof(GLuint) * numIndices );
-
- for ( i = 0; i < numParallels + 1; i++ )
- {
- for ( j = 0; j < numSlices + 1; j++ )
- {
- int vertex = ( i * (numSlices + 1) + j ) * 3;
-
- if ( vertices )
- {
- (*vertices)[vertex + 0] = radius * sinf ( angleStep * (float)i ) *
- sinf ( angleStep * (float)j );
- (*vertices)[vertex + 1] = radius * cosf ( angleStep * (float)i );
- (*vertices)[vertex + 2] = radius * sinf ( angleStep * (float)i ) *
- cosf ( angleStep * (float)j );
- }
-
- if ( normals )
- {
- (*normals)[vertex + 0] = (*vertices)[vertex + 0] / radius;
- (*normals)[vertex + 1] = (*vertices)[vertex + 1] / radius;
- (*normals)[vertex + 2] = (*vertices)[vertex + 2] / radius;
- }
-
- if ( texCoords )
- {
- int texIndex = ( i * (numSlices + 1) + j ) * 2;
- (*texCoords)[texIndex + 0] = (float) j / (float) numSlices;
- (*texCoords)[texIndex + 1] = ( 1.0f - (float) i ) / (float) (numParallels - 1 );
- }
- }
- }
-
- // Generate the indices
- if ( indices != NULL )
- {
- GLuint *indexBuf = (*indices);
- for ( i = 0; i < numParallels ; i++ )
- {
- for ( j = 0; j < numSlices; j++ )
- {
- *indexBuf++ = i * ( numSlices + 1 ) + j;
- *indexBuf++ = ( i + 1 ) * ( numSlices + 1 ) + j;
- *indexBuf++ = ( i + 1 ) * ( numSlices + 1 ) + ( j + 1 );
-
- *indexBuf++ = i * ( numSlices + 1 ) + j;
- *indexBuf++ = ( i + 1 ) * ( numSlices + 1 ) + ( j + 1 );
- *indexBuf++ = i * ( numSlices + 1 ) + ( j + 1 );
- }
- }
- }
-
- return numIndices;
-}
-
-//
-/// \brief Generates geometry for a cube. Allocates memory for the vertex data and stores
-/// the results in the arrays. Generate index list for a TRIANGLES
-/// \param scale The size of the cube, use 1.0 for a unit cube.
-/// \param vertices If not NULL, will contain array of float3 positions
-/// \param normals If not NULL, will contain array of float3 normals
-/// \param texCoords If not NULL, will contain array of float2 texCoords
-/// \param indices If not NULL, will contain the array of indices for the triangle strip
-/// \return The number of indices required for rendering the buffers (the number of indices stored in the indices array
-/// if it is not NULL ) as a GL_TRIANGLE_STRIP
-//
-int esGenCube ( float scale, GLfloat **vertices, GLfloat **normals,
- GLfloat **texCoords, GLuint **indices )
-{
- int i;
- int numVertices = 24;
- int numIndices = 36;
-
- GLfloat cubeVerts[] =
- {
- -0.5f, -0.5f, -0.5f,
- -0.5f, -0.5f, 0.5f,
- 0.5f, -0.5f, 0.5f,
- 0.5f, -0.5f, -0.5f,
- -0.5f, 0.5f, -0.5f,
- -0.5f, 0.5f, 0.5f,
- 0.5f, 0.5f, 0.5f,
- 0.5f, 0.5f, -0.5f,
- -0.5f, -0.5f, -0.5f,
- -0.5f, 0.5f, -0.5f,
- 0.5f, 0.5f, -0.5f,
- 0.5f, -0.5f, -0.5f,
- -0.5f, -0.5f, 0.5f,
- -0.5f, 0.5f, 0.5f,
- 0.5f, 0.5f, 0.5f,
- 0.5f, -0.5f, 0.5f,
- -0.5f, -0.5f, -0.5f,
- -0.5f, -0.5f, 0.5f,
- -0.5f, 0.5f, 0.5f,
- -0.5f, 0.5f, -0.5f,
- 0.5f, -0.5f, -0.5f,
- 0.5f, -0.5f, 0.5f,
- 0.5f, 0.5f, 0.5f,
- 0.5f, 0.5f, -0.5f,
- };
-
- GLfloat cubeNormals[] =
- {
- 0.0f, -1.0f, 0.0f,
- 0.0f, -1.0f, 0.0f,
- 0.0f, -1.0f, 0.0f,
- 0.0f, -1.0f, 0.0f,
- 0.0f, 1.0f, 0.0f,
- 0.0f, 1.0f, 0.0f,
- 0.0f, 1.0f, 0.0f,
- 0.0f, 1.0f, 0.0f,
- 0.0f, 0.0f, -1.0f,
- 0.0f, 0.0f, -1.0f,
- 0.0f, 0.0f, -1.0f,
- 0.0f, 0.0f, -1.0f,
- 0.0f, 0.0f, 1.0f,
- 0.0f, 0.0f, 1.0f,
- 0.0f, 0.0f, 1.0f,
- 0.0f, 0.0f, 1.0f,
- -1.0f, 0.0f, 0.0f,
- -1.0f, 0.0f, 0.0f,
- -1.0f, 0.0f, 0.0f,
- -1.0f, 0.0f, 0.0f,
- 1.0f, 0.0f, 0.0f,
- 1.0f, 0.0f, 0.0f,
- 1.0f, 0.0f, 0.0f,
- 1.0f, 0.0f, 0.0f,
- };
-
- GLfloat cubeTex[] =
- {
- 0.0f, 0.0f,
- 0.0f, 1.0f,
- 1.0f, 1.0f,
- 1.0f, 0.0f,
- 1.0f, 0.0f,
- 1.0f, 1.0f,
- 0.0f, 1.0f,
- 0.0f, 0.0f,
- 0.0f, 0.0f,
- 0.0f, 1.0f,
- 1.0f, 1.0f,
- 1.0f, 0.0f,
- 0.0f, 0.0f,
- 0.0f, 1.0f,
- 1.0f, 1.0f,
- 1.0f, 0.0f,
- 0.0f, 0.0f,
- 0.0f, 1.0f,
- 1.0f, 1.0f,
- 1.0f, 0.0f,
- 0.0f, 0.0f,
- 0.0f, 1.0f,
- 1.0f, 1.0f,
- 1.0f, 0.0f,
- };
-
- // Allocate memory for buffers
- if ( vertices != NULL )
- {
- *vertices = malloc ( sizeof(GLfloat) * 3 * numVertices );
- memcpy( *vertices, cubeVerts, sizeof( cubeVerts ) );
- for ( i = 0; i < numVertices; i++ )
- {
- (*vertices)[i] *= scale;
- }
- }
-
- if ( normals != NULL )
- {
- *normals = malloc ( sizeof(GLfloat) * 3 * numVertices );
- memcpy( *normals, cubeNormals, sizeof( cubeNormals ) );
- }
-
- if ( texCoords != NULL )
- {
- *texCoords = malloc ( sizeof(GLfloat) * 2 * numVertices );
- memcpy( *texCoords, cubeTex, sizeof( cubeTex ) ) ;
- }
-
-
- // Generate the indices
- if ( indices != NULL )
- {
- GLuint cubeIndices[] =
- {
- 0, 2, 1,
- 0, 3, 2,
- 4, 5, 6,
- 4, 6, 7,
- 8, 9, 10,
- 8, 10, 11,
- 12, 15, 14,
- 12, 14, 13,
- 16, 17, 18,
- 16, 18, 19,
- 20, 23, 22,
- 20, 22, 21
- };
-
- *indices = malloc ( sizeof(GLuint) * numIndices );
- memcpy( *indices, cubeIndices, sizeof( cubeIndices ) );
- }
-
- return numIndices;
-}
« no previous file with comments | « third_party/gles_book_examples/Common/Source/esShader.c ('k') | third_party/gles_book_examples/Common/Source/esTransform.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698