summaryrefslogtreecommitdiffstats
path: root/src/egl
Commit message (Collapse)AuthorAgeFilesLines
* egl_dri2: Support _EGL_PLATFORM_DRMKristian Høgsberg2010-07-082-40/+223
| | | | This lets the egl_dri2 driver initialize on just a DRM fd.
* egl: Remove unnecessary headers.Vinson Lee2010-07-062-2/+0
|
* egl: Rework driver loading.Chia-I Wu2010-07-067-211/+365
| | | | | | | | | | | | | | | Driver loading is now splitted into two stages. In the first stage, an _EGLModule is created for each driver: user driver, default drivers, and all files in the search directories that start with "egl_". Modules are not loaded at this stage. In the second stage, each module is loaded to initialize a display. The process stops at the first module that can initialize the display. If eglGetProcAddress is called before eglInitialize, the same code path will be taken to find the first module that supports EGL_DEFAULT_DISPLAY. Because we do not want to initialize the display, drv->Probe is used instead in this case.
* egl: Always use EGLAPIENTRY in api function prototypesnobled2010-07-031-15/+15
| | | | Fixes the build on Windows.
* egl: Update MaxSize when a dynamic array is grown.Chia-I Wu2010-06-301-0/+1
|
* egl: Make _eglUnloadDrivers no-op on Windows.Chia-I Wu2010-06-301-0/+4
| | | | | Windows unloads DLLs before atexit. Make _eglUnloadDrivers no-op on Windows for now.
* egl: Store screens in a dynamic array.Chia-I Wu2010-06-303-30/+31
|
* egl: Store configs in a dynamic array.Chia-I Wu2010-06-305-55/+28
|
* egl: Add dynamic array.Chia-I Wu2010-06-305-0/+217
| | | | Dynamic arrays will be used to store configs and screens of a display.
* egl: Remove st/egl probe code.Chia-I Wu2010-06-292-56/+0
| | | | It is no longer needed.
* egl: Do not call drv->Initialize with global mutex locked.Chia-I Wu2010-06-291-3/+9
|
* st/egl: Build a single EGL driver.Chia-I Wu2010-06-291-82/+3
| | | | | | | | | | | | This change makes st/egl build a single egl_gallium.so and multiple st_<API>.so and pipe_<HW>.so. When a display is initialized, the corresponding pipe driver will be loaded. When a context is created, the corresponding state tracker will be loaded. Unlike DRI drivers, no ABI compatibility is maintained. egl_gallium, pipe drivers and state trackers should always be distributed as a single package. As such, there is only a single src/gallium/targets/egl/ that builds everything for the package.
* st/egl: One driver per hardware.Chia-I Wu2010-06-296-45/+66
| | | | | | Merge multiple egl_<platform>_<pipe>.so into a single egl_gallium_<pipe>.so. The environment variable EGL_PLATFORM is now used to modify the return value of _eglGetNativePlatform.
* egl: Add support for EGL_MESA_drm_display.Chia-I Wu2010-06-233-0/+16
| | | | | | | The extension defines eglGetDRMDisplay that creates an EGLDisplay from a DRM fd. Calling eglCreateWindowSurace or eglCreatePixmapSurface with such displays will generate EGL_BAD_NATIVE_WINDOW or EGL_BAD_NATIVE_PIXMAP.
* egl: Introduce platform displays internally.Chia-I Wu2010-06-239-17/+77
| | | | | | | | | | | This commit introduces type-safe platform displays internally. A platform display consists of a generic pointer and an enum that specifies the platform. An EGLDisplay is created from a platform display. Native displays become platform displays whose platform is determined by _eglGetNativePlatform(). Platform windows and pixmaps may also be introduced if needed.
* egl: s/EGL_DISPLAY/EGL_PLATFORM/.Chia-I Wu2010-06-172-11/+14
| | | | | A platform is already used to mean a window system in EGL. No need to use a different term.
* egl: s/_EGL_PLATFORM/_EGL_OS/ and s/POSIX/UNIX/.Chia-I Wu2010-06-174-15/+15
| | | | | A platform means a native window system in EGL. Use OS that follows Gallium instead.
* egl: Use SConscript for Windows build.Chia-I Wu2010-05-317-9/+72
| | | | Fix several portability issues and add SConscript for Windows build.
* Define PUBLIC to dllexport on MSVC.Chia-I Wu2010-05-311-4/+8
| | | | Define PUBLIC to __declspec(dllexport) when _MVC_VER is defined.
* Always define int32_t in compiler headers.Chia-I Wu2010-05-311-3/+1
| | | | eglplatform.h no longer defines int32_t.
* egl_dri2: Split driver loading out into its own functionKristian Høgsberg2010-05-281-32/+48
|
* egl_dri2: Check for xcb_connect() failure the right wayKristian Høgsberg2010-05-281-6/+4
| | | | | It always returns a valid xcb_connection_t, but if connection failed, it's in the error state.
* egl: Return NULL if we fail to load a default driverKristian Høgsberg2010-05-271-1/+1
|
* Make TLS EGL dri2 driver search path behavior match TLS GLX dri2 behavior.Eric Anholt2010-05-201-9/+12
|
* egl: Link drivers back to libEGL.Chia-I Wu2010-05-191-1/+1
| | | | | Drivers need symbols from libEGL. Without back-linking, the build fails on Cygwin.
* egl: Implement EGL_NOK_texture_from_pixmapKristian Høgsberg2010-05-147-29/+54
| | | | | | | This extension allows a color buffer to be used for both rendering and texturing. EGL allows the use of color buffers of pbuffer drawables for texturing, this extension extends this to allow the use of color buffers of pixmaps too.
* egl: Only allow valid config attributes in _eglParseConfigAttribList()Kristian Høgsberg2010-05-141-28/+24
| | | | Passing 0x3030, 0 in the chooser list didn't get caught.
* egl: remove duplicate ARRAY_SIZE() macro declarationBrian Paul2010-05-141-1/+1
|
* egl: Silence uninitialized variable warnings.Vinson Lee2010-05-141-1/+1
|
* egl: Implement EGL_NOK_swap_regionKristian Høgsberg2010-05-135-2/+86
| | | | | | | | | This extension adds a new function which provides an alternative to eglSwapBuffers. eglSwapBuffersRegionNOK accepts two new parameters in addition to those in eglSwapBuffers. The new parameters consist of a pointer to a list of 4-integer blocks defining rectangles (x, y, width, height) and an integer specifying the number of rectangles in the list.
* egl: Allow a prioritized list of default driversKristian Høgsberg2010-05-136-26/+45
| | | | | | | | | | | | | | When there is no user driver or any matching display drivers we fall back to the default driver. This patch lets us have a list of default drivers instead of just one. The drivers are loaded in turn and we attempt to initialize the display. If it fails we unload the driver and move on to the next one. Compared to the display driver mechanism, this avoids loading a number of drivers and then only using one. Also, we call Initialize to see if the driver will work instead of relying on Probe. To know for sure that a driver will work, Probe really have to do a full Initialize, so we will just use Initialize directly.
* egl_dri2: Downgrade initialization errors to warningsKristian Høgsberg2010-05-131-4/+4
| | | | Don't want to shutdown everything if egl_dri2 fails to initialize.
* egl: Drop broken _EGL_PLATFORM_NO_OS codeKristian Høgsberg2010-05-131-32/+0
| | | | | It would do strlen(library_suffix()) in _eglLoaderFile(), with library_suffix() returning NULL. So obviuosly not used or tested.
* egl: Don't try to load driver basename if the platform needs a suffixKristian Høgsberg2010-05-131-3/+5
| | | | That is, don't dlopen(egl_glx) when we know we need to append .so.
* egl_dri2: Zero out driver structKristian Høgsberg2010-05-121-0/+1
| | | | Otherwise testing ->Probe for non-NULL and calling it goes boom.
* egl: Build drivers in $(TOP)/$(LIB_DIR)/egl.Chia-I Wu2010-05-081-2/+3
| | | | | There are enough EGL modules that they deserve a subdirectory, to avoid polluting $(TOP)/$(LIB_DIR).
* egl: Add _eglSearchPathForEach.Chia-I Wu2010-05-082-0/+20
| | | | The function can be used by a driver to check each search path of EGL.
* glapi: Move to src/mapi/.Chia-I Wu2010-05-072-2/+2
| | | | Move glapi to src/mapi/{glapi,es1api,es2api}.
* Add egl.pc fileKristian Høgsberg2010-05-042-1/+30
|
* Merge branch 'gles2-2'Kristian Høgsberg2010-05-021-10/+59
|\ | | | | | | | | Conflicts: src/mesa/drivers/dri/common/dri_util.h
| * egl_dri2: Use new DRI API to create a GLES1/2 context when asked toKristian Høgsberg2010-04-281-10/+59
| |
* | Merge branch '7.8'Jakob Bornecrantz2010-04-281-1/+2
|\ \ | |/ |/|
| * egl: dri2 driver error outputMicah Fedke2010-04-281-1/+2
| | | | | | | | | | | | | | This patch amends the error output string for the case where the dri2 egl driver could not open the dri dev node. Signed-off-by: Brian Paul <[email protected]>
* | Merge branch '7.8'Dan Nicholson2010-04-192-3/+3
|\| | | | | | | | | | | | | | | Conflicts: progs/egl/Makefile progs/egl/Makefile is gone on master with the egl demos split into subdirectories. Will require an additional commit.
| * egl: Pass flags to locate Xlib headers and librariesDan Nicholson2010-04-192-3/+3
| | | | | | | | | | | | | | | | eglplatform.h pulls in Xlib.h on X11 platforms. Likewise, the egl glx driver and egl programs needs to link to libX11. Make sure we use the locations the user told us about. Signed-off-by: Dan Nicholson <[email protected]>
* | egl_dri2: Enable KHR_gl_texture_2D_imageKristian Høgsberg2010-04-141-0/+1
| | | | | | | | Forgot to set the enabled bit when I implemented the extension.
* | egl_dri2: Flush before context switch and swap buffers.Chia-I Wu2010-04-061-0/+18
| | | | | | | | | | DRI does not define any callback to flush the current context. GLX loader simply calls glFlush. Follow the GLX loader here.
* | egl: Unbind the old context in _eglBindContext.Chia-I Wu2010-04-061-10/+9
| | | | | | | | The last commit incorrectly moved the code under an "else".
* | egl: Fix eglMakeCurrent with different surfaces.Chia-I Wu2010-04-061-30/+45
| | | | | | | | | | | | 0a82fadcdd0b6ebbc345c7c302da0e0efce40a98 seems to trigger a bug in _eglBindContext. Rework the logics yet again. It is simpler, and hopefully correct this time.
* | egl: Make _eglBindContextToSurfaces more readable.Chia-I Wu2010-03-281-11/+25
| | | | | | | | | | | | There is no effective changes given how the function is called. It is still not trivial, but it should be more readable and resemble _eglBindContextToThread a lot.