opengl.errors: Use new 'Debugging' function to optimise out error checks when not building in 'debug' mode.
This commit is contained in:
@@ -3,6 +3,7 @@ with
|
||||
GL.Binding,
|
||||
ada.Text_IO;
|
||||
|
||||
|
||||
package body openGL.Errors
|
||||
is
|
||||
use GL;
|
||||
@@ -10,11 +11,16 @@ is
|
||||
|
||||
function Current return String
|
||||
is
|
||||
begin
|
||||
if Debugging
|
||||
then
|
||||
declare
|
||||
use GL.Binding;
|
||||
check_is_OK : constant Boolean := openGL.Tasks.Check; pragma Unreferenced (check_is_OK);
|
||||
the_Error : constant GL.GLenum := glGetError;
|
||||
begin
|
||||
case the_Error is
|
||||
case the_Error
|
||||
is
|
||||
when GL.GL_NO_ERROR => return "no error";
|
||||
when GL_INVALID_ENUM => return "invalid Enum";
|
||||
when GL_INVALID_VALUE => return "invalid Value";
|
||||
@@ -22,12 +28,20 @@ is
|
||||
when GL_OUT_OF_MEMORY => return "out of Memory";
|
||||
when others => return "unknown openGL error detected (Code:" & the_Error'Image & ")";
|
||||
end case;
|
||||
end;
|
||||
end if;
|
||||
|
||||
return "";
|
||||
end Current;
|
||||
|
||||
|
||||
|
||||
procedure log (Prefix : in String := "")
|
||||
is
|
||||
begin
|
||||
if Debugging
|
||||
then
|
||||
declare
|
||||
current_Error : constant String := Current;
|
||||
|
||||
function Error_Message return String
|
||||
@@ -46,12 +60,18 @@ is
|
||||
end if;
|
||||
|
||||
raise openGL.Error with Error_Message;
|
||||
end;
|
||||
end if;
|
||||
end log;
|
||||
|
||||
|
||||
|
||||
procedure log (Prefix : in String := ""; Error_occurred : out Boolean)
|
||||
is
|
||||
begin
|
||||
if Debugging
|
||||
then
|
||||
declare
|
||||
use ada.Text_IO;
|
||||
current_Error : constant String := Current;
|
||||
begin
|
||||
@@ -67,6 +87,8 @@ is
|
||||
then put_Line ("openGL error: '" & current_Error & "'");
|
||||
else put_Line (Prefix & ": '" & current_Error & "'");
|
||||
end if;
|
||||
end;
|
||||
end if;
|
||||
end log;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user