realtime: avoid unnecessary mallocs
[nit.git] / lib / egl.nit
index ba15a83..5d8f4f9 100644 (file)
@@ -42,12 +42,7 @@ extern class EGLDisplay `{ EGLDisplay `}
        fun is_valid: Bool `{ return self != EGL_NO_DISPLAY; `}
 
        fun initialize: Bool `{
-               EGLBoolean r = eglInitialize(self, NULL, NULL);
-               if (r == EGL_FALSE) {
-                       fprintf(stderr, "Unable to eglInitialize");
-                       return 0;
-               }
-               return 1;
+               return eglInitialize(self, NULL, NULL);
        `}
 
        fun major_version: Int `{
@@ -88,7 +83,7 @@ extern class EGLDisplay `{ EGLDisplay `}
                }
 
                configs = (EGLConfig*)malloc(sizeof(EGLConfig)*n_configs);
+
                r = eglChooseConfig(self, c_attribs, configs, n_configs, &n_configs);
 
                if (r == EGL_FALSE) {
@@ -136,11 +131,7 @@ extern class EGLDisplay `{ EGLDisplay `}
        `}
 
        fun make_current(draw, read: EGLSurface, context: EGLContext): Bool `{
-               if (eglMakeCurrent(self, draw, read, context) == EGL_FALSE) {
-                       fprintf(stderr, "Unable to eglMakeCurrent");
-                       return 0;
-               }
-               return 1;
+               return eglMakeCurrent(self, draw, read, context);
        `}
 
        # Can be used directly, but it is preferable to use a `EGLSurfaceAttribs`
@@ -181,7 +172,7 @@ extern class EGLDisplay `{ EGLDisplay `}
 
        fun version: String do return query_string(0x3054)
 
-       fun extensions: Array[String] do return query_string(0x3055).split_with(" ")
+       fun extensions: Array[String] do return query_string(0x3055).trim.split_with(" ")
 
        fun client_apis: Array[String] do return query_string(0x308D).split_with(" ")
 
@@ -225,6 +216,8 @@ class EGLConfigAttribs
        fun red_size: Int do return display.config_attrib(config, 0x3024)
        fun depth_size: Int do return display.config_attrib(config, 0x3025)
        fun stencil_size: Int do return display.config_attrib(config, 0x3026)
+       fun samples: Int do return display.config_attrib(config, 0x3031)
+       fun sample_buffers: Int do return display.config_attrib(config, 0x3032)
 
        fun native_visual_id: Int do return display.config_attrib(config, 0x302E)
        fun native_visual_type: Int do return display.config_attrib(config, 0x302F)
@@ -436,7 +429,8 @@ class EGLConfigChooser
        fun alpha_size=(size: Int) do insert_attrib_with_val(0x3021, size)
        fun depth_size=(size: Int) do insert_attrib_with_val(0x3025, size)
        fun stencil_size=(size: Int) do insert_attrib_with_val(0x3026, size)
-       fun sample_buffers=(size: Int) do insert_attrib_with_val(0x3031, size)
+       fun samples=(count: Int) do insert_attrib_with_val(0x3031, count)
+       fun sample_buffers=(size: Int) do insert_attrib_with_val(0x3032, size)
 
        fun caveat=(caveat: EGLConfigCaveat) do insert_attrib_with_val(0x3050, caveat.to_i)