egl: Remove the demo driver.

The demo driver has outdated.  It is suggested to look at any of the
drivers that is functioning.
This commit is contained in:
Chia-I Wu
2010-01-22 15:07:58 +08:00
parent cfb1ed3977
commit 324fdf7364
4 changed files with 2 additions and 323 deletions
+1 -1
View File
@@ -93,7 +93,7 @@ DRIVER_DIRS = x11 osmesa
PROGRAM_DIRS = demos redbook samples glsl objviewer xdemos
# EGL drivers to build
EGL_DRIVERS_DIRS = demo
EGL_DRIVERS_DIRS = glx
# Gallium directories and
GALLIUM_DIRS = auxiliary drivers state_trackers
+1 -1
View File
@@ -55,7 +55,7 @@ SRC_DIRS := glx/x11 egl $(SRC_DIRS)
PROGRAM_DIRS := egl $(PROGRAM_DIRS)
# EGL directories
EGL_DRIVERS_DIRS = demo glx
EGL_DRIVERS_DIRS = glx
DRIVER_DIRS = dri
WINDOW_SYSTEM = dri
-32
View File
@@ -1,32 +0,0 @@
# src/egl/drivers/demo/Makefile
TOP = ../../../..
include $(TOP)/configs/current
INCLUDE_DIRS = -I$(TOP)/include -I$(TOP)/src/egl/main $(X11_INCLUDES)
SOURCES = demo.c
OBJECTS = $(SOURCES:.c=.o)
.c.o:
$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
default: $(TOP)/$(LIB_DIR)/demodriver.so
$(TOP)/$(LIB_DIR)/demodriver.so: $(OBJECTS)
$(MKLIB) -o demodriver.so -noprefix -linker '$(CC)' \
-ldflags '$(LDFLAGS)' -install $(TOP)/$(LIB_DIR) \
$(OBJECTS)
install:
clean:
-rm -f *.o
-rm -f *.so
-289
View File
@@ -1,289 +0,0 @@
/*
* Sample driver: Demo
*/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include "eglconfig.h"
#include "eglcontext.h"
#include "egldisplay.h"
#include "egldriver.h"
#include "eglglobals.h"
#include "eglmode.h"
#include "eglscreen.h"
#include "eglsurface.h"
/**
* Demo driver-specific driver class derived from _EGLDriver
*/
typedef struct demo_driver
{
_EGLDriver Base; /* base class/object */
unsigned DemoStuff;
} DemoDriver;
#define DEMO_DRIVER(D) ((DemoDriver *) (D))
/**
* Demo driver-specific surface class derived from _EGLSurface
*/
typedef struct demo_surface
{
_EGLSurface Base; /* base class/object */
unsigned DemoStuff;
} DemoSurface;
/**
* Demo driver-specific context class derived from _EGLContext
*/
typedef struct demo_context
{
_EGLContext Base; /* base class/object */
unsigned DemoStuff;
} DemoContext;
static EGLBoolean
demoInitialize(_EGLDriver *drv, _EGLDisplay *disp, EGLint *major, EGLint *minor)
{
_EGLScreen *scrn;
EGLint i;
/* Create a screen */
scrn = calloc(1, sizeof(*scrn));
_eglAddScreen(disp, scrn);
/* Create the screen's modes - silly example */
_eglAddNewMode(scrn, 1600, 1200, 72 * 1000, "1600x1200-72");
_eglAddNewMode(scrn, 1280, 1024, 72 * 1000, "1280x1024-70");
_eglAddNewMode(scrn, 1280, 1024, 70 * 1000, "1280x1024-70");
_eglAddNewMode(scrn, 1024, 768, 72 * 1000, "1024x768-72");
/* Create the display's visual configs - silly example */
for (i = 0; i < 4; i++) {
_EGLConfig *config = calloc(1, sizeof(_EGLConfig));
_eglInitConfig(config, i + 1);
_eglSetConfigAttrib(config, EGL_RED_SIZE, 8);
_eglSetConfigAttrib(config, EGL_GREEN_SIZE, 8);
_eglSetConfigAttrib(config, EGL_BLUE_SIZE, 8);
_eglSetConfigAttrib(config, EGL_ALPHA_SIZE, 8);
_eglSetConfigAttrib(config, EGL_BUFFER_SIZE, 32);
if (i & 1) {
_eglSetConfigAttrib(config, EGL_DEPTH_SIZE, 32);
}
if (i & 2) {
_eglSetConfigAttrib(config, EGL_STENCIL_SIZE, 8);
}
_eglSetConfigAttrib(config, EGL_SURFACE_TYPE,
(EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_PBUFFER_BIT));
_eglAddConfig(disp, config);
}
/* enable supported extensions */
disp->Extensions.MESA_screen_surface = EGL_TRUE;
disp->Extensions.MESA_copy_context = EGL_TRUE;
*major = 1;
*minor = 0;
return EGL_TRUE;
}
static EGLBoolean
demoTerminate(_EGLDriver *drv, _EGLDisplay *dpy)
{
/*DemoDriver *demo = DEMO_DRIVER(dpy);*/
return EGL_TRUE;
}
static DemoContext *
LookupDemoContext(_EGLContext *c)
{
return (DemoContext *) c;
}
static DemoSurface *
LookupDemoSurface(_EGLSurface *s)
{
return (DemoSurface *) s;
}
static _EGLContext *
demoCreateContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, _EGLContext *share_list, const EGLint *attrib_list)
{
DemoContext *c;
int i;
for (i = 0; attrib_list && attrib_list[i] != EGL_NONE; i++) {
switch (attrib_list[i]) {
/* no attribs defined for now */
default:
_eglError(EGL_BAD_ATTRIBUTE, "eglCreateContext");
return NULL;
}
}
c = (DemoContext *) calloc(1, sizeof(DemoContext));
if (!c)
return NULL;
_eglInitContext(drv, &c->Base, conf, attrib_list);
c->DemoStuff = 1;
printf("demoCreateContext\n");
return &c->Base;
}
static _EGLSurface *
demoCreateWindowSurface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, NativeWindowType window, const EGLint *attrib_list)
{
int i;
for (i = 0; attrib_list && attrib_list[i] != EGL_NONE; i++) {
switch (attrib_list[i]) {
/* no attribs at this time */
default:
_eglError(EGL_BAD_ATTRIBUTE, "eglCreateWindowSurface");
return NULL;
}
}
printf("eglCreateWindowSurface()\n");
/* XXX unfinished */
return NULL;
}
static _EGLSurface *
demoCreatePixmapSurface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, NativePixmapType pixmap, const EGLint *attrib_list)
{
EGLint i;
for (i = 0; attrib_list && attrib_list[i] != EGL_NONE; i++) {
switch (attrib_list[i]) {
/* no attribs at this time */
default:
_eglError(EGL_BAD_ATTRIBUTE, "eglCreatePixmapSurface");
return NULL;
}
}
if (GET_CONFIG_ATTRIB(conf, EGL_SURFACE_TYPE) == 0) {
_eglError(EGL_BAD_MATCH, "eglCreatePixmapSurface");
return NULL;
}
printf("eglCreatePixmapSurface()\n");
return NULL;
}
static _EGLSurface *
demoCreatePbufferSurface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf,
const EGLint *attrib_list)
{
DemoSurface *surf = (DemoSurface *) calloc(1, sizeof(DemoSurface));
if (!surf)
return NULL;
if (!_eglInitSurface(drv, &surf->Base, EGL_PBUFFER_BIT,
conf, attrib_list)) {
free(surf);
return NULL;
}
/* a real driver would allocate the pbuffer memory here */
return &surf->Base;
}
static EGLBoolean
demoDestroySurface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface)
{
DemoSurface *fs = LookupDemoSurface(surface);
if (!_eglIsSurfaceBound(&fs->Base))
free(fs);
return EGL_TRUE;
}
static EGLBoolean
demoDestroyContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *context)
{
DemoContext *fc = LookupDemoContext(context);
if (!_eglIsContextBound(&fc->Base))
free(fc);
return EGL_TRUE;
}
static EGLBoolean
demoMakeCurrent(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *drawSurf, _EGLSurface *readSurf, _EGLContext *ctx)
{
/*DemoDriver *demo = DEMO_DRIVER(dpy);*/
EGLBoolean b;
b = _eglMakeCurrent(drv, dpy, drawSurf, readSurf, ctx);
if (!b)
return EGL_FALSE;
/* XXX this is where we'd do the hardware context switch */
(void) drawSurf;
(void) readSurf;
(void) ctx;
printf("eglMakeCurrent()\n");
return EGL_TRUE;
}
static void
demoUnload(_EGLDriver *drv)
{
free(drv);
}
/**
* The bootstrap function. Return a new DemoDriver object and
* plug in API functions.
*/
_EGLDriver *
_eglMain(const char *args)
{
DemoDriver *demo;
demo = (DemoDriver *) calloc(1, sizeof(DemoDriver));
if (!demo) {
return NULL;
}
/* First fill in the dispatch table with defaults */
_eglInitDriverFallbacks(&demo->Base);
/* then plug in our Demo-specific functions */
demo->Base.API.Initialize = demoInitialize;
demo->Base.API.Terminate = demoTerminate;
demo->Base.API.CreateContext = demoCreateContext;
demo->Base.API.MakeCurrent = demoMakeCurrent;
demo->Base.API.CreateWindowSurface = demoCreateWindowSurface;
demo->Base.API.CreatePixmapSurface = demoCreatePixmapSurface;
demo->Base.API.CreatePbufferSurface = demoCreatePbufferSurface;
demo->Base.API.DestroySurface = demoDestroySurface;
demo->Base.API.DestroyContext = demoDestroyContext;
demo->Base.Name = "egl/demo";
demo->Base.Unload = demoUnload;
return &demo->Base;
}