Video_library/source/base/video-pixels-generic_holder...

40 lines
1.1 KiB
Ada
Raw Normal View History

--
-- Holders keep dynamically allocated rasters
--
with Ada.Finalization;
with Video.Integer_Geometry;
use Video.Integer_Geometry;
generic
2023-07-29 21:24:23 +02:00
type Pixel is private;
type Pixel_Array is array (Integer range <>, Integer range <>) of Pixel;
type Pixel_Array_Access is access Pixel_Array;
package Video.Pixels.Generic_Holders is
type Holder is new Ada.Finalization.Controlled with private;
function Bounding_Box (Source : Holder) return Box;
procedure Set_Bounding_Box (
Target : in out Holder;
Bounds : in Box);
2023-07-29 21:24:23 +02:00
function Reference (Source : Holder) return access Pixel_Array;
2023-02-13 18:19:45 +01:00
procedure Query_Raster (
Source : in Holder;
2023-07-29 21:24:23 +02:00
Query : not null access procedure (R : in Pixel_Array));
procedure Process_Raster (
Target : in out Holder;
2023-07-29 21:24:23 +02:00
Process : not null access procedure (R : in out Pixel_Array));
overriding procedure Adjust (Object : in out Holder);
overriding procedure Finalize (Object : in out Holder);
private
type Holder is new Ada.Finalization.Controlled with record
2023-07-29 21:24:23 +02:00
Data : Pixel_Array_Access;
end record;
2023-07-29 21:24:23 +02:00
end Video.Pixels.Generic_Holders;