diff options
Diffstat (limited to 'ppapi/lib/gl/egl/egldriver_ppapi.c')
-rw-r--r-- | ppapi/lib/gl/egl/egldriver_ppapi.c | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/ppapi/lib/gl/egl/egldriver_ppapi.c b/ppapi/lib/gl/egl/egldriver_ppapi.c new file mode 100644 index 0000000..37b7fe4 --- /dev/null +++ b/ppapi/lib/gl/egl/egldriver_ppapi.c @@ -0,0 +1,101 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <stdlib.h> +#include "third_party/mesa/MesaLib/src/egl/main/egldriver.h" + +/** + * This is an EGL driver that wraps PPAPI. + */ + +/** Subclass of _EGLDriver */ +typedef struct _egl_driver_ppapi { + _EGLDriver Base; /* base class */ +} _EGLDriverPPAPI; + +static EGLBoolean _eglInitializePPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + EGLint *major, + EGLint *minor) { + return EGL_FALSE; +} + +static EGLBoolean _eglTerminatePPAPI(_EGLDriver *drv, + _EGLDisplay *dpy) { + return EGL_FALSE; +} + +static _EGLContext *_eglCreateContextPPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + _EGLConfig *config, + _EGLContext *share, + const EGLint *attrib_list) { + return NULL; +} + +static EGLBoolean _eglDestroyContextPPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + _EGLContext *ctx) { + return EGL_FALSE; +} + +static _EGLSurface *_eglCreateWindowSurfacePPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + _EGLConfig *config, + EGLNativeWindowType window, + const EGLint *attrib_list) { + return NULL; +} + +static _EGLSurface *_eglCreatePbufferSurfacePPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + _EGLConfig *config, + const EGLint *attrib_list) { + return NULL; +} + +static EGLBoolean _eglDestroySurfacePPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + _EGLSurface *surface) { + return EGL_FALSE; +} + +static EGLBoolean _eglSwapBuffersPPAPI(_EGLDriver *drv, + _EGLDisplay *dpy, + _EGLSurface *draw) { + return EGL_FALSE; +} + +static void _unloadPPAPI(_EGLDriver *drv) { + free(drv); +} + +/** + * This is the main entrypoint into the driver, called by egl dispatch API. + * Create a new _EGLDriver object and init its dispatch table. + */ +_EGLDriver* _eglMain(const char *args) +{ + _EGLDriverPPAPI *drv = (_EGLDriverPPAPI *) + calloc(1, sizeof(_EGLDriverPPAPI)); + + if (!drv) + return NULL; + + _eglInitDriverFallbacks(&drv->Base); + drv->Base.API.Initialize = _eglInitializePPAPI; + drv->Base.API.Terminate = _eglTerminatePPAPI; + drv->Base.API.CreateContext = _eglCreateContextPPAPI; + drv->Base.API.DestroyContext = _eglDestroyContextPPAPI; + drv->Base.API.CreateWindowSurface = _eglCreateWindowSurfacePPAPI; + drv->Base.API.CreatePbufferSurface = _eglCreatePbufferSurfacePPAPI; + drv->Base.API.DestroySurface = _eglDestroySurfacePPAPI; + drv->Base.API.SwapBuffers = _eglSwapBuffersPPAPI; + + drv->Base.Name = "PPAPI"; + drv->Base.Unload = _unloadPPAPI; + + return &drv->Base; +} + |