Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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.    memset(&drv->API, 0, sizeof(drv->API));
  53.  
  54.    /* the driver has to implement these */
  55.    drv->API.Initialize = NULL;
  56.    drv->API.Terminate = NULL;
  57.  
  58.    drv->API.GetConfigs = _eglGetConfigs;
  59.    drv->API.ChooseConfig = _eglChooseConfig;
  60.    drv->API.GetConfigAttrib = _eglGetConfigAttrib;
  61.  
  62.    drv->API.CreateContext = (CreateContext_t) _eglReturnFalse;
  63.    drv->API.DestroyContext = (DestroyContext_t) _eglReturnFalse;
  64.    drv->API.MakeCurrent = (MakeCurrent_t) _eglReturnFalse;
  65.    drv->API.QueryContext = _eglQueryContext;
  66.  
  67.    drv->API.CreateWindowSurface = (CreateWindowSurface_t) _eglReturnFalse;
  68.    drv->API.CreatePixmapSurface = (CreatePixmapSurface_t) _eglReturnFalse;
  69.    drv->API.CreatePbufferSurface = (CreatePbufferSurface_t) _eglReturnFalse;
  70.    drv->API.CreatePbufferFromClientBuffer =
  71.       (CreatePbufferFromClientBuffer_t) _eglReturnFalse;
  72.    drv->API.DestroySurface = (DestroySurface_t) _eglReturnFalse;
  73.    drv->API.QuerySurface = _eglQuerySurface;
  74.    drv->API.SurfaceAttrib = _eglSurfaceAttrib;
  75.  
  76.    drv->API.BindTexImage = (BindTexImage_t) _eglReturnFalse;
  77.    drv->API.ReleaseTexImage = (ReleaseTexImage_t) _eglReturnFalse;
  78.    drv->API.CopyBuffers = (CopyBuffers_t) _eglReturnFalse;
  79.    drv->API.SwapBuffers = (SwapBuffers_t) _eglReturnFalse;
  80.    drv->API.SwapInterval = _eglSwapInterval;
  81.  
  82.    drv->API.WaitClient = (WaitClient_t) _eglReturnFalse;
  83.    drv->API.WaitNative = (WaitNative_t) _eglReturnFalse;
  84.    drv->API.GetProcAddress = (GetProcAddress_t) _eglReturnFalse;
  85.  
  86.    drv->API.CreateImageKHR = NULL;
  87.    drv->API.DestroyImageKHR = NULL;
  88.  
  89.    drv->API.CreateSyncKHR = NULL;
  90.    drv->API.DestroySyncKHR = NULL;
  91.    drv->API.ClientWaitSyncKHR = NULL;
  92.    drv->API.WaitSyncKHR = NULL;
  93.    drv->API.SignalSyncKHR = NULL;
  94.    drv->API.GetSyncAttribKHR = _eglGetSyncAttribKHR;
  95.  
  96. #ifdef EGL_MESA_drm_image
  97.    drv->API.CreateDRMImageMESA = NULL;
  98.    drv->API.ExportDRMImageMESA = NULL;
  99. #endif
  100.  
  101. #ifdef EGL_NOK_swap_region
  102.    drv->API.SwapBuffersRegionNOK = NULL;
  103. #endif
  104.  
  105. #ifdef EGL_MESA_image_dma_buf_export
  106.    drv->API.ExportDMABUFImageQueryMESA = NULL;
  107.    drv->API.ExportDMABUFImageMESA = NULL;
  108. #endif
  109. }
  110.