# Select an EGL config
protected fun select_egl_config(red, green, blue, alpha, depth, stencil: Int)
do
var config_chooser = new EGLConfigChooser
config_chooser.renderable_type_egl
config_chooser.surface_type_egl
config_chooser.red_size = red
config_chooser.green_size = green
config_chooser.blue_size = blue
if alpha > 0 then config_chooser.alpha_size = alpha
if depth > 0 then config_chooser.depth_size = depth
if stencil > 0 then config_chooser.stencil_size = stencil
config_chooser.sample_buffers = 1
config_chooser.samples = 4
config_chooser.close
var configs = config_chooser.choose(egl_display)
assert configs != null else print "Choosing EGL config failed: {egl_display.error}"
assert not configs.is_empty else print "Found no EGL config"
if debug_gamnit then
print "EGL available configurations:"
for config in configs do
var attribs = config.attribs(egl_display)
print "* Conformant to: {attribs.conformant}"
print " Caveats: {attribs.caveat}"
print " Size of RGBA: {attribs.red_size} {attribs.green_size} {attribs.blue_size} {attribs.alpha_size}"
print " Buffer, depth, stencil: {attribs.buffer_size} {attribs.depth_size} {attribs.stencil_size}"
print " Sample buffers, samples: {attribs.sample_buffers} {attribs.samples}"
end
end
# We use the first one, it is recommended
self.egl_config = configs.first
end
lib/gamnit/egl.nit:48,2--84,4