diff options
author | alokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-15 19:54:01 +0000 |
---|---|---|
committer | alokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-15 19:54:01 +0000 |
commit | 799b5e78c6fb3ed0da3809752bc68ca40f3c0c49 (patch) | |
tree | 2b3d2a11cffc66688d7f4b97b669145b887ca497 /third_party/gles2_book | |
parent | be1578ee37b4bd74028e408da4bd0d57e3ed44fc (diff) | |
download | chromium_src-799b5e78c6fb3ed0da3809752bc68ca40f3c0c49.zip chromium_src-799b5e78c6fb3ed0da3809752bc68ca40f3c0c49.tar.gz chromium_src-799b5e78c6fb3ed0da3809752bc68ca40f3c0c49.tar.bz2 |
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: svn://svn.chromium.org/chrome/trunk/src@36394 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/gles2_book')
-rw-r--r-- | third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.c | 60 | ||||
-rw-r--r-- | third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.h | 52 | ||||
-rw-r--r-- | third_party/gles2_book/gles2_book.gyp | 11 |
3 files changed, 70 insertions, 53 deletions
diff --git a/third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.c b/third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.c index 8507f77..5298283 100644 --- a/third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.c +++ b/third_party/gles2_book/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 @@ static GLuint CreateTexture2D( ) /// // 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 @@ int Init ( ESContext *esContext ) #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 @@ void Draw ( ESContext *esContext ) 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 @@ void ShutDown ( ESContext *esContext ) // 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/third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.h b/third_party/gles2_book/Chapter_9/TextureWrap/TextureWrap.h new file mode 100644 index 0000000..0067e67 --- /dev/null +++ b/third_party/gles2_book/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/third_party/gles2_book/gles2_book.gyp b/third_party/gles2_book/gles2_book.gyp index 667fbb5..e4975dc 100644 --- a/third_party/gles2_book/gles2_book.gyp +++ b/third_party/gles2_book/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', + ], + }, ] } |