diff options
author | Brian Paul <brianp@vmware.com> | 2009-02-10 16:44:02 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-02-10 16:44:02 -0700 |
commit | 5340b6dff73a0a23531ce2a5f28fba8303adab6e (patch) | |
tree | b141fc3648568dd8b941c966059e6ed32a8bd0ad /progs/egl/demo2.c | |
parent | 9fd26daec24f21dbe17afcb2e2ab272667ee9a69 (diff) | |
parent | ee4c921b65fb76998711f3c40330505cbc49a0e0 (diff) |
Merge commit 'origin/gallium-master-merge'
This is the big merge of the gallium-0.2 branch into master.
gallium-master-merge was just the staging area for it.
Both gallium-0.2 and gallium-master-merge are considered closed now.
Conflicts:
progs/demos/Makefile
src/mesa/main/state.c
src/mesa/main/texenvprogram.c
Diffstat (limited to 'progs/egl/demo2.c')
-rw-r--r-- | progs/egl/demo2.c | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/progs/egl/demo2.c b/progs/egl/demo2.c index 17bbca6158..d7283e13bd 100644 --- a/progs/egl/demo2.c +++ b/progs/egl/demo2.c @@ -2,35 +2,54 @@ * Exercise EGL API functions */ +#define EGL_EGLEXT_PROTOTYPES + #include <assert.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> -#include <GLES/egl.h> +#include <EGL/egl.h> +#include <EGL/eglext.h> +#include <GLES/gl.h> /*#define FRONTBUFFER*/ -static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) +static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2, + GLfloat r, GLfloat g, GLfloat b) { - glBegin( GL_QUADS ); - glVertex2f( x1, y1 ); - glVertex2f( x2, y1 ); - glVertex2f( x2, y2 ); - glVertex2f( x1, y2 ); - glEnd(); + GLfloat v[4][2], c[4][4]; + int i; + + v[0][0] = x1; v[0][1] = y1; + v[1][0] = x2; v[1][1] = y1; + v[2][0] = x2; v[2][1] = y2; + v[3][0] = x1; v[3][1] = y2; + + for (i = 0; i < 4; i++) { + c[i][0] = r; + c[i][1] = g; + c[i][2] = b; + c[i][3] = 1.0; + } + + glVertexPointer(2, GL_FLOAT, 0, v); + glColorPointer(4, GL_FLOAT, 0, v); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); } static void redraw(EGLDisplay dpy, EGLSurface surf, int rot) { - printf("Redraw event\n"); + GLfloat r, g, b; -#ifdef FRONTBUFFER - glDrawBuffer( GL_FRONT ); -#else - glDrawBuffer( GL_BACK ); -#endif + printf("Redraw event\n"); glClearColor( rand()/(float)RAND_MAX, rand()/(float)RAND_MAX, @@ -39,13 +58,14 @@ static void redraw(EGLDisplay dpy, EGLSurface surf, int rot) glClear( GL_COLOR_BUFFER_BIT ); - glColor3f( rand()/(float)RAND_MAX, - rand()/(float)RAND_MAX, - rand()/(float)RAND_MAX ); + r = rand()/(float)RAND_MAX; + g = rand()/(float)RAND_MAX; + b = rand()/(float)RAND_MAX; + glPushMatrix(); glRotatef(rot, 0, 0, 1); glScalef(.5, .5, .5); - _subset_Rectf( -1, -1, 1, 1 ); + _subset_Rectf( -1, -1, 1, 1, r, g, b ); glPopMatrix(); #ifdef FRONTBUFFER @@ -102,7 +122,7 @@ main(int argc, char *argv[]) /* EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY); */ - EGLDisplay d = eglGetDisplay("!fb_dri"); + EGLDisplay d = eglGetDisplay((EGLNativeDisplayType) "!EGL_i915"); assert(d); if (!eglInitialize(d, &maj, &min)) { @@ -161,7 +181,6 @@ main(int argc, char *argv[]) } glViewport(0, 0, 1024, 768); - glDrawBuffer( GL_FRONT ); glClearColor( 0, 1.0, |