MCPcopy Create free account
hub / github.com/VirtualGL/virtualgl / eglChooseConfig

Function eglChooseConfig

server/faker-egl.cpp:177–351  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

175
176
177EGLBoolean eglChooseConfig(EGLDisplay display, const EGLint *attrib_list,
178 EGLConfig *configs, EGLint config_size, EGLint *num_config)
179{
180 EGLBoolean retval = EGL_FALSE;
181
182 TRY();
183
184 if(IS_EXCLUDED_EGLX(display))
185 return _eglChooseConfig(display, attrib_list, configs, config_size,
186 num_config);
187
188 GET_DISPLAY_INIT(EGL_NOT_INITIALIZED);
189 DISABLE_FAKER();
190
191 /////////////////////////////////////////////////////////////////////////////
192 OPENTRACE(eglChooseConfig); PRARGX(display); PRARGALEGL(attrib_list);
193 PRARGX(configs); PRARGI(config_size); STARTTRACE();
194 /////////////////////////////////////////////////////////////////////////////
195
196 EGLint attribs[MAX_ATTRIBS + 1]; int j = 0;
197 EGLint nativeRenderable = -1, samples = -1, surfaceType = -1, visualID = -1,
198 visualType = -1;
199
200 if(attrib_list)
201 {
202 for(EGLint i = 0; attrib_list[i] != EGL_NONE && i < MAX_ATTRIBS - 4;
203 i += 2)
204 {
205 if(attrib_list[i] == EGL_NATIVE_RENDERABLE
206 && attrib_list[i + 1] != EGL_DONT_CARE)
207 nativeRenderable = attrib_list[i + 1];
208 else if(attrib_list[i] == EGL_SAMPLES
209 && attrib_list[i + 1] != EGL_DONT_CARE)
210 samples = attrib_list[i + 1];
211 else if(attrib_list[i] == EGL_SURFACE_TYPE
212 && attrib_list[i + 1] != EGL_DONT_CARE)
213 surfaceType = attrib_list[i + 1];
214 else if(attrib_list[i] == EGL_NATIVE_VISUAL_ID
215 && attrib_list[i + 1] != EGL_DONT_CARE)
216 visualID = attrib_list[i + 1];
217 else if(attrib_list[i] == EGL_NATIVE_VISUAL_TYPE
218 && attrib_list[i + 1] != EGL_DONT_CARE)
219 visualType = attrib_list[i + 1];
220 else
221 {
222 attribs[j++] = attrib_list[i];
223 attribs[j++] = attrib_list[i + 1];
224 }
225 }
226 }
227 attribs[j++] = EGL_SURFACE_TYPE;
228 if(surfaceType >= 0)
229 attribs[j++] = surfaceType &
230 ~(EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_SWAP_BEHAVIOR_PRESERVED_BIT);
231 else
232 attribs[j++] = EGL_PBUFFER_BIT;
233 if(fconfig.samples >= 0) samples = fconfig.samples;
234 if(samples >= 0)

Callers 7

readbackTestFunction · 0.85
runMethod · 0.85
multiThreadTestFunction · 0.85
offScreenTestFunction · 0.85
extensionQueryTestFunction · 0.85
mainFunction · 0.85
choose_configFunction · 0.85

Calls 6

visualFromIDFunction · 0.85
XFreeFunction · 0.85
getVisualFromConfigFunction · 0.70
EGLConfigIDFunction · 0.70
minFunction · 0.50
printMethod · 0.45

Tested by

no test coverage detected