1f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu/************************************************************************** 2f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * 3877128505431adaf817dc8069172ebe4a1cdf5d8José Fonseca * Copyright 2008 VMware, Inc. 4f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com> 5f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Copyright 2010-2011 LunarG, Inc. 6f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * All Rights Reserved. 7f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * 8f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * Permission is hereby granted, free of charge, to any person obtaining a 9f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * copy of this software and associated documentation files (the 10f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * "Software"), to deal in the Software without restriction, including 11f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * without limitation the rights to use, copy, modify, merge, publish, 12f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * distribute, sub license, and/or sell copies of the Software, and to 13f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * permit persons to whom the Software is furnished to do so, subject to 14f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * the following conditions: 15f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * 16f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * The above copyright notice and this permission notice (including the 17f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * next paragraph) shall be included in all copies or substantial portions 18f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * of the Software. 19f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * 20f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * DEALINGS IN THE SOFTWARE. 27f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu * 28f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu **************************************************************************/ 29f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu 30f2001df508fda599a18b3586d2775e970a3db13aChia-I Wu 31adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#ifndef EGLCONFIG_INCLUDED 32adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#define EGLCONFIG_INCLUDED 33adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 34adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 35358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu#include <assert.h> 36601498ae73e654c2de997ea75075613a694d604dJosé Fonseca#include <stddef.h> 377bd1693877e4de9aaf8f6776649fc48db54ec82bEmil Velikov#include "c99_compat.h" 387bd1693877e4de9aaf8f6776649fc48db54ec82bEmil Velikov 39adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#include "egltypedefs.h" 40adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 41adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 428362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV#ifdef __cplusplus 438362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IVextern "C" { 448362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV#endif 458362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV 46282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu/* update _eglValidationTable and _eglOffsetOfConfig before updating this 47282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu * struct */ 48adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulstruct _egl_config 49adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul{ 5056822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu _EGLDisplay *Display; 51282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu 52282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu /* core */ 53282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint BufferSize; 54282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint AlphaSize; 55282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint BlueSize; 56282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint GreenSize; 57282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint RedSize; 58282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint DepthSize; 59282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint StencilSize; 60282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint ConfigCaveat; 61282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint ConfigID; 62282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint Level; 63282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint MaxPbufferHeight; 64282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint MaxPbufferPixels; 65282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint MaxPbufferWidth; 66282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint NativeRenderable; 67282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint NativeVisualID; 68282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint NativeVisualType; 69282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint Samples; 70282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint SampleBuffers; 71282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint SurfaceType; 72282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint TransparentType; 73282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint TransparentBlueValue; 74282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint TransparentGreenValue; 75282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint TransparentRedValue; 76282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint BindToTextureRGB; 77282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint BindToTextureRGBA; 78282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint MinSwapInterval; 79282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint MaxSwapInterval; 80282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint LuminanceSize; 81282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint AlphaMaskSize; 82282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint ColorBufferType; 83282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint RenderableType; 84282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint MatchNativePixmap; 85282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint Conformant; 86282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu 87282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu /* extensions */ 88282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint YInvertedNOK; 898975527f58afd4af77966c6e46b485fc04008779Rob Herring EGLint FramebufferTargetAndroid; 90e21e81aa1885287e438970429d44abb8b3dabb96Rob Herring EGLint RecordableAndroid; 91adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul}; 92adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 93adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 94a37dc17c122ed25365b100aefe4b941df1b526c0Chia-I Wu/** 95282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu * Map an EGL attribute enum to the offset of the member in _EGLConfig. 96358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu */ 977bd1693877e4de9aaf8f6776649fc48db54ec82bEmil Velikovstatic inline EGLint 98282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu_eglOffsetOfConfig(EGLint attr) 99358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu{ 100282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu switch (attr) { 101282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu#define ATTRIB_MAP(attr, memb) case attr: return offsetof(_EGLConfig, memb) 102282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu /* core */ 103282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_BUFFER_SIZE, BufferSize); 104282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_ALPHA_SIZE, AlphaSize); 105282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_BLUE_SIZE, BlueSize); 106282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_GREEN_SIZE, GreenSize); 107282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_RED_SIZE, RedSize); 108282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_DEPTH_SIZE, DepthSize); 109282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_STENCIL_SIZE, StencilSize); 110282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_CONFIG_CAVEAT, ConfigCaveat); 111282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_CONFIG_ID, ConfigID); 112282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_LEVEL, Level); 113282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_MAX_PBUFFER_HEIGHT, MaxPbufferHeight); 114282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_MAX_PBUFFER_PIXELS, MaxPbufferPixels); 115282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_MAX_PBUFFER_WIDTH, MaxPbufferWidth); 116282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_NATIVE_RENDERABLE, NativeRenderable); 117282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_NATIVE_VISUAL_ID, NativeVisualID); 118282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_NATIVE_VISUAL_TYPE, NativeVisualType); 119282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_SAMPLES, Samples); 120282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_SAMPLE_BUFFERS, SampleBuffers); 121282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_SURFACE_TYPE, SurfaceType); 122282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_TRANSPARENT_TYPE, TransparentType); 123282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_TRANSPARENT_BLUE_VALUE, TransparentBlueValue); 124282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_TRANSPARENT_GREEN_VALUE, TransparentGreenValue); 125282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_TRANSPARENT_RED_VALUE, TransparentRedValue); 126282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_BIND_TO_TEXTURE_RGB, BindToTextureRGB); 127282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_BIND_TO_TEXTURE_RGBA, BindToTextureRGBA); 128282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_MIN_SWAP_INTERVAL, MinSwapInterval); 129282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_MAX_SWAP_INTERVAL, MaxSwapInterval); 130282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_LUMINANCE_SIZE, LuminanceSize); 131282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_ALPHA_MASK_SIZE, AlphaMaskSize); 132282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_COLOR_BUFFER_TYPE, ColorBufferType); 133282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_RENDERABLE_TYPE, RenderableType); 134282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_MATCH_NATIVE_PIXMAP, MatchNativePixmap); 135282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_CONFORMANT, Conformant); 136282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu /* extensions */ 137282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu ATTRIB_MAP(EGL_Y_INVERTED_NOK, YInvertedNOK); 1388975527f58afd4af77966c6e46b485fc04008779Rob Herring ATTRIB_MAP(EGL_FRAMEBUFFER_TARGET_ANDROID, FramebufferTargetAndroid); 139e21e81aa1885287e438970429d44abb8b3dabb96Rob Herring ATTRIB_MAP(EGL_RECORDABLE_ANDROID, RecordableAndroid); 140282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu#undef ATTRIB_MAP 1415dc0f49084f322dd8ff6eb585212eea8b50e3377Kristian Høgsberg default: 142358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu return -1; 1435dc0f49084f322dd8ff6eb585212eea8b50e3377Kristian Høgsberg } 144358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu} 145358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu 146358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu 147358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu/** 148358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu * Update a config for a given key. 149a37dc17c122ed25365b100aefe4b941df1b526c0Chia-I Wu * 150a37dc17c122ed25365b100aefe4b941df1b526c0Chia-I Wu * Note that a valid key is not necessarily a valid attribute. There are gaps 151a37dc17c122ed25365b100aefe4b941df1b526c0Chia-I Wu * in the attribute enums. The separation is to catch application errors. 152a37dc17c122ed25365b100aefe4b941df1b526c0Chia-I Wu * Drivers should never set a key that is an invalid attribute. 153358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu */ 1547bd1693877e4de9aaf8f6776649fc48db54ec82bEmil Velikovstatic inline void 155358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu_eglSetConfigKey(_EGLConfig *conf, EGLint key, EGLint val) 156358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu{ 157282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint offset = _eglOffsetOfConfig(key); 158282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu assert(offset >= 0); 159282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu *((EGLint *) ((char *) conf + offset)) = val; 160358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu} 161358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu 162358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu 163358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu/** 164358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu * Return the value for a given key. 165358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu */ 1667bd1693877e4de9aaf8f6776649fc48db54ec82bEmil Velikovstatic inline EGLint 167358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu_eglGetConfigKey(const _EGLConfig *conf, EGLint key) 168358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu{ 169282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu EGLint offset = _eglOffsetOfConfig(key); 170282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu assert(offset >= 0); 171282e514240c8f514da768af6377ae61b9f79c81fChia-I Wu return *((EGLint *) ((char *) conf + offset)); 172358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu} 173358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu 174358c5a8fd1d518930c3e87316a2c743a661ac553Chia-I Wu 175dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern void 176216925ccd122a06505dafae425323e3ac858f80eChia-I Wu_eglInitConfig(_EGLConfig *config, _EGLDisplay *dpy, EGLint id); 177adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 178adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 179dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern EGLConfig 1808a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wu_eglLinkConfig(_EGLConfig *conf); 181721ba15bf4596b2e9589e7656005b387724875c3Brian Paul 182721ba15bf4596b2e9589e7656005b387724875c3Brian Paul 1838a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wuextern _EGLConfig * 1848a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wu_eglLookupConfig(EGLConfig config, _EGLDisplay *dpy); 18556822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu 18656822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu 18756822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu/** 1888a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wu * Return the handle of a linked config. 18956822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu */ 1907bd1693877e4de9aaf8f6776649fc48db54ec82bEmil Velikovstatic inline EGLConfig 19156822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu_eglGetConfigHandle(_EGLConfig *conf) 19256822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu{ 1938a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wu return (EGLConfig) conf; 19456822b0812cd500bd54bb7c4b573c54547efb657Chia-I Wu} 195c22990c29a5cdff89e6e3914aa565acc88a6a407Brian Paul 196c22990c29a5cdff89e6e3914aa565acc88a6a407Brian Paul 197dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern EGLBoolean 19895cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu_eglValidateConfig(const _EGLConfig *conf, EGLBoolean for_matching); 19995cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 20095cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 201dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern EGLBoolean 20295cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu_eglMatchConfig(const _EGLConfig *conf, const _EGLConfig *criteria); 20395cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 20495cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 205dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern EGLBoolean 2068a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wu_eglParseConfigAttribList(_EGLConfig *conf, _EGLDisplay *dpy, 2078a6bdf3979c2dda0efc6771308bf9e5c32bbdab4Chia-I Wu const EGLint *attrib_list); 20895cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 20995cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 210dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern EGLint 21195cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu_eglCompareConfigs(const _EGLConfig *conf1, const _EGLConfig *conf2, 21295cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu const _EGLConfig *criteria, EGLBoolean compare_id); 21395cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 21495cdd697e7e72cec1d0fe79c59a8ba7b8cef8571Chia-I Wu 215dd438ae34bdbaa6651cdd226d5fec15a892923bfEmil Velikovextern EGLBoolean 21631520548b763947da6b70b6debe38820835c5bccChia-I Wu_eglFilterConfigArray(_EGLArray *array, EGLConfig *configs, 21731520548b763947da6b70b6debe38820835c5bccChia-I Wu EGLint config_size, EGLint *num_configs, 21831520548b763947da6b70b6debe38820835c5bccChia-I Wu EGLBoolean (*match)(const _EGLConfig *, void *), 21931520548b763947da6b70b6debe38820835c5bccChia-I Wu EGLint (*compare)(const _EGLConfig *, const _EGLConfig *, 22031520548b763947da6b70b6debe38820835c5bccChia-I Wu void *), 22131520548b763947da6b70b6debe38820835c5bccChia-I Wu void *filter_data); 222adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 223adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 224adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 2252f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wu_eglChooseConfig(_EGLDriver *drv, _EGLDisplay *dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); 226adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 227adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 228adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 2292f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wu_eglGetConfigAttrib(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, EGLint attribute, EGLint *value); 230adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 231adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 232adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 2332f2cf461c57974abd89e4917945cc8ae6a67a72eChia-I Wu_eglGetConfigs(_EGLDriver *drv, _EGLDisplay *dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); 234adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 235adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 2368362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV#ifdef __cplusplus 2378362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV} 2388362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV#endif 2398362068c1b28eb2d3e334abc980c4711957d61fdAlexander von Gluck IV 240adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#endif /* EGLCONFIG_INCLUDED */ 241