DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦b749bd757⟧ Ada Source

    Length: 10240 (0x2800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Xlbt_Image3, seg_004fc9

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



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.
------------------------------------------------------------------------------

--\x0c
    ------------------------------------------------------------------------------
-- 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;  

E3 Meta Data

    nblk1=9
    nid=0
    hdr6=12
        [0x00] rec0=1b rec1=00 rec2=01 rec3=036
        [0x01] rec0=11 rec1=00 rec2=02 rec3=060
        [0x02] rec0=1c rec1=00 rec2=03 rec3=04a
        [0x03] rec0=1b rec1=00 rec2=04 rec3=036
        [0x04] rec0=00 rec1=00 rec2=09 rec3=016
        [0x05] rec0=18 rec1=00 rec2=05 rec3=082
        [0x06] rec0=17 rec1=00 rec2=06 rec3=032
        [0x07] rec0=1b rec1=00 rec2=07 rec3=034
        [0x08] rec0=03 rec1=00 rec2=08 rec3=000
    tail 0x2170074ce819784628bd9 0x42a00088462063203