File : win32-glut.adb
-- Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998.
-- This program is freely distributable without licensing fees and is
5 -- provided without guarantee or warrantee expressed or implied. This
-- program is -not- in the public domain.
-- modified for GNAT 3.11p/NT & Glut 3.7
-- Jerry van Dijk, 22-feb-99, jdijk@acm.org
10 -- use with accompanying DLL only
--
-- modified again for GNAT 3.14/NT & Glut 3.76
-- Gene Ressler, 22-jan-03, ressler@usma.edu
-- use with accompanying DLL only
15
package body Win32.Glut is
pragma Linker_Options ("-lopengl32");
pragma Linker_Options ("-lglu32");
20 pragma Linker_Options ("-lglut32");
procedure glutInitDisplayString(
the_string : String
)
25 is
C_the_string : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(the_string);
begin
glutInitDisplayString(C_the_string);
30 Interfaces.C.Strings.Free(C_the_string);
end glutInitDisplayString;
function glutCreateWindow(
title : String
35 ) return Integer
is
Rtn : Integer;
C_title : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(title);
40 begin
Rtn := glutCreateWindow(C_title);
Interfaces.C.Strings.Free(C_title);
return Rtn;
end glutCreateWindow;
45
procedure glutSetWindowTitle(
title : String
)
is
50 C_title : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(title);
begin
glutSetWindowTitle(C_title);
Interfaces.C.Strings.Free(C_title);
55 end glutSetWindowTitle;
procedure glutSetIconTitle(
title : String
)
60 is
C_title : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(title);
begin
glutSetIconTitle(C_title);
65 Interfaces.C.Strings.Free(C_title);
end glutSetIconTitle;
procedure glutAddMenuEntry(
label : String;
70 value : Integer
)
is
C_label : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(label);
75 begin
glutAddMenuEntry(C_label, value);
Interfaces.C.Strings.Free(C_label);
end glutAddMenuEntry;
80 procedure glutAddSubMenu(
label : String;
submenu : Integer
)
is
85 C_label : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(label);
begin
glutAddSubMenu(C_label, submenu);
Interfaces.C.Strings.Free(C_label);
90 end glutAddSubMenu;
procedure glutChangeToMenuEntry(
item : Integer;
label : String;
95 value : Integer
)
is
C_label : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(label);
100 begin
glutChangeToMenuEntry(item, C_label, value);
Interfaces.C.Strings.Free(C_label);
end glutChangeToMenuEntry;
105 procedure glutChangeToSubMenu(
item : Integer;
label : String;
submenu : Integer
)
110 is
C_label : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(label);
begin
glutChangeToSubMenu(item, C_label, submenu);
115 Interfaces.C.Strings.Free(C_label);
end glutChangeToSubMenu;
function glutExtensionSupported(
name : String
120 ) return Integer
is
Rtn : Integer;
C_name : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(name);
125 begin
Rtn := glutExtensionSupported(C_name);
Interfaces.C.Strings.Free(C_name);
return Rtn;
end glutExtensionSupported;
130
function glutBitmapLength(
font : System.Address;
the_string : String
) return Integer
135 is
Rtn : Integer;
C_the_string : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(the_string);
begin
140 Rtn := glutBitmapLength(font, C_the_string);
Interfaces.C.Strings.Free(C_the_string);
return Rtn;
end glutBitmapLength;
145 function glutStrokeLength(
font : System.Address;
the_string : String
) return Integer
is
150 Rtn : Integer;
C_the_string : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(the_string);
begin
Rtn := glutStrokeLength(font, C_the_string);
155 Interfaces.C.Strings.Free(C_the_string);
return Rtn;
end glutStrokeLength;
procedure glutGameModeString(
160 the_string : String
)
is
C_the_string : Interfaces.C.Strings.Chars_Ptr
:= Interfaces.C.Strings.New_String(the_string);
165 begin
glutGameModeString(C_the_string);
Interfaces.C.Strings.Free(C_the_string);
end glutGameModeString;
end Win32.Glut;