Author: fperrad
Date: Fri Aug  8 07:34:52 2008
New Revision: 30133

Modified:
   branches/opengl4lua/languages/lua/src/lib/gl.lua
   branches/opengl4lua/languages/lua/src/lib/gl_binding.pir

Log:
[Lua] OpenGL, refactor GetError

Modified: branches/opengl4lua/languages/lua/src/lib/gl.lua
==============================================================================
--- branches/opengl4lua/languages/lua/src/lib/gl.lua    (original)
+++ branches/opengl4lua/languages/lua/src/lib/gl.lua    Fri Aug  8 07:34:52 2008
@@ -277,7 +277,12 @@
 
 -- GetError () -> error flag
 function GetError ()
-    return gl_binding._get_str_error()
+    local err = gl_binding.glGetError()
+    if err == 0 then
+        return 'NO_ERROR'
+    else
+        return gl_binding._get_str_gl_enum(err)
+    end
 end
 
 -- GetLight (light, pname) -> paramsArray

Modified: branches/opengl4lua/languages/lua/src/lib/gl_binding.pir
==============================================================================
--- branches/opengl4lua/languages/lua/src/lib/gl_binding.pir    (original)
+++ branches/opengl4lua/languages/lua/src/lib/gl_binding.pir    Fri Aug  8 
07:34:52 2008
@@ -32,23 +32,21 @@
     .local pmc _lua__GLOBAL
     _lua__GLOBAL = get_hll_global '_G'
 
-    new $P1, 'LuaString'
-
     .local pmc _gl_binding
     new _gl_binding, 'LuaTable'
+    new $P1, 'LuaString'
     set $P1, 'gl_binding'
     _lua__GLOBAL[$P1] = _gl_binding
 
-    $P2 = split ' ', '_get_gl_enum _get_str_error _get_arrayb _get_arrayf 
_get_arrayi _get_array2f'
+    $P2 = split ' ', '_get_gl_enum _get_str_gl_enum _get_arrayb _get_arrayf 
_get_arrayi _get_array2f'
     lua_register($P1, _gl_binding, $P2)
 
+    $P0 = _gl_str()
+    set_hll_global ['gl_binding'], 'gl_str', $P0
+
     # Import all OpenGL/GLU/GLUT functions
     $P0 = get_hll_global ['OpenGL'], '_export_all_functions'
     $P0(_gl_binding)
-    $P0()
-
-    $P0 = _gl_str()
-    set_hll_global ['gl_binding'], 'gl_str', $P0
 
     .return (_gl_binding)
 .end
@@ -84,27 +82,16 @@
     new $P0, 'Iterator', gl_str
   L1:
     unless $P0 goto L2
-    $P1 = shift $P0
-    $I0 = gl_str[$P1]
+    $S0 = shift $P0
+    $I0 = gl_str[$S0]
     unless enum == $I0 goto L1
-    $S0 = $P1
-    .return ($S0)
-  L2:
-    .return ('')
-.end
-
-.sub '_get_str_error'
-    .local pmc res
-    $I0 = glGetError()
-    new res, 'LuaString'
-    if $I0 goto L1
-    set res, 'NO_ERROR'
-    goto L2
-  L1:
-    $S0 = _get_str_gl_enum($I0)
-    set res, $S0
+    goto L3
   L2:
-    .return (res)
+    $S0 = ''
+  L3:
+    new $P0, 'LuaString'
+    set $P0, $S0
+    .return ($P0)
 .end
 
 .sub '_get_arrayb'

Reply via email to