lace_opengl_0.1.0_672a6415/source/opengl-server.adb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;