summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics
diff options
context:
space:
mode:
authorAwais Belal <awais_belal@mentor.com>2016-04-22 18:24:48 +0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-06-29 19:35:57 +0100
commit83731d04b307b41cb575e5974f36312396edfbda (patch)
tree1f6ad0bd848f6e01996a1eb7c8bc2f5a68c1fc1e /meta/recipes-graphics
parent5cf3b562c333d2fd6fab238e4d51a5df0d0836e5 (diff)
downloadpoky-83731d04b307b41cb575e5974f36312396edfbda.tar.gz
mesa-demos: remove demos using obsolete screen surface
The mesa surface EGL_MESA_screen_surface was obsoleted and then dropped from mesa some time ago. Drop demos depending on this. (From OE-Core rev: 061c53c86e483c65f5cd350d6587dbae53c4ee75) (From OE-Core rev: 31e121789f6fd98751122a48446c435f49b4c7c6) Signed-off-by: Awais Belal <awais_belal@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics')
-rw-r--r--meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch1592
-rw-r--r--meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb1
2 files changed, 1593 insertions, 0 deletions
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch b/meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch
new file mode 100644
index 0000000000..a2621ce732
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch
@@ -0,0 +1,1592 @@
1commit 74443c6ee79f3251f643ea05e94df58183e37d0d
2Author: Matt Turner <mattst88@gmail.com>
3Date: Fri Aug 28 15:57:38 2015 -0700
4
5 egl: Remove demos using EGL_MESA_screen_surface.
6
7 The remnants of the extension were removed from Mesa in commit 7a58262e.
8
9 Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
10 Tested-by: Andreas Boll <andreas.boll.dev@gmail.com>
11 Reviewed-by: Marek Olšák <marek.olsak@amd.com>
12
13Upstream-Status: Backport
14
15diff --git a/src/egl/eglut/Makefile.am b/src/egl/eglut/Makefile.am
16index 2d2f2af..b765069 100644
17--- a/src/egl/eglut/Makefile.am
18+++ b/src/egl/eglut/Makefile.am
19@@ -33,17 +33,12 @@ if HAVE_WAYLAND
20 eglut_wayland = libeglut_wayland.la
21 endif
22
23-noinst_LTLIBRARIES = libeglut_screen.la $(eglut_x11) $(eglut_wayland)
24+noinst_LTLIBRARIES = $(eglut_x11) $(eglut_wayland)
25 endif
26
27-libeglut_screen_la_SOURCES = \
28- eglut.c \
29- eglut.h \
30- eglutint.h \
31- eglut_screen.c
32-
33 libeglut_x11_la_SOURCES = \
34 eglut.c \
35+ eglut.h \
36 eglutint.h \
37 eglut_x11.c
38 libeglut_x11_la_CFLAGS = $(X11_CFLAGS) $(EGL_CFLAGS)
39@@ -52,6 +47,7 @@ libeglut_x11_la_LIBADD = $(X11_LIBS) $(EGL_LIBS)
40
41 libeglut_wayland_la_SOURCES = \
42 eglut.c \
43+ eglut.h \
44 eglutint.h \
45 eglut_wayland.c
46
47diff --git a/src/egl/eglut/eglut.c b/src/egl/eglut/eglut.c
48index f6a2ad4..58b354a 100644
49--- a/src/egl/eglut/eglut.c
50+++ b/src/egl/eglut/eglut.c
51@@ -176,9 +176,6 @@ _eglutCreateWindow(const char *title, int x, int y, int w, int h)
52 win->config, win->native.u.pixmap, NULL);
53 break;
54 case EGL_PBUFFER_BIT:
55-#ifdef EGL_MESA_screen_surface
56- case EGL_SCREEN_BIT_MESA:
57-#endif
58 win->surface = win->native.u.surface;
59 break;
60 default:
61@@ -292,11 +289,7 @@ eglutDestroyWindow(int win)
62 if (window->index != win)
63 return;
64
65-#ifdef EGL_MESA_screen_surface
66- /* XXX it causes some bug in st/egl KMS backend */
67- if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA)
68-#endif
69- eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
70+ eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
71
72 _eglutDestroyWindow(_eglut->current);
73 }
74diff --git a/src/egl/eglut/eglut_screen.c b/src/egl/eglut/eglut_screen.c
75deleted file mode 100644
76index 094a4e2..0000000
77--- a/src/egl/eglut/eglut_screen.c
78+++ /dev/null
79@@ -1,194 +0,0 @@
80-/*
81- * Copyright (C) 2010 LunarG Inc.
82- *
83- * Permission is hereby granted, free of charge, to any person obtaining a
84- * copy of this software and associated documentation files (the "Software"),
85- * to deal in the Software without restriction, including without limitation
86- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
87- * and/or sell copies of the Software, and to permit persons to whom the
88- * Software is furnished to do so, subject to the following conditions:
89- *
90- * The above copyright notice and this permission notice shall be included
91- * in all copies or substantial portions of the Software.
92- *
93- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
94- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
95- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
96- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
97- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
98- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
99- * DEALINGS IN THE SOFTWARE.
100- *
101- * Authors:
102- * Chia-I Wu <olv@lunarg.com>
103- */
104-
105-#include <stdio.h>
106-#include <string.h>
107-#include <sys/time.h>
108-
109-#define EGL_EGLEXT_PROTOTYPES
110-#include "EGL/egl.h"
111-#include "EGL/eglext.h"
112-
113-#include "eglutint.h"
114-
115-#define MAX_MODES 100
116-
117-#ifdef EGL_MESA_screen_surface
118-static EGLScreenMESA kms_screen;
119-static EGLModeMESA kms_mode;
120-static EGLint kms_width, kms_height;
121-#endif
122-
123-void
124-_eglutNativeInitDisplay(void)
125-{
126-#ifdef EGL_MESA_screen_surface
127- _eglut->native_dpy = EGL_DEFAULT_DISPLAY;
128- _eglut->surface_type = EGL_SCREEN_BIT_MESA;
129-#endif
130-}
131-
132-void
133-_eglutNativeFiniDisplay(void)
134-{
135-#ifdef EGL_MESA_screen_surface
136- kms_screen = 0;
137- kms_mode = 0;
138- kms_width = 0;
139- kms_height = 0;
140-#endif
141-}
142-
143-#ifdef EGL_MESA_screen_surface
144-static void
145-init_kms(void)
146-{
147- EGLModeMESA modes[MAX_MODES];
148- EGLint num_screens, num_modes;
149- EGLint width, height, best_mode;
150- EGLint i;
151-
152- if (!eglGetScreensMESA(_eglut->dpy, &kms_screen, 1, &num_screens) ||
153- !num_screens)
154- _eglutFatal("eglGetScreensMESA failed\n");
155-
156- if (!eglGetModesMESA(_eglut->dpy, kms_screen,
157- modes, MAX_MODES, &num_modes) || !num_modes)
158- _eglutFatal("eglGetModesMESA failed!\n");
159-
160- printf("Found %d modes:\n", num_modes);
161-
162- best_mode = 0;
163- width = 0;
164- height = 0;
165- for (i = 0; i < num_modes; i++) {
166- EGLint w, h;
167- eglGetModeAttribMESA(_eglut->dpy, modes[i], EGL_WIDTH, &w);
168- eglGetModeAttribMESA(_eglut->dpy, modes[i], EGL_HEIGHT, &h);
169- printf("%3d: %d x %d\n", i, w, h);
170- if (w > width && h > height) {
171- width = w;
172- height = h;
173- best_mode = i;
174- }
175- }
176-
177- printf("Will use screen size: %d x %d\n", width, height);
178-
179- kms_mode = modes[best_mode];
180- kms_width = width;
181- kms_height = height;
182-}
183-#endif
184-
185-void
186-_eglutNativeInitWindow(struct eglut_window *win, const char *title,
187- int x, int y, int w, int h)
188-{
189-#ifdef EGL_MESA_screen_surface
190- EGLint surf_attribs[16];
191- EGLint i;
192-#endif
193- const char *exts;
194-
195- exts = eglQueryString(_eglut->dpy, EGL_EXTENSIONS);
196- if (!exts || !strstr(exts, "EGL_MESA_screen_surface"))
197- _eglutFatal("EGL_MESA_screen_surface is not supported\n");
198-
199-#ifdef EGL_MESA_screen_surface
200- init_kms();
201-
202- i = 0;
203- surf_attribs[i++] = EGL_WIDTH;
204- surf_attribs[i++] = kms_width;
205- surf_attribs[i++] = EGL_HEIGHT;
206- surf_attribs[i++] = kms_height;
207- surf_attribs[i++] = EGL_NONE;
208-
209- /* create surface */
210- win->native.u.surface = eglCreateScreenSurfaceMESA(_eglut->dpy,
211- win->config, surf_attribs);
212- if (win->native.u.surface == EGL_NO_SURFACE)
213- _eglutFatal("eglCreateScreenSurfaceMESA failed\n");
214-
215- if (!eglShowScreenSurfaceMESA(_eglut->dpy, kms_screen,
216- win->native.u.surface, kms_mode))
217- _eglutFatal("eglShowScreenSurfaceMESA failed\n");
218-
219- win->native.width = kms_width;
220- win->native.height = kms_height;
221-#endif
222-}
223-
224-void
225-_eglutNativeFiniWindow(struct eglut_window *win)
226-{
227-#ifdef EGL_MESA_screen_surface
228- eglShowScreenSurfaceMESA(_eglut->dpy,
229- kms_screen, EGL_NO_SURFACE, 0);
230- eglDestroySurface(_eglut->dpy, win->native.u.surface);
231-#endif
232-}
233-
234-void
235-_eglutNativeEventLoop(void)
236-{
237- int start = _eglutNow();
238- int frames = 0;
239-
240- _eglut->redisplay = 1;
241-
242- while (1) {
243- struct eglut_window *win = _eglut->current;
244- int now = _eglutNow();
245-
246- if (now - start > 5000) {
247- double elapsed = (double) (now - start) / 1000.0;
248-
249- printf("%d frames in %3.1f seconds = %6.3f FPS\n",
250- frames, elapsed, frames / elapsed);
251- fflush(stdout);
252-
253- start = now;
254- frames = 0;
255-
256- /* send escape */
257- if (win->keyboard_cb)
258- win->keyboard_cb(27);
259- }
260-
261- if (_eglut->idle_cb)
262- _eglut->idle_cb();
263-
264- if (_eglut->redisplay) {
265- _eglut->redisplay = 0;
266-
267- if (win->display_cb)
268- win->display_cb();
269- eglSwapBuffers(_eglut->dpy, win->surface);
270- frames++;
271- }
272- }
273-}
274diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am
275index 87b2f1a..3e48141 100644
276--- a/src/egl/opengl/Makefile.am
277+++ b/src/egl/opengl/Makefile.am
278@@ -51,20 +51,12 @@ endif
279
280 if HAVE_EGL
281 bin_PROGRAMS = \
282- demo1 \
283- demo2 \
284- demo3 \
285 eglinfo \
286- eglgears_screen \
287- egltri_screen \
288 peglgears \
289 $(EGL_DRM_DEMOS) \
290 $(EGL_X11_DEMOS)
291 endif
292
293-egltri_screen_SOURCES = egltri.c
294-eglgears_screen_SOURCES = eglgears.c
295-
296 egltri_x11_SOURCES = egltri.c
297 eglgears_x11_SOURCES = eglgears.c
298
299@@ -73,9 +65,6 @@ egltri_x11_LDFLAGS = $(AM_LDFLAGS) $(X11_LIBS)
300 xeglgears_LDFLAGS = $(AM_LDFLAGS) $(X11_LIBS)
301 xeglthreads_LDFLAGS = $(AM_LDFLAGS) $(X11_LIBS) -pthread
302
303-eglgears_screen_LDADD = ../eglut/libeglut_screen.la
304-egltri_screen_LDADD = ../eglut/libeglut_screen.la
305-
306 eglgears_x11_LDADD = ../eglut/libeglut_x11.la
307 egltri_x11_LDADD = ../eglut/libeglut_x11.la
308
309diff --git a/src/egl/opengl/demo1.c b/src/egl/opengl/demo1.c
310deleted file mode 100644
311index 06e2138..0000000
312--- a/src/egl/opengl/demo1.c
313+++ /dev/null
314@@ -1,155 +0,0 @@
315-/*
316- * Exercise EGL API functions
317- */
318-
319-#define EGL_EGLEXT_PROTOTYPES
320-
321-#include <EGL/egl.h>
322-#include <EGL/eglext.h>
323-#include <assert.h>
324-#include <stdio.h>
325-#include <stdlib.h>
326-#include <string.h>
327-
328-
329-/**
330- * Test EGL_MESA_screen_surface functions
331- */
332-static void
333-TestScreens(EGLDisplay dpy)
334-{
335-#ifdef EGL_MESA_screen_surface
336-#define MAX 8
337- EGLScreenMESA screens[MAX];
338- EGLint numScreens;
339- EGLint i;
340-
341- eglGetScreensMESA(dpy, screens, MAX, &numScreens);
342- printf("Found %d screens\n", numScreens);
343- for (i = 0; i < numScreens; i++) {
344- printf(" Screen %d handle: %d\n", i, (int) screens[i]);
345- }
346-#endif
347-}
348-
349-/**
350- * Print table of all available configurations.
351- */
352-static void
353-PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs)
354-{
355- EGLint i;
356-
357- printf("Configurations:\n");
358- printf(" bf lv d st colorbuffer dp st supported \n");
359- printf(" id sz l b ro r g b a th cl surfaces \n");
360- printf("----------------------------------------------\n");
361- for (i = 0; i < numConfigs; i++) {
362- EGLint id, size, level;
363- EGLint red, green, blue, alpha;
364- EGLint depth, stencil;
365- EGLint surfaces;
366- EGLint doubleBuf = 1, stereo = 0;
367- char surfString[100] = "";
368-
369- eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
370- eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size);
371- eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level);
372-
373- eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
374- eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green);
375- eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue);
376- eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha);
377- eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
378- eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil);
379- eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces);
380-
381- if (surfaces & EGL_WINDOW_BIT)
382- strcat(surfString, "win,");
383- if (surfaces & EGL_PBUFFER_BIT)
384- strcat(surfString, "pb,");
385- if (surfaces & EGL_PIXMAP_BIT)
386- strcat(surfString, "pix,");
387- if (strlen(surfString) > 0)
388- surfString[strlen(surfString) - 1] = 0;
389-
390- printf("0x%02x %2d %2d %c %c %2d %2d %2d %2d %2d %2d %-12s\n",
391- id, size, level,
392- doubleBuf ? 'y' : '.',
393- stereo ? 'y' : '.',
394- red, green, blue, alpha,
395- depth, stencil, surfString);
396- }
397-}
398-
399-
400-
401-int
402-main(int argc, char *argv[])
403-{
404- int maj, min;
405- EGLContext ctx;
406- EGLSurface pbuffer;
407- EGLConfig *configs;
408- EGLint numConfigs;
409- EGLBoolean b;
410- const EGLint pbufAttribs[] = {
411- EGL_WIDTH, 500,
412- EGL_HEIGHT, 500,
413- EGL_NONE
414- };
415-
416- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
417- assert(d);
418-
419- if (!eglInitialize(d, &maj, &min)) {
420- printf("demo: eglInitialize failed\n");
421- exit(1);
422- }
423-
424- printf("EGL version = %d.%d\n", maj, min);
425- printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
426-
427- if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
428- "EGL_MESA_screen_surface")) {
429- printf("EGL_MESA_screen_surface is not supported\n");
430- exit(1);
431- }
432-
433- eglGetConfigs(d, NULL, 0, &numConfigs);
434- configs = malloc(sizeof(*configs) *numConfigs);
435- eglGetConfigs(d, configs, numConfigs, &numConfigs);
436-
437- PrintConfigs(d, configs, numConfigs);
438-
439- eglBindAPI(EGL_OPENGL_API);
440- ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
441- if (ctx == EGL_NO_CONTEXT) {
442- printf("failed to create context\n");
443- return 0;
444- }
445-
446- pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
447- if (pbuffer == EGL_NO_SURFACE) {
448- printf("failed to create pbuffer\n");
449- return 0;
450- }
451-
452- free(configs);
453-
454- b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
455- if (!b) {
456- printf("make current failed\n");
457- return 0;
458- }
459-
460- b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
461-
462- TestScreens(d);
463-
464- eglDestroySurface(d, pbuffer);
465- eglDestroyContext(d, ctx);
466- eglTerminate(d);
467-
468- return 0;
469-}
470diff --git a/src/egl/opengl/demo2.c b/src/egl/opengl/demo2.c
471deleted file mode 100644
472index bfef59e..0000000
473--- a/src/egl/opengl/demo2.c
474+++ /dev/null
475@@ -1,221 +0,0 @@
476-/*
477- * Exercise EGL API functions
478- */
479-
480-#define EGL_EGLEXT_PROTOTYPES
481-
482-#include <assert.h>
483-#include <stdio.h>
484-#include <stdlib.h>
485-#include <string.h>
486-#include <unistd.h>
487-
488-#include <EGL/egl.h>
489-#include <EGL/eglext.h>
490-#include "gl_wrap.h"
491-
492-/*#define FRONTBUFFER*/
493-
494-#ifdef EGL_MESA_screen_surface
495-static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2,
496- GLfloat r, GLfloat g, GLfloat b)
497-{
498- GLfloat v[4][2], c[4][4];
499- int i;
500-
501- v[0][0] = x1; v[0][1] = y1;
502- v[1][0] = x2; v[1][1] = y1;
503- v[2][0] = x2; v[2][1] = y2;
504- v[3][0] = x1; v[3][1] = y2;
505-
506- for (i = 0; i < 4; i++) {
507- c[i][0] = r;
508- c[i][1] = g;
509- c[i][2] = b;
510- c[i][3] = 1.0;
511- }
512-
513- glVertexPointer(2, GL_FLOAT, 0, v);
514- glColorPointer(4, GL_FLOAT, 0, c);
515- glEnableClientState(GL_VERTEX_ARRAY);
516- glEnableClientState(GL_COLOR_ARRAY);
517-
518- glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
519-
520- glDisableClientState(GL_VERTEX_ARRAY);
521- glDisableClientState(GL_COLOR_ARRAY);
522-}
523-
524-
525-static void redraw(EGLDisplay dpy, EGLSurface surf, int rot)
526-{
527- GLfloat r, g, b;
528-
529- printf("Redraw event\n");
530-
531- glClearColor( rand()/(float)RAND_MAX,
532- rand()/(float)RAND_MAX,
533- rand()/(float)RAND_MAX,
534- 1);
535-
536- glClear( GL_COLOR_BUFFER_BIT );
537-
538- r = rand()/(float)RAND_MAX;
539- g = rand()/(float)RAND_MAX;
540- b = rand()/(float)RAND_MAX;
541-
542- glPushMatrix();
543- glRotatef(rot, 0, 0, 1);
544- glScalef(.5, .5, .5);
545- _subset_Rectf( -1, -1, 1, 1, r, g, b );
546- glPopMatrix();
547-
548-#ifdef FRONTBUFFER
549- glFlush();
550-#else
551- eglSwapBuffers( dpy, surf );
552-#endif
553- glFinish();
554-}
555-
556-
557-/**
558- * Test EGL_MESA_screen_surface functions
559- */
560-static void
561-TestScreens(EGLDisplay dpy)
562-{
563-#define MAX 8
564- EGLScreenMESA screens[MAX];
565- EGLint numScreens;
566- EGLint i;
567-
568- eglGetScreensMESA(dpy, screens, MAX, &numScreens);
569- printf("Found %d screens\n", numScreens);
570- for (i = 0; i < numScreens; i++) {
571- printf(" Screen %d handle: %d\n", i, (int) screens[i]);
572- }
573-}
574-#endif
575-
576-int
577-main(int argc, char *argv[])
578-{
579- int maj, min;
580-#ifdef EGL_MESA_screen_surface
581- EGLContext ctx;
582- EGLSurface pbuffer, screen_surf;
583- EGLConfig configs[10];
584- EGLint numConfigs, i;
585- EGLBoolean b;
586- const EGLint pbufAttribs[] = {
587- EGL_WIDTH, 500,
588- EGL_HEIGHT, 500,
589- EGL_NONE
590- };
591- EGLint screenAttribs[32];
592- EGLModeMESA mode;
593- EGLScreenMESA screen;
594- EGLint count;
595-#endif
596-
597- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
598- assert(d);
599-
600- if (!eglInitialize(d, &maj, &min)) {
601- printf("demo: eglInitialize failed\n");
602- exit(1);
603- }
604-
605- printf("EGL version = %d.%d\n", maj, min);
606- printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
607- if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
608- "EGL_MESA_screen_surface")) {
609- printf("EGL_MESA_screen_surface is not supported\n");
610- exit(1);
611- }
612-
613-#ifdef EGL_MESA_screen_surface
614- eglGetConfigs(d, configs, 10, &numConfigs);
615- printf("Got %d EGL configs:\n", numConfigs);
616- for (i = 0; i < numConfigs; i++) {
617- EGLint id, red, depth;
618- eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
619- eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
620- eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
621- printf("%2d: Red Size = %d Depth Size = %d\n", id, red, depth);
622- }
623-
624- eglGetScreensMESA(d, &screen, 1, &count);
625- eglGetModesMESA(d, screen, &mode, 1, &count);
626-
627- eglBindAPI(EGL_OPENGL_API);
628- ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
629- if (ctx == EGL_NO_CONTEXT) {
630- printf("failed to create context\n");
631- return 0;
632- }
633-
634- pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
635- if (pbuffer == EGL_NO_SURFACE) {
636- printf("failed to create pbuffer\n");
637- return 0;
638- }
639-
640- b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
641- if (!b) {
642- printf("make current failed\n");
643- return 0;
644- }
645-
646- b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
647-
648- i = 0;
649- screenAttribs[i++] = EGL_WIDTH;
650- eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]);
651- screenAttribs[i++] = EGL_HEIGHT;
652- eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]);
653- screenAttribs[i] = EGL_NONE;
654-
655- screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
656- if (screen_surf == EGL_NO_SURFACE) {
657- printf("failed to create screen surface\n");
658- return 0;
659- }
660-
661- eglShowScreenSurfaceMESA(d, screen, screen_surf, mode);
662-
663- b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
664- if (!b) {
665- printf("make current failed\n");
666- return 0;
667- }
668-
669- glViewport(0, 0, 1024, 768);
670-
671- glClearColor( 0,
672- 1.0,
673- 0,
674- 1);
675-
676- glClear( GL_COLOR_BUFFER_BIT );
677-
678-
679- TestScreens(d);
680-
681- glShadeModel( GL_FLAT );
682-
683- for (i = 0; i < 6; i++) {
684- redraw(d, screen_surf, i*10 );
685-
686- printf("sleep(1)\n");
687- sleep(1);
688- }
689-
690- eglDestroySurface(d, pbuffer);
691- eglDestroyContext(d, ctx);
692- eglTerminate(d);
693-#endif
694-
695- return 0;
696-}
697diff --git a/src/egl/opengl/demo3.c b/src/egl/opengl/demo3.c
698deleted file mode 100644
699index 31b5d8b..0000000
700--- a/src/egl/opengl/demo3.c
701+++ /dev/null
702@@ -1,652 +0,0 @@
703-/*
704- * Exercise EGL API functions
705- */
706-
707-#define EGL_EGLEXT_PROTOTYPES
708-
709-#include <EGL/egl.h>
710-#include <EGL/eglext.h>
711-#include "gl_wrap.h"
712-#include <assert.h>
713-#include <stdio.h>
714-#include <stdlib.h>
715-#include <string.h>
716-#include <unistd.h>
717-
718-
719-
720-#define PIXEL_CENTER(x) ((long)(x) + 0.5)
721-
722-#define GAP 10
723-#define ROWS 3
724-#define COLS 4
725-
726-#define OPENGL_WIDTH 48
727-#define OPENGL_HEIGHT 13
728-
729-
730-GLenum rgb, doubleBuffer, windType;
731-GLint windW, windH;
732-
733-GLenum mode1, mode2;
734-GLint boxW, boxH;
735-GLubyte OpenGL_bits[] = {
736- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
737- 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
738- 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
739- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
740- 0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01,
741- 0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00,
742- 0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00,
743- 0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00,
744- 0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00,
745- 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a,
746- 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e,
747- 0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e,
748- 0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00,
749-};
750-
751-#ifdef EGL_MESA_screen_surface
752-static void Init(void)
753-{
754-
755- mode1 = GL_TRUE;
756- mode2 = GL_TRUE;
757-}
758-
759-static void Reshape(int width, int height)
760-{
761-
762- windW = (GLint)width;
763- windH = (GLint)height;
764-}
765-
766-#if 0
767-static void RotateColorMask(void)
768-{
769- static GLint rotation = 0;
770-
771- rotation = (rotation + 1) & 0x3;
772- switch (rotation) {
773- case 0:
774- glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
775- glIndexMask( 0xff );
776- break;
777- case 1:
778- glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
779- glIndexMask(0xFE);
780- break;
781- case 2:
782- glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
783- glIndexMask(0xFD);
784- break;
785- case 3:
786- glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE);
787- glIndexMask(0xFB);
788- break;
789- }
790-}
791-#endif
792-
793-static void Viewport(GLint row, GLint column)
794-{
795- GLint x, y;
796-
797- boxW = (windW - (COLS + 1) * GAP) / COLS;
798- boxH = (windH - (ROWS + 1) * GAP) / ROWS;
799-
800- x = GAP + column * (boxW + GAP);
801- y = GAP + row * (boxH + GAP);
802-
803- glViewport(x, y, boxW, boxH);
804-
805- glMatrixMode(GL_PROJECTION);
806- glLoadIdentity();
807- glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0);
808- glMatrixMode(GL_MODELVIEW);
809-
810- glEnable(GL_SCISSOR_TEST);
811- glScissor(x, y, boxW, boxH);
812-}
813-
814-enum {
815- COLOR_BLACK = 0,
816- COLOR_RED,
817- COLOR_GREEN,
818- COLOR_YELLOW,
819- COLOR_BLUE,
820- COLOR_MAGENTA,
821- COLOR_CYAN,
822- COLOR_WHITE
823-};
824-
825-static float RGBMap[9][3] = {
826- {0, 0, 0},
827- {1, 0, 0},
828- {0, 1, 0},
829- {1, 1, 0},
830- {0, 0, 1},
831- {1, 0, 1},
832- {0, 1, 1},
833- {1, 1, 1},
834- {0.5, 0.5, 0.5}
835-};
836-
837-static void SetColor(int c)
838-{
839- glColor3fv(RGBMap[c]);
840-}
841-
842-static void Point(void)
843-{
844- GLint i;
845-
846- glBegin(GL_POINTS);
847- SetColor(COLOR_WHITE);
848- glVertex2i(0, 0);
849- for (i = 1; i < 8; i++) {
850- GLint j = i * 2;
851- SetColor(COLOR_BLACK+i);
852- glVertex2i(-j, -j);
853- glVertex2i(-j, 0);
854- glVertex2i(-j, j);
855- glVertex2i(0, j);
856- glVertex2i(j, j);
857- glVertex2i(j, 0);
858- glVertex2i(j, -j);
859- glVertex2i(0, -j);
860- }
861- glEnd();
862-}
863-
864-static void Lines(void)
865-{
866- GLint i;
867-
868- glPushMatrix();
869-
870- glTranslatef(-12, 0, 0);
871- for (i = 1; i < 8; i++) {
872- SetColor(COLOR_BLACK+i);
873- glBegin(GL_LINES);
874- glVertex2i(-boxW/4, -boxH/4);
875- glVertex2i(boxW/4, boxH/4);
876- glEnd();
877- glTranslatef(4, 0, 0);
878- }
879-
880- glPopMatrix();
881-
882- glBegin(GL_LINES);
883- glVertex2i(0, 0);
884- glEnd();
885-}
886-
887-static void LineStrip(void)
888-{
889-
890- glBegin(GL_LINE_STRIP);
891- SetColor(COLOR_RED);
892- glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
893- SetColor(COLOR_GREEN);
894- glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
895- SetColor(COLOR_BLUE);
896- glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
897- SetColor(COLOR_WHITE);
898- glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
899- glEnd();
900-
901- glBegin(GL_LINE_STRIP);
902- glVertex2i(0, 0);
903- glEnd();
904-}
905-
906-static void LineLoop(void)
907-{
908-
909- glBegin(GL_LINE_LOOP);
910- SetColor(COLOR_RED);
911- glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
912- SetColor(COLOR_GREEN);
913- glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
914- SetColor(COLOR_BLUE);
915- glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
916- SetColor(COLOR_WHITE);
917- glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
918- glEnd();
919-
920- glEnable(GL_LOGIC_OP);
921- glLogicOp(GL_XOR);
922-
923- glEnable(GL_BLEND);
924- glBlendFunc(GL_ONE, GL_ONE);
925-
926- SetColor(COLOR_MAGENTA);
927- glBegin(GL_LINE_LOOP);
928- glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8));
929- glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8));
930- glEnd();
931- glBegin(GL_LINE_LOOP);
932- glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5));
933- glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5));
934- glEnd();
935- glDisable(GL_LOGIC_OP);
936- glDisable(GL_BLEND);
937-
938- SetColor(COLOR_GREEN);
939- glBegin(GL_POINTS);
940- glVertex2i(0, 0);
941- glEnd();
942-
943- glBegin(GL_LINE_LOOP);
944- glVertex2i(0, 0);
945- glEnd();
946-}
947-
948-static void Bitmap(void)
949-{
950-
951- glBegin(GL_LINES);
952- SetColor(COLOR_GREEN);
953- glVertex2i(-boxW/2, 0);
954- glVertex2i(boxW/2, 0);
955- glVertex2i(0, -boxH/2);
956- glVertex2i(0, boxH/2);
957- SetColor(COLOR_RED);
958- glVertex2i(0, -3);
959- glVertex2i(0, -3+OPENGL_HEIGHT);
960- SetColor(COLOR_BLUE);
961- glVertex2i(0, -3);
962- glVertex2i(OPENGL_WIDTH, -3);
963- glEnd();
964-
965- SetColor(COLOR_GREEN);
966-
967- glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE);
968- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
969-
970- glRasterPos2i(0, 0);
971- glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits);
972-}
973-
974-static void Triangles(void)
975-{
976-
977- glBegin(GL_TRIANGLES);
978- SetColor(COLOR_GREEN);
979- glVertex2i(-boxW/4, -boxH/4);
980- SetColor(COLOR_RED);
981- glVertex2i(-boxW/8, -boxH/16);
982- SetColor(COLOR_BLUE);
983- glVertex2i(boxW/8, -boxH/16);
984-
985- SetColor(COLOR_GREEN);
986- glVertex2i(-boxW/4, boxH/4);
987- SetColor(COLOR_RED);
988- glVertex2i(-boxW/8, boxH/16);
989- SetColor(COLOR_BLUE);
990- glVertex2i(boxW/8, boxH/16);
991- glEnd();
992-
993- glBegin(GL_TRIANGLES);
994- glVertex2i(0, 0);
995- glVertex2i(-100, 100);
996- glEnd();
997-}
998-
999-static void TriangleStrip(void)
1000-{
1001-
1002- glBegin(GL_TRIANGLE_STRIP);
1003- SetColor(COLOR_GREEN);
1004- glVertex2i(-boxW/4, -boxH/4);
1005- SetColor(COLOR_RED);
1006- glVertex2i(-boxW/4, boxH/4);
1007- SetColor(COLOR_BLUE);
1008- glVertex2i(0, -boxH/4);
1009- SetColor(COLOR_WHITE);
1010- glVertex2i(0, boxH/4);
1011- SetColor(COLOR_CYAN);
1012- glVertex2i(boxW/4, -boxH/4);
1013- SetColor(COLOR_YELLOW);
1014- glVertex2i(boxW/4, boxH/4);
1015- glEnd();
1016-
1017- glBegin(GL_TRIANGLE_STRIP);
1018- glVertex2i(0, 0);
1019- glVertex2i(-100, 100);
1020- glEnd();
1021-}
1022-
1023-static void TriangleFan(void)
1024-{
1025- GLint vx[8][2];
1026- GLint x0, y0, x1, y1, x2, y2, x3, y3;
1027- GLint i;
1028-
1029- y0 = -boxH/4;
1030- y1 = y0 + boxH/2/3;
1031- y2 = y1 + boxH/2/3;
1032- y3 = boxH/4;
1033- x0 = -boxW/4;
1034- x1 = x0 + boxW/2/3;
1035- x2 = x1 + boxW/2/3;
1036- x3 = boxW/4;
1037-
1038- vx[0][0] = x0; vx[0][1] = y1;
1039- vx[1][0] = x0; vx[1][1] = y2;
1040- vx[2][0] = x1; vx[2][1] = y3;
1041- vx[3][0] = x2; vx[3][1] = y3;
1042- vx[4][0] = x3; vx[4][1] = y2;
1043- vx[5][0] = x3; vx[5][1] = y1;
1044- vx[6][0] = x2; vx[6][1] = y0;
1045- vx[7][0] = x1; vx[7][1] = y0;
1046-
1047- glBegin(GL_TRIANGLE_FAN);
1048- SetColor(COLOR_WHITE);
1049- glVertex2i(0, 0);
1050- for (i = 0; i < 8; i++) {
1051- SetColor(COLOR_WHITE-i);
1052- glVertex2iv(vx[i]);
1053- }
1054- glEnd();
1055-
1056- glBegin(GL_TRIANGLE_FAN);
1057- glVertex2i(0, 0);
1058- glVertex2i(-100, 100);
1059- glEnd();
1060-}
1061-
1062-static void Rect(void)
1063-{
1064-
1065- SetColor(COLOR_GREEN);
1066- glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4);
1067-}
1068-
1069-static void PolygonFunc(void)
1070-{
1071- GLint vx[8][2];
1072- GLint x0, y0, x1, y1, x2, y2, x3, y3;
1073- GLint i;
1074-
1075- y0 = -boxH/4;
1076- y1 = y0 + boxH/2/3;
1077- y2 = y1 + boxH/2/3;
1078- y3 = boxH/4;
1079- x0 = -boxW/4;
1080- x1 = x0 + boxW/2/3;
1081- x2 = x1 + boxW/2/3;
1082- x3 = boxW/4;
1083-
1084- vx[0][0] = x0; vx[0][1] = y1;
1085- vx[1][0] = x0; vx[1][1] = y2;
1086- vx[2][0] = x1; vx[2][1] = y3;
1087- vx[3][0] = x2; vx[3][1] = y3;
1088- vx[4][0] = x3; vx[4][1] = y2;
1089- vx[5][0] = x3; vx[5][1] = y1;
1090- vx[6][0] = x2; vx[6][1] = y0;
1091- vx[7][0] = x1; vx[7][1] = y0;
1092-
1093- glBegin(GL_POLYGON);
1094- for (i = 0; i < 8; i++) {
1095- SetColor(COLOR_WHITE-i);
1096- glVertex2iv(vx[i]);
1097- }
1098- glEnd();
1099-
1100- glBegin(GL_POLYGON);
1101- glVertex2i(0, 0);
1102- glVertex2i(100, 100);
1103- glEnd();
1104-}
1105-
1106-static void Quads(void)
1107-{
1108-
1109- glBegin(GL_QUADS);
1110- SetColor(COLOR_GREEN);
1111- glVertex2i(-boxW/4, -boxH/4);
1112- SetColor(COLOR_RED);
1113- glVertex2i(-boxW/8, -boxH/16);
1114- SetColor(COLOR_BLUE);
1115- glVertex2i(boxW/8, -boxH/16);
1116- SetColor(COLOR_WHITE);
1117- glVertex2i(boxW/4, -boxH/4);
1118-
1119- SetColor(COLOR_GREEN);
1120- glVertex2i(-boxW/4, boxH/4);
1121- SetColor(COLOR_RED);
1122- glVertex2i(-boxW/8, boxH/16);
1123- SetColor(COLOR_BLUE);
1124- glVertex2i(boxW/8, boxH/16);
1125- SetColor(COLOR_WHITE);
1126- glVertex2i(boxW/4, boxH/4);
1127- glEnd();
1128-
1129- glBegin(GL_QUADS);
1130- glVertex2i(0, 0);
1131- glVertex2i(100, 100);
1132- glVertex2i(-100, 100);
1133- glEnd();
1134-}
1135-
1136-static void QuadStrip(void)
1137-{
1138-
1139- glBegin(GL_QUAD_STRIP);
1140- SetColor(COLOR_GREEN);
1141- glVertex2i(-boxW/4, -boxH/4);
1142- SetColor(COLOR_RED);
1143- glVertex2i(-boxW/4, boxH/4);
1144- SetColor(COLOR_BLUE);
1145- glVertex2i(0, -boxH/4);
1146- SetColor(COLOR_WHITE);
1147- glVertex2i(0, boxH/4);
1148- SetColor(COLOR_CYAN);
1149- glVertex2i(boxW/4, -boxH/4);
1150- SetColor(COLOR_YELLOW);
1151- glVertex2i(boxW/4, boxH/4);
1152- glEnd();
1153-
1154- glBegin(GL_QUAD_STRIP);
1155- glVertex2i(0, 0);
1156- glVertex2i(100, 100);
1157- glVertex2i(-100, 100);
1158- glEnd();
1159-}
1160-
1161-static void Draw(EGLDisplay dpy, EGLSurface surf)
1162-{
1163-
1164- glViewport(0, 0, windW, windH);
1165- glDisable(GL_SCISSOR_TEST);
1166-
1167- glPushAttrib(GL_COLOR_BUFFER_BIT);
1168-
1169- glColorMask(1, 1, 1, 1);
1170- glIndexMask(~0);
1171-
1172- glClearColor(0.0, 0.0, 0.0, 0.0);
1173- glClear(GL_COLOR_BUFFER_BIT);
1174-
1175- glPopAttrib();
1176-
1177- if (mode1) {
1178- glShadeModel(GL_SMOOTH);
1179- } else {
1180- glShadeModel(GL_FLAT);
1181- }
1182-
1183- if (mode2) {
1184- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
1185- } else {
1186- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
1187- }
1188-
1189- Viewport(0, 0); Point();
1190- Viewport(0, 1); Lines();
1191- Viewport(0, 2); LineStrip();
1192- Viewport(0, 3); LineLoop();
1193-
1194- Viewport(1, 0); Bitmap();
1195-
1196- Viewport(1, 1); TriangleFan();
1197- Viewport(1, 2); Triangles();
1198- Viewport(1, 3); TriangleStrip();
1199-
1200- Viewport(2, 0); Rect();
1201- Viewport(2, 1); PolygonFunc();
1202- Viewport(2, 2); Quads();
1203- Viewport(2, 3); QuadStrip();
1204-
1205- glFlush();
1206-
1207- if (doubleBuffer) {
1208- eglSwapBuffers(dpy, surf);
1209- }
1210-}
1211-
1212-static void
1213-write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
1214-{
1215- const int binary = 0;
1216- FILE *f = fopen( filename, "w" );
1217- if (f) {
1218- int i, x, y;
1219- const GLubyte *ptr = buffer;
1220- if (binary) {
1221- fprintf(f,"P6\n");
1222- fprintf(f,"# ppm-file created by osdemo.c\n");
1223- fprintf(f,"%i %i\n", width,height);
1224- fprintf(f,"255\n");
1225- fclose(f);
1226- f = fopen( filename, "ab" ); /* reopen in binary append mode */
1227- for (y=height-1; y>=0; y--) {
1228- for (x=0; x<width; x++) {
1229- i = (y*width + x) * 4;
1230- fputc(ptr[i], f); /* write red */
1231- fputc(ptr[i+1], f); /* write green */
1232- fputc(ptr[i+2], f); /* write blue */
1233- }
1234- }
1235- }
1236- else {
1237- /*ASCII*/
1238- int counter = 0;
1239- fprintf(f,"P3\n");
1240- fprintf(f,"# ascii ppm file created by osdemo.c\n");
1241- fprintf(f,"%i %i\n", width, height);
1242- fprintf(f,"255\n");
1243- for (y=height-1; y>=0; y--) {
1244- for (x=0; x<width; x++) {
1245- i = (y*width + x) * 4;
1246- fprintf(f, " %3d %3d %3d", ptr[i], ptr[i+1], ptr[i+2]);
1247- counter++;
1248- if (counter % 5 == 0)
1249- fprintf(f, "\n");
1250- }
1251- }
1252- }
1253- fclose(f);
1254- }
1255-}
1256-#endif
1257-
1258-int
1259-main(int argc, char *argv[])
1260-{
1261- int maj, min;
1262-#ifdef EGL_MESA_screen_surface
1263- EGLContext ctx;
1264- EGLSurface screen_surf;
1265- EGLConfig configs[10];
1266- EGLScreenMESA screen;
1267- EGLModeMESA mode;
1268- EGLint numConfigs, count;
1269- EGLBoolean b;
1270- const GLubyte *bitmap;
1271- EGLint screenAttribs[32];
1272- EGLint i;
1273-#endif
1274-
1275- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
1276- assert(d);
1277-
1278- if (!eglInitialize(d, &maj, &min)) {
1279- printf("demo: eglInitialize failed\n");
1280- exit(1);
1281- }
1282-
1283- printf("EGL version = %d.%d\n", maj, min);
1284- printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
1285- if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
1286- "EGL_MESA_screen_surface")) {
1287- printf("EGL_MESA_screen_surface is not supported\n");
1288- exit(1);
1289- }
1290-
1291-#ifdef EGL_MESA_screen_surface
1292- eglGetConfigs(d, configs, 10, &numConfigs);
1293- eglGetScreensMESA(d, &screen, 1, &count);
1294- eglGetModesMESA(d, screen, &mode, 1, &count);
1295-
1296- eglBindAPI(EGL_OPENGL_API);
1297- ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
1298- if (ctx == EGL_NO_CONTEXT) {
1299- printf("failed to create context\n");
1300- return 0;
1301- }
1302-
1303- i = 0;
1304- screenAttribs[i++] = EGL_WIDTH;
1305- eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]);
1306- screenAttribs[i++] = EGL_HEIGHT;
1307- eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]);
1308- screenAttribs[i] = EGL_NONE;
1309-
1310- screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
1311- if (screen_surf == EGL_NO_SURFACE) {
1312- printf("failed to create screen surface\n");
1313- return 0;
1314- }
1315-
1316- eglShowScreenSurfaceMESA(d, screen, screen_surf, mode);
1317-
1318- b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
1319- if (!b) {
1320- printf("make current failed\n");
1321- return 0;
1322- }
1323- glViewport(0, 0, 1024, 768);
1324-
1325-
1326- Init();
1327- Reshape(1024, 768);
1328-
1329- /* some drivers crash when rendering to front buffer */
1330-#if 0
1331- glDrawBuffer( GL_FRONT );
1332- glClearColor( 0, 1.0, 0, 1);
1333-
1334- glClear( GL_COLOR_BUFFER_BIT );
1335-#endif
1336-
1337- doubleBuffer = 1;
1338- glDrawBuffer( GL_BACK );
1339-
1340- Draw(d, screen_surf);
1341- sleep(2);
1342-
1343- /* TODO EGL_KHR_lock_surface */
1344- bitmap = NULL;
1345- if (bitmap)
1346- write_ppm("dump.ppm", bitmap, 1024, 768);
1347-
1348- eglDestroySurface(d, screen_surf);
1349- eglDestroyContext(d, ctx);
1350- eglTerminate(d);
1351-#endif
1352-
1353- return 0;
1354-}
1355diff --git a/src/egl/opengl/eglinfo.c b/src/egl/opengl/eglinfo.c
1356index 8e82e73..1f79fef 100644
1357--- a/src/egl/opengl/eglinfo.c
1358+++ b/src/egl/opengl/eglinfo.c
1359@@ -93,10 +93,6 @@ PrintConfigs(EGLDisplay d)
1360 strcat(surfString, "pb,");
1361 if (surfaces & EGL_PIXMAP_BIT)
1362 strcat(surfString, "pix,");
1363-#ifdef EGL_MESA_screen_surface
1364- if (surfaces & EGL_SCREEN_BIT_MESA)
1365- strcat(surfString, "scrn,");
1366-#endif
1367 if (strlen(surfString) > 0)
1368 surfString[strlen(surfString) - 1] = 0;
1369
1370@@ -117,45 +113,6 @@ PrintConfigs(EGLDisplay d)
1371 }
1372
1373
1374-/**
1375- * Print table of all available configurations.
1376- */
1377-static void
1378-PrintModes(EGLDisplay d)
1379-{
1380-#ifdef EGL_MESA_screen_surface
1381- const char *extensions = eglQueryString(d, EGL_EXTENSIONS);
1382- if (strstr(extensions, "EGL_MESA_screen_surface")) {
1383- EGLScreenMESA screens[MAX_SCREENS];
1384- EGLint numScreens = 1, scrn;
1385- EGLModeMESA modes[MAX_MODES];
1386-
1387- eglGetScreensMESA(d, screens, MAX_SCREENS, &numScreens);
1388- printf("Number of Screens: %d\n\n", numScreens);
1389-
1390- for (scrn = 0; scrn < numScreens; scrn++) {
1391- EGLint numModes, i;
1392-
1393- eglGetModesMESA(d, screens[scrn], modes, MAX_MODES, &numModes);
1394-
1395- printf("Screen %d Modes:\n", scrn);
1396- printf(" id width height refresh name\n");
1397- printf("-----------------------------------------\n");
1398- for (i = 0; i < numModes; i++) {
1399- EGLint id, w, h, r;
1400- const char *str;
1401- eglGetModeAttribMESA(d, modes[i], EGL_MODE_ID_MESA, &id);
1402- eglGetModeAttribMESA(d, modes[i], EGL_WIDTH, &w);
1403- eglGetModeAttribMESA(d, modes[i], EGL_HEIGHT, &h);
1404- eglGetModeAttribMESA(d, modes[i], EGL_REFRESH_RATE_MESA, &r);
1405- str = eglQueryModeStringMESA(d, modes[i]);
1406- printf("0x%02x %5d %5d %.3f %s\n", id, w, h, r / 1000.0, str);
1407- }
1408- }
1409- }
1410-#endif
1411-}
1412-
1413 static void
1414 PrintExtensions(EGLDisplay d)
1415 {
1416@@ -215,8 +172,6 @@ main(int argc, char *argv[])
1417
1418 PrintConfigs(d);
1419
1420- PrintModes(d);
1421-
1422 eglTerminate(d);
1423
1424 return 0;
1425diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
1426index 516e516..1cc2e1f 100644
1427--- a/src/egl/opengles1/Makefile.am
1428+++ b/src/egl/opengles1/Makefile.am
1429@@ -38,24 +38,6 @@ AM_LDFLAGS = \
1430
1431 bin_PROGRAMS =
1432
1433-if HAVE_EGL
1434-if HAVE_GLESV1
1435-bin_PROGRAMS += \
1436- drawtex_screen \
1437- gears_screen \
1438- torus_screen \
1439- tri_screen
1440-
1441-drawtex_screen_SOURCES = drawtex.c
1442-gears_screen_SOURCES = gears.c
1443-torus_screen_SOURCES = torus.c
1444-tri_screen_SOURCES = tri.c
1445-
1446-drawtex_screen_LDADD = ../eglut/libeglut_screen.la
1447-gears_screen_LDADD = ../eglut/libeglut_screen.la
1448-torus_screen_LDADD = ../eglut/libeglut_screen.la
1449-tri_screen_LDADD = ../eglut/libeglut_screen.la
1450-
1451 if HAVE_X11
1452 bin_PROGRAMS += \
1453 clear \
1454@@ -94,5 +76,3 @@ gears_x11_LDADD = ../eglut/libeglut_x11.la
1455 torus_x11_LDADD = ../eglut/libeglut_x11.la
1456 tri_x11_LDADD = ../eglut/libeglut_x11.la
1457 endif
1458-endif
1459-endif
1460diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am
1461index 74af460..422cb03 100644
1462--- a/src/egl/opengles2/Makefile.am
1463+++ b/src/egl/opengles2/Makefile.am
1464@@ -33,13 +33,7 @@ AM_LDFLAGS = \
1465 $(EGL_LIBS) \
1466 -lm
1467
1468-if HAVE_EGL
1469-if HAVE_GLESV2
1470-bin_PROGRAMS = \
1471- es2gears_screen
1472-
1473-es2gears_screen_SOURCES = es2gears.c
1474-es2gears_screen_LDADD = ../eglut/libeglut_screen.la
1475+bin_PROGRAMS =
1476
1477 if HAVE_WAYLAND
1478 bin_PROGRAMS += es2gears_wayland
1479@@ -59,6 +53,4 @@ es2gears_x11_SOURCES = es2gears.c
1480 es2gears_x11_LDADD = ../eglut/libeglut_x11.la
1481 es2tri_LDADD = $(X11_LIBS)
1482 endif
1483-endif
1484-endif
1485
1486diff --git a/src/egl/openvg/Makefile.am b/src/egl/openvg/Makefile.am
1487index b545225..5fd1cf8 100644
1488--- a/src/egl/openvg/Makefile.am
1489+++ b/src/egl/openvg/Makefile.am
1490@@ -50,21 +50,13 @@ endif
1491 if HAVE_EGL
1492 if HAVE_VG
1493 bin_PROGRAMS = \
1494- lion_screen \
1495- sp_screen \
1496 $(EGL_X11_DEMOS)
1497 endif
1498 endif
1499
1500-lion_screen_SOURCES = lion.c lion-render.c lion-render.h
1501-sp_screen_SOURCES = sp.c
1502-
1503 lion_x11_SOURCES = lion.c lion-render.c lion-render.h
1504 sp_x11_SOURCES = sp.c
1505
1506-lion_screen_LDADD = ../eglut/libeglut_screen.la
1507-sp_screen_LDADD = ../eglut/libeglut_screen.la
1508-
1509 lion_x11_LDADD = ../eglut/libeglut_x11.la
1510 sp_x11_LDADD = ../eglut/libeglut_x11.la
1511
1512diff --git a/src/egl/openvg/Makefile.in b/src/egl/openvg/Makefile.in
1513index 99e9288..3652fbb 100644
1514--- a/src/egl/openvg/Makefile.in
1515+++ b/src/egl/openvg/Makefile.in
1516@@ -108,8 +108,6 @@ host_triplet = @host@
1517 @HAVE_FREETYPE2_TRUE@@HAVE_X11_TRUE@am__append_1 = \
1518 @HAVE_FREETYPE2_TRUE@@HAVE_X11_TRUE@ text
1519
1520-@HAVE_EGL_TRUE@@HAVE_VG_TRUE@noinst_PROGRAMS = lion_screen$(EXEEXT) \
1521-@HAVE_EGL_TRUE@@HAVE_VG_TRUE@ sp_screen$(EXEEXT) \
1522 @HAVE_EGL_TRUE@@HAVE_VG_TRUE@ $(am__EXEEXT_2)
1523 subdir = src/egl/openvg
1524 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
1525@@ -128,9 +126,6 @@ CONFIG_CLEAN_VPATH_FILES =
1526 @HAVE_X11_TRUE@am__EXEEXT_2 = lion_x11$(EXEEXT) sp_x11$(EXEEXT) \
1527 @HAVE_X11_TRUE@ $(am__EXEEXT_1)
1528 PROGRAMS = $(noinst_PROGRAMS)
1529-am_lion_screen_OBJECTS = lion.$(OBJEXT) lion-render.$(OBJEXT)
1530-lion_screen_OBJECTS = $(am_lion_screen_OBJECTS)
1531-lion_screen_DEPENDENCIES = ../eglut/libeglut_screen.la
1532 AM_V_lt = $(am__v_lt_@AM_V@)
1533 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
1534 am__v_lt_0 = --silent
1535@@ -138,9 +133,6 @@ am__v_lt_1 =
1536 am_lion_x11_OBJECTS = lion.$(OBJEXT) lion-render.$(OBJEXT)
1537 lion_x11_OBJECTS = $(am_lion_x11_OBJECTS)
1538 lion_x11_DEPENDENCIES = ../eglut/libeglut_x11.la
1539-am_sp_screen_OBJECTS = sp.$(OBJEXT)
1540-sp_screen_OBJECTS = $(am_sp_screen_OBJECTS)
1541-sp_screen_DEPENDENCIES = ../eglut/libeglut_screen.la
1542 am_sp_x11_OBJECTS = sp.$(OBJEXT)
1543 sp_x11_OBJECTS = $(am_sp_x11_OBJECTS)
1544 sp_x11_DEPENDENCIES = ../eglut/libeglut_x11.la
1545@@ -184,10 +176,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
1546 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
1547 am__v_CCLD_0 = @echo " CCLD " $@;
1548 am__v_CCLD_1 =
1549-SOURCES = $(lion_screen_SOURCES) $(lion_x11_SOURCES) \
1550- $(sp_screen_SOURCES) $(sp_x11_SOURCES) $(text_SOURCES)
1551-DIST_SOURCES = $(lion_screen_SOURCES) $(lion_x11_SOURCES) \
1552- $(sp_screen_SOURCES) $(sp_x11_SOURCES) $(text_SOURCES)
1553+SOURCES = $(lion_x11_SOURCES) \
1554+ $(sp_x11_SOURCES) $(text_SOURCES)
1555+DIST_SOURCES = $(lion_x11_SOURCES) \
1556+ $(sp_x11_SOURCES) $(text_SOURCES)
1557 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
1558 ctags-recursive dvi-recursive html-recursive info-recursive \
1559 install-data-recursive install-dvi-recursive \
1560@@ -423,12 +415,8 @@ AM_LDFLAGS = \
1561 -lm
1562
1563 @HAVE_X11_TRUE@EGL_X11_DEMOS = lion_x11 sp_x11 $(am__append_1)
1564-lion_screen_SOURCES = lion.c lion-render.c lion-render.h
1565-sp_screen_SOURCES = sp.c
1566 lion_x11_SOURCES = lion.c lion-render.c lion-render.h
1567 sp_x11_SOURCES = sp.c
1568-lion_screen_LDADD = ../eglut/libeglut_screen.la
1569-sp_screen_LDADD = ../eglut/libeglut_screen.la
1570 lion_x11_LDADD = ../eglut/libeglut_x11.la
1571 sp_x11_LDADD = ../eglut/libeglut_x11.la
1572 text_SOURCES = text.c
1573@@ -481,18 +469,10 @@ clean-noinstPROGRAMS:
1574 echo " rm -f" $$list; \
1575 rm -f $$list
1576
1577-lion_screen$(EXEEXT): $(lion_screen_OBJECTS) $(lion_screen_DEPENDENCIES) $(EXTRA_lion_screen_DEPENDENCIES)
1578- @rm -f lion_screen$(EXEEXT)
1579- $(AM_V_CCLD)$(LINK) $(lion_screen_OBJECTS) $(lion_screen_LDADD) $(LIBS)
1580-
1581 lion_x11$(EXEEXT): $(lion_x11_OBJECTS) $(lion_x11_DEPENDENCIES) $(EXTRA_lion_x11_DEPENDENCIES)
1582 @rm -f lion_x11$(EXEEXT)
1583 $(AM_V_CCLD)$(LINK) $(lion_x11_OBJECTS) $(lion_x11_LDADD) $(LIBS)
1584
1585-sp_screen$(EXEEXT): $(sp_screen_OBJECTS) $(sp_screen_DEPENDENCIES) $(EXTRA_sp_screen_DEPENDENCIES)
1586- @rm -f sp_screen$(EXEEXT)
1587- $(AM_V_CCLD)$(LINK) $(sp_screen_OBJECTS) $(sp_screen_LDADD) $(LIBS)
1588-
1589 sp_x11$(EXEEXT): $(sp_x11_OBJECTS) $(sp_x11_DEPENDENCIES) $(EXTRA_sp_x11_DEPENDENCIES)
1590 @rm -f sp_x11$(EXEEXT)
1591 $(AM_V_CCLD)$(LINK) $(sp_x11_OBJECTS) $(sp_x11_LDADD) $(LIBS)
1592
diff --git a/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb b/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
index 557b8c65db..2df9bbac29 100644
--- a/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
+++ b/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
@@ -20,6 +20,7 @@ SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/demos/${PV}/${BPN}-${PV}.tar.bz2 \
20 file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \ 20 file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \
21 file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \ 21 file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \
22 file://0010-sharedtex_mt-fix-rendering-thread-hang.patch \ 22 file://0010-sharedtex_mt-fix-rendering-thread-hang.patch \
23 file://0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch \
23" 24"
24SRC_URI[md5sum] = "72613a2c8c013716db02e3ff59d29061" 25SRC_URI[md5sum] = "72613a2c8c013716db02e3ff59d29061"
25SRC_URI[sha256sum] = "e4bfecb5816ddd4b7b37c1bc876b63f1f7f06fda5879221a9774d0952f90ba92" 26SRC_URI[sha256sum] = "e4bfecb5816ddd4b7b37c1bc876b63f1f7f06fda5879221a9774d0952f90ba92"