Home | History | Annotate | Download | only in main
      1 /**************************************************************************
      2  *
      3  * Copyright 2010 LunarG, Inc.
      4  * All Rights Reserved.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the
      8  * "Software"), to deal in the Software without restriction, including
      9  * without limitation the rights to use, copy, modify, merge, publish,
     10  * distribute, sub license, and/or sell copies of the Software, and to
     11  * permit persons to whom the Software is furnished to do so, subject to
     12  * the following conditions:
     13  *
     14  * The above copyright notice and this permission notice (including the
     15  * next paragraph) shall be included in all copies or substantial portions
     16  * of the Software.
     17  *
     18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     24  * DEALINGS IN THE SOFTWARE.
     25  *
     26  **************************************************************************/
     27 
     28 
     29 #include <string.h>
     30 #include "egltypedefs.h"
     31 #include "egldriver.h"
     32 #include "eglconfig.h"
     33 #include "eglcontext.h"
     34 #include "eglsurface.h"
     35 #include "eglsync.h"
     36 
     37 
     38 static EGLBoolean
     39 _eglReturnFalse(void)
     40 {
     41    return EGL_FALSE;
     42 }
     43 
     44 
     45 /**
     46  * Plug all the available fallback routines into the given driver's
     47  * dispatch table.
     48  */
     49 void
     50 _eglInitDriverFallbacks(_EGLDriver *drv)
     51 {
     52    /* the driver has to implement these */
     53    drv->API.Initialize = NULL;
     54    drv->API.Terminate = NULL;
     55 
     56    drv->API.GetConfigs = _eglGetConfigs;
     57    drv->API.ChooseConfig = _eglChooseConfig;
     58    drv->API.GetConfigAttrib = _eglGetConfigAttrib;
     59 
     60    drv->API.CreateContext = (void*) _eglReturnFalse;
     61    drv->API.DestroyContext = (void*) _eglReturnFalse;
     62    drv->API.MakeCurrent = (void*) _eglReturnFalse;
     63    drv->API.QueryContext = _eglQueryContext;
     64 
     65    drv->API.CreateWindowSurface = (void*) _eglReturnFalse;
     66    drv->API.CreatePixmapSurface = (void*) _eglReturnFalse;
     67    drv->API.CreatePbufferSurface = (void*) _eglReturnFalse;
     68    drv->API.CreatePbufferFromClientBuffer =
     69       (void*) _eglReturnFalse;
     70    drv->API.DestroySurface = (void*) _eglReturnFalse;
     71    drv->API.QuerySurface = _eglQuerySurface;
     72    drv->API.SurfaceAttrib = _eglSurfaceAttrib;
     73 
     74    drv->API.BindTexImage = (void*) _eglReturnFalse;
     75    drv->API.ReleaseTexImage = (void*) _eglReturnFalse;
     76    drv->API.CopyBuffers = (void*) _eglReturnFalse;
     77    drv->API.SwapBuffers = (void*) _eglReturnFalse;
     78    drv->API.SetDamageRegion = (void*) _eglReturnFalse;
     79    drv->API.SwapInterval = _eglSwapInterval;
     80 
     81    drv->API.WaitClient = (void*) _eglReturnFalse;
     82    drv->API.WaitNative = (void*) _eglReturnFalse;
     83    drv->API.GetProcAddress = (void*) _eglReturnFalse;
     84 
     85    drv->API.CreateImageKHR = NULL;
     86    drv->API.DestroyImageKHR = NULL;
     87 
     88    drv->API.CreateSyncKHR = NULL;
     89    drv->API.DestroySyncKHR = NULL;
     90    drv->API.ClientWaitSyncKHR = NULL;
     91    drv->API.WaitSyncKHR = NULL;
     92    drv->API.SignalSyncKHR = NULL;
     93    drv->API.GetSyncAttrib = _eglGetSyncAttrib;
     94    drv->API.DupNativeFenceFDANDROID = NULL;
     95 
     96    drv->API.CreateDRMImageMESA = NULL;
     97    drv->API.ExportDRMImageMESA = NULL;
     98 
     99    drv->API.SwapBuffersRegionNOK = NULL;
    100 
    101    drv->API.ExportDMABUFImageQueryMESA = NULL;
    102    drv->API.ExportDMABUFImageMESA = NULL;
    103 }
    104