aboutsummaryrefslogtreecommitdiff
path: root/tests/sdl_ogl.c
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-05-30 13:48:40 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-05-30 13:48:40 -0700
commit29a025962b9dc92534c2dcec5f068a9983b9f80b (patch)
tree8b67c660b1828923a1d8ad24e5f94943cafd3fe1 /tests/sdl_ogl.c
parent5a4828f4ae133fcd6d2abaf2822d6184b07eb513 (diff)
parenteefa5818573b8494549dfc30e8fd1faa4975f2af (diff)
Merge branch 'texenv' of github.com:jdashg/emscripten into incoming
Diffstat (limited to 'tests/sdl_ogl.c')
-rw-r--r--tests/sdl_ogl.c48
1 files changed, 22 insertions, 26 deletions
diff --git a/tests/sdl_ogl.c b/tests/sdl_ogl.c
index 6b6a5b4a..e7071dcd 100644
--- a/tests/sdl_ogl.c
+++ b/tests/sdl_ogl.c
@@ -46,14 +46,12 @@ int main(int argc, char *argv[])
printf("Unable to set video mode: %s\n", SDL_GetError());
return 1;
}
-
+
// Set the OpenGL state after creating the context with SDL_SetVideoMode
glClearColor( 0, 0, 0, 0 );
-
-#if !EMSCRIPTEN
- glEnable( GL_TEXTURE_2D ); // Need this to display a texture XXX unnecessary in OpenGL ES 2.0/WebGL
-#endif
+
+ glEnable( GL_TEXTURE_2D ); // Needed when we're using the fixed-function pipeline.
glViewport( 0, 0, 640, 480 );
@@ -62,33 +60,33 @@ int main(int argc, char *argv[])
glLoadIdentity();
glOrtho( 0, 640, 480, 0, -1, 1 );
-
+
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
-
+
// Load the OpenGL texture
GLuint texture; // Texture object handle
SDL_Surface *surface; // Gives us the information to make the texture
-
- if ( (surface = IMG_Load("screenshot.png")) ) {
-
+
+ if ( (surface = IMG_Load("screenshot.png")) ) {
+
// Check that the image's width is a power of 2
if ( (surface->w & (surface->w - 1)) != 0 ) {
printf("warning: image.bmp's width is not a power of 2\n");
}
-
+
// Also check if the height is a power of 2
if ( (surface->h & (surface->h - 1)) != 0 ) {
printf("warning: image.bmp's height is not a power of 2\n");
}
-
+
// Have OpenGL generate a texture object handle for us
glGenTextures( 1, &texture );
-
+
// Bind the texture object
glBindTexture( GL_TEXTURE_2D, texture );
-
+
// Set the texture's stretching properties
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
@@ -99,25 +97,25 @@ int main(int argc, char *argv[])
memset(surface->pixels, 0x66, surface->w*surface->h);
// Edit the texture object's image data using the information SDL_Surface gives us
- glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, surface->w, surface->h, 0,
+ glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, surface->w, surface->h, 0,
GL_RGBA, GL_UNSIGNED_BYTE, surface->pixels );
//SDL_UnlockSurface(surface);
- }
+ }
else {
printf("SDL could not load image.bmp: %s\n", SDL_GetError());
SDL_Quit();
return 1;
- }
-
+ }
+
// Free the SDL_Surface only if it was successfully created
- if ( surface ) {
+ if ( surface ) {
SDL_FreeSurface( surface );
}
-
+
// Clear the screen before drawing
glClear( GL_COLOR_BUFFER_BIT );
-
+
// Bind the texture to which subsequent calls refer to
glBindTexture( GL_TEXTURE_2D, texture );
@@ -140,9 +138,7 @@ int main(int argc, char *argv[])
glTexCoord2i( 0, 1 ); glVertex3f( 500, 410, 0 );
glEnd();
-#if !EMSCRIPTEN
glDisable(GL_TEXTURE_2D);
-#endif
glColor3ub(90, 255, 255);
glBegin( GL_QUADS );
@@ -160,7 +156,7 @@ int main(int argc, char *argv[])
glEnd();
SDL_GL_SwapBuffers();
-
+
#if !EMSCRIPTEN
// Wait for 3 seconds to give us a chance to see the image
SDL_Delay(3000);
@@ -168,8 +164,8 @@ int main(int argc, char *argv[])
// Now we can delete the OpenGL texture and close down SDL
glDeleteTextures( 1, &texture );
-
+
SDL_Quit();
-
+
return 0;
}