1 /**************************************************************************
3 * Copyright 2010 LunarG, Inc.
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:
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
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.
26 **************************************************************************/
30 #include "egltypedefs.h"
31 #include "egldriver.h"
32 #include "eglconfig.h"
33 #include "eglcontext.h"
34 #include "eglsurface.h"
35 #include "eglscreen.h"
48 * Plug all the available fallback routines into the given driver's
52 _eglInitDriverFallbacks(_EGLDriver
*drv
)
54 memset(&drv
->API
, 0, sizeof(drv
->API
));
56 /* the driver has to implement these */
57 drv
->API
.Initialize
= NULL
;
58 drv
->API
.Terminate
= NULL
;
60 drv
->API
.GetConfigs
= _eglGetConfigs
;
61 drv
->API
.ChooseConfig
= _eglChooseConfig
;
62 drv
->API
.GetConfigAttrib
= _eglGetConfigAttrib
;
64 drv
->API
.CreateContext
= (CreateContext_t
) _eglReturnFalse
;
65 drv
->API
.DestroyContext
= (DestroyContext_t
) _eglReturnFalse
;
66 drv
->API
.MakeCurrent
= (MakeCurrent_t
) _eglReturnFalse
;
67 drv
->API
.QueryContext
= _eglQueryContext
;
69 drv
->API
.CreateWindowSurface
= (CreateWindowSurface_t
) _eglReturnFalse
;
70 drv
->API
.CreatePixmapSurface
= (CreatePixmapSurface_t
) _eglReturnFalse
;
71 drv
->API
.CreatePbufferSurface
= (CreatePbufferSurface_t
) _eglReturnFalse
;
72 drv
->API
.CreatePbufferFromClientBuffer
=
73 (CreatePbufferFromClientBuffer_t
) _eglReturnFalse
;
74 drv
->API
.DestroySurface
= (DestroySurface_t
) _eglReturnFalse
;
75 drv
->API
.QuerySurface
= _eglQuerySurface
;
76 drv
->API
.SurfaceAttrib
= _eglSurfaceAttrib
;
78 drv
->API
.BindTexImage
= (BindTexImage_t
) _eglReturnFalse
;
79 drv
->API
.ReleaseTexImage
= (ReleaseTexImage_t
) _eglReturnFalse
;
80 drv
->API
.CopyBuffers
= (CopyBuffers_t
) _eglReturnFalse
;
81 drv
->API
.SwapBuffers
= (SwapBuffers_t
) _eglReturnFalse
;
82 drv
->API
.SwapInterval
= _eglSwapInterval
;
84 drv
->API
.WaitClient
= (WaitClient_t
) _eglReturnFalse
;
85 drv
->API
.WaitNative
= (WaitNative_t
) _eglReturnFalse
;
86 drv
->API
.GetProcAddress
= (GetProcAddress_t
) _eglReturnFalse
;
88 #ifdef EGL_MESA_screen_surface
89 drv
->API
.CopyContextMESA
= (CopyContextMESA_t
) _eglReturnFalse
;
90 drv
->API
.CreateScreenSurfaceMESA
=
91 (CreateScreenSurfaceMESA_t
) _eglReturnFalse
;
92 drv
->API
.ShowScreenSurfaceMESA
= (ShowScreenSurfaceMESA_t
) _eglReturnFalse
;
93 drv
->API
.ChooseModeMESA
= _eglChooseModeMESA
;
94 drv
->API
.GetModesMESA
= _eglGetModesMESA
;
95 drv
->API
.GetModeAttribMESA
= _eglGetModeAttribMESA
;
96 drv
->API
.GetScreensMESA
= _eglGetScreensMESA
;
97 drv
->API
.ScreenPositionMESA
= _eglScreenPositionMESA
;
98 drv
->API
.QueryScreenMESA
= _eglQueryScreenMESA
;
99 drv
->API
.QueryScreenSurfaceMESA
= _eglQueryScreenSurfaceMESA
;
100 drv
->API
.QueryScreenModeMESA
= _eglQueryScreenModeMESA
;
101 drv
->API
.QueryModeStringMESA
= _eglQueryModeStringMESA
;
102 #endif /* EGL_MESA_screen_surface */
104 drv
->API
.CreateImageKHR
= NULL
;
105 drv
->API
.DestroyImageKHR
= NULL
;
107 drv
->API
.CreateSyncKHR
= NULL
;
108 drv
->API
.DestroySyncKHR
= NULL
;
109 drv
->API
.ClientWaitSyncKHR
= NULL
;
110 drv
->API
.SignalSyncKHR
= NULL
;
111 drv
->API
.GetSyncAttribKHR
= _eglGetSyncAttribKHR
;
113 #ifdef EGL_MESA_drm_image
114 drv
->API
.CreateDRMImageMESA
= NULL
;
115 drv
->API
.ExportDRMImageMESA
= NULL
;
118 #ifdef EGL_NOK_swap_region
119 drv
->API
.SwapBuffersRegionNOK
= NULL
;
122 #ifdef EGL_MESA_dma_buf_image_export
123 drv
->API
.ExportDMABUFImageQueryMESA
= NULL
;
124 drv
->API
.ExportDMABUFImageMESA
= NULL
;