Added texture wrap demo.
BUG=26099
TEST=Run texture_wrap executable. You should see three quads, each with a different texture wrapping mode.
Review URL: http://codereview.chromium.org/552012

git-svn-id: http://src.chromium.org/svn/trunk/src/third_party/gles2_book@36394 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
diff --git a/Chapter_9/TextureWrap/TextureWrap.c b/Chapter_9/TextureWrap/TextureWrap.c
index 8507f77..5298283 100644
--- a/Chapter_9/TextureWrap/TextureWrap.c
+++ b/Chapter_9/TextureWrap/TextureWrap.c
@@ -14,30 +14,7 @@
 //    wrap modes available on 2D textures
 //
 #include <stdlib.h>
-#include "esUtil.h"
-
-typedef struct
-{
-   // Handle to a program object
-   GLuint programObject;
-
-   // Attribute locations
-   GLint  positionLoc;
-   GLint  texCoordLoc;
-
-   // Sampler location
-   GLint samplerLoc;
-
-   // Offset location
-   GLint offsetLoc;
-
-   // Texture handle
-   GLuint textureId;
-
-   // Vertex buffer object handle
-   GLuint vboIds[2];
-
-} UserData;
+#include "TextureWrap.h"
 
 ///
 //  Generate an RGB8 checkerboard image
@@ -113,9 +90,9 @@
 ///
 // Initialize the shader and program object
 //
-int Init ( ESContext *esContext )
+int twInit ( ESContext *esContext )
 {
-   UserData *userData = esContext->userData;
+   TWUserData *userData = esContext->userData;
    GLbyte vShaderStr[] =
       "uniform float u_offset;      \n"
       "attribute vec4 a_position;   \n"
@@ -183,9 +160,9 @@
 #define VTX_POS_SIZE 4
 #define VTX_TEX_SIZE 2
 #define VTX_STRIDE (6 * sizeof(GLfloat))
-void Draw ( ESContext *esContext )
+void twDraw ( ESContext *esContext )
 {
-   UserData *userData = esContext->userData;
+   TWUserData *userData = esContext->userData;
    GLuint offset = 0;
       
    // Set the viewport
@@ -232,16 +209,14 @@
    glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT );
    glUniform1f ( userData->offsetLoc, 0.7f );
    glDrawElements ( GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0 );
-
-   eglSwapBuffers ( esContext->eglDisplay, esContext->eglSurface );
 }
 
 ///
 // Cleanup
 //
-void ShutDown ( ESContext *esContext )
+void twShutDown ( ESContext *esContext )
 {
-   UserData *userData = esContext->userData;
+   TWUserData *userData = esContext->userData;
 
    // Delete texture object
    glDeleteTextures ( 1, &userData->textureId );
@@ -252,24 +227,3 @@
    // Delete vertex buffer objects
    glDeleteBuffers ( 2, userData->vboIds );
 }
-
-
-int main ( int argc, char *argv[] )
-{
-   ESContext esContext;
-   UserData  userData;
-
-   esInitContext ( &esContext );
-   esContext.userData = &userData;
-
-   esCreateWindow ( &esContext, "MipMap 2D", 640, 480, ES_WINDOW_RGB );
-   
-   if ( !Init ( &esContext ) )
-      return 0;
-
-   esRegisterDrawFunc ( &esContext, Draw );
-   
-   esMainLoop ( &esContext );
-
-   ShutDown ( &esContext );
-}
diff --git a/Chapter_9/TextureWrap/TextureWrap.h b/Chapter_9/TextureWrap/TextureWrap.h
new file mode 100644
index 0000000..0067e67
--- /dev/null
+++ b/Chapter_9/TextureWrap/TextureWrap.h
@@ -0,0 +1,52 @@
+//
+// 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
+//
+
+#ifndef TEXTURE_WRAP_H
+#define TEXTURE_WRAP_H
+
+#include "esUtil.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif  // __cplusplus
+
+typedef struct
+{
+   // Handle to a program object
+   GLuint programObject;
+
+   // Attribute locations
+   GLint  positionLoc;
+   GLint  texCoordLoc;
+
+   // Sampler location
+   GLint samplerLoc;
+
+   // Offset location
+   GLint offsetLoc;
+
+   // Texture handle
+   GLuint textureId;
+
+   // Vertex buffer object handle
+   GLuint vboIds[2];
+
+} TWUserData;
+
+extern int twInit ( ESContext *esContext );
+
+extern void twDraw ( ESContext *esContext );
+
+extern void twShutDown ( ESContext *esContext );
+
+#ifdef __cplusplus
+}
+#endif  // __cplusplus
+#endif  // TEXTURE_WRAP_H
diff --git a/gles2_book.gyp b/gles2_book.gyp
index 667fbb5..e4975dc 100644
--- a/gles2_book.gyp
+++ b/gles2_book.gyp
@@ -83,6 +83,17 @@
         'Chapter_8/Simple_VertexShader/Simple_VertexShader.h',
       ],
     },
+    {
+      'target_name': 'texture_wrap',
+      'type': 'static_library',
+      'dependencies': [
+        'es_util',
+      ],
+      'sources': [
+        'Chapter_9/TextureWrap/TextureWrap.c',
+        'Chapter_9/TextureWrap/TextureWrap.h',
+      ],
+    },
   ]
 }