diff options
Diffstat (limited to 'spec/fltk-devices-surface.ads')
-rw-r--r-- | spec/fltk-devices-surface.ads | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/spec/fltk-devices-surface.ads b/spec/fltk-devices-surface.ads new file mode 100644 index 0000000..f70d1e8 --- /dev/null +++ b/spec/fltk-devices-surface.ads @@ -0,0 +1,84 @@ + + +-- Programmed by Jedidiah Barber +-- Released into the public domain + + +with + + FLTK.Devices.Graphics; + + +package FLTK.Devices.Surface is + + + 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; + + |