aboutsummaryrefslogtreecommitdiff
path: root/src/fltk-images.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-images.adb')
-rw-r--r--src/fltk-images.adb491
1 files changed, 0 insertions, 491 deletions
diff --git a/src/fltk-images.adb b/src/fltk-images.adb
deleted file mode 100644
index f86071e..0000000
--- a/src/fltk-images.adb
+++ /dev/null
@@ -1,491 +0,0 @@
-
-
-with
-
- Interfaces.C.Strings,
- System;
-
-use type
-
- Interfaces.C.int,
- System.Address;
-
-
-package body FLTK.Images is
-
-
- function new_fl_image
- (W, H, D : in Interfaces.C.int)
- return System.Address;
- pragma Import (C, new_fl_image, "new_fl_image");
- pragma Inline (new_fl_image);
-
- procedure free_fl_image
- (I : in System.Address);
- pragma Import (C, free_fl_image, "free_fl_image");
- pragma Inline (free_fl_image);
-
-
-
-
- function fl_image_get_rgb_scaling
- return Interfaces.C.int;
- pragma Import (C, fl_image_get_rgb_scaling, "fl_image_get_rgb_scaling");
- pragma Inline (fl_image_get_rgb_scaling);
-
- procedure fl_image_set_rgb_scaling
- (T : in Interfaces.C.int);
- pragma Import (C, fl_image_set_rgb_scaling, "fl_image_set_rgb_scaling");
- pragma Inline (fl_image_set_rgb_scaling);
-
- function fl_image_copy
- (I : in System.Address;
- W, H : in Interfaces.C.int)
- return System.Address;
- pragma Import (C, fl_image_copy, "fl_image_copy");
- pragma Inline (fl_image_copy);
-
- function fl_image_copy2
- (I : in System.Address)
- return System.Address;
- pragma Import (C, fl_image_copy2, "fl_image_copy2");
- pragma Inline (fl_image_copy2);
-
-
-
-
- procedure fl_image_color_average
- (I : in System.Address;
- C : in Interfaces.C.int;
- B : in Interfaces.C.C_float);
- pragma Import (C, fl_image_color_average, "fl_image_color_average");
- pragma Inline (fl_image_color_average);
-
- procedure fl_image_desaturate
- (I : in System.Address);
- pragma Import (C, fl_image_desaturate, "fl_image_desaturate");
- pragma Inline (fl_image_desaturate);
-
-
-
-
- procedure fl_image_inactive
- (I : in System.Address);
- pragma Import (C, fl_image_inactive, "fl_image_inactive");
- pragma Inline (fl_image_inactive);
-
- procedure fl_image_uncache
- (I : in System.Address);
- pragma Import (C, fl_image_uncache, "fl_image_uncache");
- pragma Inline (fl_image_uncache);
-
-
-
-
- function fl_image_w
- (I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_image_w, "fl_image_w");
- pragma Inline (fl_image_w);
-
- function fl_image_h
- (I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_image_h, "fl_image_h");
- pragma Inline (fl_image_h);
-
- function fl_image_d
- (I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_image_d, "fl_image_d");
- pragma Inline (fl_image_d);
-
- function fl_image_ld
- (I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_image_ld, "fl_image_ld");
- pragma Inline (fl_image_ld);
-
- function fl_image_count
- (I : in System.Address)
- return Interfaces.C.int;
- pragma Import (C, fl_image_count, "fl_image_count");
- pragma Inline (fl_image_count);
-
-
-
-
- function fl_image_data
- (I : in System.Address)
- return System.Address;
- pragma Import (C, fl_image_data, "fl_image_data");
- pragma Inline (fl_image_data);
-
- function fl_image_get_pixel
- (C : in Interfaces.C.Strings.chars_ptr;
- O : in Interfaces.C.int)
- return Interfaces.C.unsigned_char;
- pragma Import (C, fl_image_get_pixel, "fl_image_get_pixel");
- pragma Inline (fl_image_get_pixel);
-
- procedure fl_image_set_pixel
- (C : in Interfaces.C.Strings.chars_ptr;
- O : in Interfaces.C.int;
- V : in Interfaces.C.unsigned_char);
- pragma Import (C, fl_image_set_pixel, "fl_image_set_pixel");
- pragma Inline (fl_image_set_pixel);
-
-
-
-
- procedure fl_image_draw
- (I : in System.Address;
- X, Y : in Interfaces.C.int);
- pragma Import (C, fl_image_draw, "fl_image_draw");
- pragma Inline (fl_image_draw);
-
- procedure fl_image_draw2
- (I : in System.Address;
- X, Y, W, H, CX, CY : in Interfaces.C.int);
- pragma Import (C, fl_image_draw2, "fl_image_draw2");
- pragma Inline (fl_image_draw2);
-
- procedure fl_image_draw_empty
- (I : in System.Address;
- X, Y : in Interfaces.C.int);
- pragma Import (C, fl_image_draw_empty, "fl_image_draw_empty");
- pragma Inline (fl_image_draw_empty);
-
-
-
-
- overriding procedure Finalize
- (This : in out Image) is
- begin
- if This.Void_Ptr /= System.Null_Address and then
- This in Image'Class
- then
- if This.Needs_Dealloc then
- free_fl_image (This.Void_Ptr);
- end if;
- This.Void_Ptr := System.Null_Address;
- end if;
- end Finalize;
-
-
-
-
- --------------------
- -- Construction --
- --------------------
-
- package body Forge is
-
- function Create
- (Width, Height, Depth : in Natural)
- return Image is
- begin
- return This : Image do
- This.Void_Ptr := new_fl_image
- (Interfaces.C.int (Width),
- Interfaces.C.int (Height),
- Interfaces.C.int (Depth));
- case fl_image_fail (This.Void_Ptr) is
- when 1 => raise No_Image_Error;
- when 2 => raise File_Access_Error;
- when 3 => raise Format_Error;
- when others => null;
- end case;
- end return;
- end Create;
-
- end Forge;
-
-
- function Get_Copy_Algorithm
- return Scaling_Kind is
- begin
- return Scaling_Kind'Val (fl_image_get_rgb_scaling);
- end Get_Copy_Algorithm;
-
-
- procedure Set_Copy_Algorithm
- (To : in Scaling_Kind) is
- begin
- fl_image_set_rgb_scaling (Scaling_Kind'Pos (To));
- end Set_Copy_Algorithm;
-
-
- function Copy
- (This : in Image;
- Width, Height : in Natural)
- return Image'Class is
- begin
- return Copied : Image do
- Copied.Void_Ptr := fl_image_copy
- (This.Void_Ptr,
- Interfaces.C.int (Width),
- Interfaces.C.int (Height));
- end return;
- end Copy;
-
-
- function Copy
- (This : in Image)
- return Image'Class is
- begin
- return Copied : Image do
- Copied.Void_Ptr := fl_image_copy2 (This.Void_Ptr);
- end return;
- end Copy;
-
-
-
-
- --------------
- -- Colors --
- --------------
-
- procedure Color_Average
- (This : in out Image;
- Col : in Color;
- Amount : in Blend) is
- begin
- fl_image_color_average
- (This.Void_Ptr,
- Interfaces.C.int (Col),
- Interfaces.C.C_float (Amount));
- end Color_Average;
-
-
- procedure Desaturate
- (This : in out Image) is
- begin
- fl_image_desaturate (This.Void_Ptr);
- end Desaturate;
-
-
-
-
- ----------------
- -- Activity --
- ----------------
-
- procedure Inactive
- (This : in out Image) is
- begin
- fl_image_inactive (This.Void_Ptr);
- end Inactive;
-
-
- function Is_Empty
- (This : in Image)
- return Boolean is
- begin
- return fl_image_fail (This.Void_Ptr) /= 0;
- end Is_Empty;
-
-
- procedure Uncache
- (This : in out Image) is
- begin
- fl_image_uncache (This.Void_Ptr);
- end Uncache;
-
-
-
-
- ------------------
- -- Dimensions --
- ------------------
-
- function Get_W
- (This : in Image)
- return Natural is
- begin
- return Natural (fl_image_w (This.Void_Ptr));
- end Get_W;
-
-
- function Get_H
- (This : in Image)
- return Natural is
- begin
- return Natural (fl_image_h (This.Void_Ptr));
- end Get_H;
-
-
- function Get_D
- (This : in Image)
- return Natural is
- begin
- return Natural (fl_image_d (This.Void_Ptr));
- end Get_D;
-
-
- function Get_Line_Data
- (This : in Image)
- return Natural is
- begin
- return Natural (fl_image_ld (This.Void_Ptr));
- end Get_Line_Data;
-
-
- function Get_Data_Count
- (This : in Image)
- return Natural is
- begin
- return Natural (fl_image_count (This.Void_Ptr));
- end Get_Data_Count;
-
-
- function Get_Data_Size
- (This : in Image)
- return Natural
- is
- My_Depth : Natural := This.Get_D;
- My_Line_Data : Natural := This.Get_Line_Data;
- begin
- if My_Line_Data > 0 then
- return My_Line_Data * This.Get_H;
- elsif My_Depth = 0 then
- return Integer (Float'Ceiling (Float (This.Get_W) / 8.0)) * This.Get_H;
- else
- return This.Get_W * My_Depth * This.Get_H;
- end if;
- end Get_Data_Size;
-
-
-
-
- ------------------
- -- Pixel Data --
- ------------------
-
- function Get_Datum
- (This : in Image;
- Data : in Positive;
- Position : in Positive)
- return Color_Component
- is
- Pointers : array (1 .. This.Get_Data_Count) of Interfaces.C.Strings.chars_ptr;
- for Pointers'Address use fl_image_data (This.Void_Ptr);
- pragma Import (Ada, Pointers);
- begin
- return Color_Component
- (fl_image_get_pixel (Pointers (Data), Interfaces.C.int (Position) - 1));
- end Get_Datum;
-
-
- procedure Set_Datum
- (This : in out Image;
- Data : in Positive;
- Position : in Positive;
- Value : in Color_Component)
- is
- Pointers : array (1 .. This.Get_Data_Count) of Interfaces.C.Strings.chars_ptr;
- for Pointers'Address use fl_image_data (This.Void_Ptr);
- pragma Import (Ada, Pointers);
- begin
- fl_image_set_pixel
- (Pointers (Data),
- Interfaces.C.int (Position) - 1,
- Interfaces.C.unsigned_char (Value));
- end Set_Datum;
-
-
- function Get_Data
- (This : in Image;
- Data : in Positive;
- Position : in Positive;
- Count : in Natural)
- return Color_Component_Array
- is
- Pointers : array (1 .. This.Get_Data_Count) of Interfaces.C.Strings.chars_ptr;
- for Pointers'Address use fl_image_data (This.Void_Ptr);
- pragma Import (Ada, Pointers);
- Result : Color_Component_Array := (1 .. Count => 0);
- begin
- for Index in Result'Range loop
- Result (Index) := Color_Component (fl_image_get_pixel
- (Pointers (Data),
- Interfaces.C.int (Index - 1 + Position - 1)));
- end loop;
- return Result;
- end Get_Data;
-
-
- function All_Data
- (This : in Image;
- Data : in Positive)
- return Color_Component_Array is
- begin
- return This.Get_Data (Data, 1, This.Get_Data_Size);
- end All_Data;
-
-
- procedure Update_Data
- (This : in out Image;
- Data : in Positive;
- Position : in Positive;
- Values : in Color_Component_Array)
- is
- Pointers : array (1 .. This.Get_Data_Count) of Interfaces.C.Strings.chars_ptr;
- for Pointers'Address use fl_image_data (This.Void_Ptr);
- pragma Import (Ada, Pointers);
- begin
- for Counter in Integer range 0 .. Values'Length - 1 loop
- fl_image_set_pixel
- (Pointers (Data),
- Interfaces.C.int (Position - 1 + Counter),
- Interfaces.C.unsigned_char (Values (Values'First + Counter)));
- end loop;
- end Update_Data;
-
-
-
-
- ---------------
- -- Drawing --
- ---------------
-
- procedure Draw
- (This : in Image;
- X, Y : in Integer) is
- begin
- fl_image_draw
- (This.Void_Ptr,
- Interfaces.C.int (X),
- Interfaces.C.int (Y));
- end Draw;
-
-
- procedure Draw
- (This : in Image;
- X, Y, W, H : in Integer;
- CX, CY : in Integer := 0) is
- begin
- fl_image_draw2
- (This.Void_Ptr,
- Interfaces.C.int (X),
- Interfaces.C.int (Y),
- Interfaces.C.int (W),
- Interfaces.C.int (H),
- Interfaces.C.int (CX),
- Interfaces.C.int (CY));
- end Draw;
-
-
- procedure Draw_Empty
- (This : in Image;
- X, Y : in Integer) is
- begin
- fl_image_draw_empty
- (This.Void_Ptr,
- Interfaces.C.int (X),
- Interfaces.C.int (Y));
- end Draw_Empty;
-
-
-end FLTK.Images;
-