|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 6826 (0x1aaa)
Types: TextFile
Names: »V«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00
└─⟦0c20f784e⟧ »DATA«
└─⟦1abbe589f⟧
└─⟦059497ac5⟧
└─⟦this⟧
with Unchecked_Deallocation;
with Xlbt_Arithmetic;
use Xlbt_Arithmetic;
with Xlbt_Color;
use Xlbt_Color;
with Xlbt_Proc_Var;
use Xlbt_Proc_Var;
package Xlbt_Image3 is
------------------------------------------------------------------------------
-- X Library Image - Full Interface
--
-- Xlbt_Image3 - Screen/Window Images
------------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
-- Copyright 1987 - 1989 by Digital Equipment Corporation, Maynard, Mass.
-- Copyright 1987 - 1989 by Massachusetts Institute of Technology,
-- Cambridge, Massachusetts.
--
-- All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the names of Digital, MIT, or Rational
-- not be used in advertising or publicity pertaining to distribution of
-- the software without specific, written prior permission.
--
-- Digital, MIT, and Rational disclaim all warranties with regard to this
-- software, including all implied warranties of merchantability and fitness,
-- in no event shall Digital, MIT, or Rational be liable for any special,
-- indirect or consequential damages or any damages whatsoever resulting from
-- loss of use, data or profits, whether in an action of contract, negligence
-- or other tortious action, arising out of or in connection with the use or
-- performance of this software.
------------------------------------------------------------------------------
--\f
------------------------------------------------------------------------------
-- X_Byte_Bit_Order
------------------------------------------------------------------------------
type X_Byte_Bit_Order is (Lsb_First,
Msb_First);
--/ if Length_Clauses then
for X_Byte_Bit_Order'Size use 8;
--/ end if;
None_X_Byte_Bit_Order : constant X_Byte_Bit_Order :=
X_Byte_Bit_Order'Val (0);
------------------------------------------------------------------------------
-- X_Image_Format
------------------------------------------------------------------------------
type X_Image_Format is (X_Y_Bitmap, -- depth 1, X_Y_Format
X_Y_Pixmap, -- depth == drawable depth
Z_Pixmap); -- depth == drawable depth
--/ if Length_Clauses then
for X_Image_Format'Size use 8;
--/ end if;
None_X_Image_Format : constant X_Image_Format := X_Image_Format'Val (0);
------------------------------------------------------------------------------
-- X_Pixmap_Format_Values
------------------------------------------------------------------------------
type X_Pixmap_Format_Values is
record
Depth : U_Char := 0;
Bits_Per_Pixel : U_Char := 0;
Scan_Line_Pad : U_Char := 0;
end record;
type X_Pixmap_Format_Values_Array is
array (S_Natural range <>) of X_Pixmap_Format_Values;
type X_Pixmap_Format_Values_List is access X_Pixmap_Format_Values_Array;
--/ if Pack then
--// pragma Pack (X_Pixmap_Format_Values_Array);
--/ end if;
--/ if Enable_Deallocation then
pragma Enable_Deallocation (X_Pixmap_Format_Values_List);
--/ end if;
None_X_Pixmap_Format_Values : constant X_Pixmap_Format_Values := (0, 0, 0);
None_X_Pixmap_Format_Values_List :
constant
X_Pixmap_Format_Values_List := null;
procedure Free_X_Pixmap_Format_Values_List is
new Unchecked_Deallocation (X_Pixmap_Format_Values_Array,
X_Pixmap_Format_Values_List);
------------------------------------------------------------------------------
-- X_Image_Funcs
------------------------------------------------------------------------------
type X_Image_Funcs is
record
Create_Image : X_Procedure_Variable;
----X_Create_Image.Pv;
Destroy_Image : X_Procedure_Variable;
----X_Destroy_Image.Pv;
Get_Pixel : X_Procedure_Variable;
----X_Get_Pixel.Pv;
Put_Pixel : X_Procedure_Variable;
----X_Put_Pixel.Pv;
Sub_Image : X_Procedure_Variable;
----X_Sub_Image.Pv;
Add_Pixel : X_Procedure_Variable;
----X_Add_Pixel.Pv;
end record;
------------------------------------------------------------------------------
-- X_Image - Image data structure - used by image manipulation routines.
------------------------------------------------------------------------------
type X_Image_Rec is
record
Width : U_Short := 0;
----Size of image
Height : U_Short := 0;
----Size of image
X_Offset : S_Short := 0;
----# of pixels offset in X direction
Format : X_Image_Format := None_X_Image_Format;
----X_Y_Bitmap, X_Y_Pixmap, Z_Pixmap
Data : U_Char_List := None_U_Char_List;
----Pointer to image data
Data_Is_Shared : Boolean := False;
----True if data is not freed when X_Image_Rec is freed.
Byte_Order : X_Byte_Bit_Order := None_X_Byte_Bit_Order;
----Data byte order, Lsb_First, Msb_First
Bitmap_Unit : U_Char := 0;
----Quantity of scanline 8, 16, 32
Bitmap_Bit_Order : X_Byte_Bit_Order := None_X_Byte_Bit_Order;
----Lsb_First, Msb_First
Bitmap_Pad : U_Char := 0;
----8, 16, 32 either XY or Z_Pixmap
Depth : U_Char := 0;
----Depth of image
Bytes_Per_Line : U_Short := 0;
----Accelerator to next line
Bits_Per_Pixel : U_Char := 0;
----Bits per pixel (Z_Pixmap)
Red_Mask : X_Red_Color_Mask := None_X_Color_Mask;
----Bits in z arrangement
Green_Mask : X_Green_Color_Mask := None_X_Color_Mask;
----Bits in z arrangement
Blue_Mask : X_Blue_Color_Mask := None_X_Color_Mask;
----Bits in z arrangement
Obdata : U_Char_List := None_U_Char_List;
----Hook for object routines to hang on
F : X_Image_Funcs;
----Image manipulation routines
end record;
type X_Image is access X_Image_Rec;
--/ if Enable_Deallocation then
pragma Enable_Deallocation (X_Image);
--/ end if;
None_X_Image : constant X_Image := null;
procedure Free_X_Image (Image : in out X_Image);
end Xlbt_Image3;