// 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 #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; }