diff options
Diffstat (limited to 'progs/egl/opengles1/drawtex.c')
-rw-r--r-- | progs/egl/opengles1/drawtex.c | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/progs/egl/opengles1/drawtex.c b/progs/egl/opengles1/drawtex.c deleted file mode 100644 index e9ac015340..0000000000 --- a/progs/egl/opengles1/drawtex.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (C) 2008 Tunsgten Graphics,Inc. All Rights Reserved. - */ - -/* - * Test GL_OES_draw_texture - * Brian Paul - * August 2008 - */ - -#define GL_GLEXT_PROTOTYPES - -#include <math.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <GLES/gl.h> -#include <GLES/glext.h> - -#include "eglut.h" - - -static GLfloat view_posx = 10.0, view_posy = 20.0; -static GLfloat width = 200, height = 200; -static GLboolean animate = GL_FALSE; -static int win; - - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT); - - glDrawTexfOES(view_posx, view_posy, 0.0, width, height); -} - - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat ar = (GLfloat) width / (GLfloat) height; - - glViewport(0, 0, (GLint) width, (GLint) height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - -#ifdef GL_VERSION_ES_CM_1_0 - glFrustumf(-ar, ar, -1, 1, 5.0, 60.0); -#else - glFrustum(-ar, ar, -1, 1, 5.0, 60.0); -#endif - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -15.0); -} - - -static float -dist(GLuint i, GLuint j, float x, float y) -{ - return sqrt((i-x) * (i-x) + (j-y) * (j-y)); -} - -static void -make_smile_texture(void) -{ -#define SZ 128 - GLenum Filter = GL_LINEAR; - GLubyte image[SZ][SZ][4]; - GLuint i, j; - GLint cropRect[4]; - - for (i = 0; i < SZ; i++) { - for (j = 0; j < SZ; j++) { - GLfloat d_mouth = dist(i, j, SZ/2, SZ/2); - GLfloat d_rt_eye = dist(i, j, SZ*3/4, SZ*3/4); - GLfloat d_lt_eye = dist(i, j, SZ*3/4, SZ*1/4); - if (d_rt_eye < SZ / 8 || d_lt_eye < SZ / 8) { - image[i][j][0] = 20; - image[i][j][1] = 50; - image[i][j][2] = 255; - image[i][j][3] = 255; - } - else if (i < SZ/2 && d_mouth < SZ/3) { - image[i][j][0] = 255; - image[i][j][1] = 20; - image[i][j][2] = 20; - image[i][j][3] = 255; - } - else { - image[i][j][0] = 200; - image[i][j][1] = 200; - image[i][j][2] = 200; - image[i][j][3] = 255; - } - } - } - - glActiveTexture(GL_TEXTURE0); /* unit 0 */ - glBindTexture(GL_TEXTURE_2D, 42); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ, SZ, 0, - GL_RGBA, GL_UNSIGNED_BYTE, image); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, Filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - cropRect[0] = 0; - cropRect[1] = 0; - cropRect[2] = SZ; - cropRect[3] = SZ; - glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, cropRect); -#undef SZ -} - - - -static void -init(void) -{ - const char *ext = (char *) glGetString(GL_EXTENSIONS); - - if (!strstr(ext, "GL_OES_draw_texture")) { - fprintf(stderr, "Sorry, this program requires GL_OES_draw_texture"); - exit(1); - } - - glClearColor(0.4, 0.4, 0.4, 0.0); - - make_smile_texture(); - glEnable(GL_TEXTURE_2D); -} - - -static void -idle(void) -{ - if (animate) { - view_posx += 1.0; - view_posy += 2.0; - eglutPostRedisplay(); - } -} - -static void -key(unsigned char key) -{ - switch (key) { - case ' ': - animate = !animate; - break; - case 'w': - width -= 1.0f; - break; - case 'W': - width += 1.0f; - break; - case 'h': - height -= 1.0f; - break; - case 'H': - height += 1.0f; - break; - case 27: - eglutDestroyWindow(win); - exit(0); - break; - default: - break; - } -} - -static void -special_key(int key) -{ - switch (key) { - case EGLUT_KEY_LEFT: - view_posx -= 1.0; - break; - case EGLUT_KEY_RIGHT: - view_posx += 1.0; - break; - case EGLUT_KEY_UP: - view_posy += 1.0; - break; - case EGLUT_KEY_DOWN: - view_posy -= 1.0; - break; - default: - break; - } -} - -int -main(int argc, char *argv[]) -{ - eglutInitWindowSize(400, 300); - eglutInitAPIMask(EGLUT_OPENGL_ES1_BIT); - eglutInit(argc, argv); - - win = eglutCreateWindow("drawtex"); - - eglutIdleFunc(idle); - eglutReshapeFunc(reshape); - eglutDisplayFunc(draw); - eglutKeyboardFunc(key); - eglutSpecialFunc(special_key); - - init(); - - eglutMainLoop(); - - return 0; -} |