blob: 68d0df749b784ed74fe2ebdb5e0a162b566a899f (
plain)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
-- Programmed by Jedidiah Barber
-- Released into the public domain
with
FLTK.Devices.Graphics;
package FLTK.Devices.Surface is
pragma Elaborate_Body (FLTK.Devices.Surface);
type Surface_Device is new Device with private;
type Surface_Device_Reference (Data : not null access Surface_Device'Class) is
limited null record with Implicit_Dereference => Data;
package Forge is
function Create
(Graphics : in out FLTK.Devices.Graphics.Graphics_Driver)
return Surface_Device;
end Forge;
function Get_Current
return Surface_Device_Reference;
procedure Set_Current
(This : in out Surface_Device);
function Get_Original
return Surface_Device_Reference;
function Has_Driver
(This : in Surface_Device)
return Boolean;
function Get_Driver
(This : in out Surface_Device)
return FLTK.Devices.Graphics.Graphics_Driver_Reference;
procedure Set_Driver
(This : in out Surface_Device;
Driver : in out FLTK.Devices.Graphics.Graphics_Driver'Class);
private
type Surface_Device is new Device with record
My_Driver : access FLTK.Devices.Graphics.Graphics_Driver'Class;
end record;
overriding procedure Finalize
(This : in out Surface_Device);
procedure Set_Current_Bookkeep
(Surface : in out Surface_Device'Class)
with Inline;
pragma Inline (Get_Current);
pragma Inline (Get_Original);
pragma Inline (Has_Driver);
pragma Inline (Get_Driver);
end FLTK.Devices.Surface;
|