with openGL.Tasks, GL.Binding, interfaces.C.Strings, ada.unchecked_Conversion; package body openGL.Server is function Version return String is use GL, GL.Binding, Interfaces; check_is_OK : constant Boolean := openGL.Tasks.Check with Unreferenced; type GLubyte_Pointer is access all GLubyte; function to_Chars_ptr is new ada.unchecked_Conversion (GLubyte_Pointer, c.Strings.Chars_ptr); Result : constant String := c.Strings.Value (to_Chars_ptr (glGetString (GL_VERSION))); begin return Result; end Version; function Version return a_Version is use GL, GL.Binding; Major : aliased glInt; Minor : aliased glInt; begin glGetIntegerv (GL_MAJOR_VERSION, Major'Access); glGetIntegerv (GL_MINOR_VERSION, Minor'Access); return (Major => Integer (Major), Minor => Integer (Minor)); end Version; end openGL.Server;