home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 14 / MA_Cover_14.iso / source / e / powerd / modules.lha / modules / graphics / displayinfo.m < prev    next >
Encoding:
Text File  |  1999-06-23  |  4.8 KB  |  144 lines

  1. /*
  2. **    $VER: displayinfo.h 39.13 (31.5.93)
  3. **    Includes Release 40.15
  4. **
  5. **    include define file for displayinfo database
  6. **
  7. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  8. **        All Rights Reserved
  9. */
  10.  
  11. MODULE    'graphics/gfx',
  12.             'graphics/monitor'
  13.  
  14. // datachunk type identifiers
  15.  
  16. CONST    DTAG_DISP=$80000000,
  17.         DTAG_DIMS=$80001000,
  18.         DTAG_MNTR=$80002000,
  19.         DTAG_NAME=$80003000,
  20.         DTAG_VEC =$80004000    // internal use only
  21.  
  22. OBJECT QueryHeader
  23.     StructID:ULONG,        // datachunk type identifier
  24.     DisplayID:ULONG,        // copy of display record key
  25.     SkipID:ULONG,            // TAG_SKIP -- see tagitems.m
  26.     Length:ULONG            // length of local data in double-longwords
  27.  
  28. OBJECT DisplayInfo
  29.     Header:QueryHeader,
  30.     NotAvailable:UWORD,        // if NULL available, else see defines
  31.     PropertyFlags:ULONG,        // Properties of this mode see defines
  32.     Resolution:TPoint,        // ticks-per-pixel X/Y
  33.     PixelSpeed:UWORD,            // aproximation in nanoseconds
  34.     NumStdSprites:UWORD,        // number of standard amiga sprites
  35.     PaletteRange:UWORD,        // OBSOLETE - use Red/Green/Blue bits instead
  36.     SpriteResolution:TPoint,// std sprite ticks-per-pixel X/Y
  37.     pad[4]:UBYTE,                // used internally
  38.     RedBits:UBYTE,                // number of Red bits this display supports (V39)
  39.     GreenBits:UBYTE,            // number of Green bits this display supports (V39)
  40.     BlueBits:UBYTE,            // number of Blue bits this display supports (V39)
  41.     pad2[5]:UBYTE,                // find some use for this.
  42.     reserved[2]:ULONG            // terminator
  43.  
  44. // availability
  45.  
  46. SET    DI_AVAIL_NOCHIPS,
  47.         DI_AVAIL_NOMONITOR,
  48.         DI_AVAIL_NOTWITHGENLOCK
  49.  
  50. // mode properties
  51.  
  52. CONST    DIPF_IS_LACE    =$00000001,
  53.         DIPF_IS_DUALPF    =$00000002,
  54.         DIPF_IS_PF2PRI    =$00000004,
  55.         DIPF_IS_HAM        =$00000008,
  56.         DIPF_IS_ECS        =$00000010,    // note: ECS modes (SHIRES, VGA, and
  57.                                             // PRODUCTIVITY) do not support
  58.                                             // attached sprites.
  59.         DIPF_IS_AA        =$00010000,    // AA modes - may only be available
  60.                                             // if machine has correct memory
  61.                                             // type to support required
  62.                                             // bandwidth - check availability.
  63.                                             // (V39)
  64.         DIPF_IS_PAL        =$00000020,
  65.         DIPF_IS_SPRITES=$00000040,
  66.         DIPF_IS_GENLOCK=$00000080,
  67.         DIPF_IS_WB        =$00000100,
  68.         DIPF_IS_DRAGGABLE    =$00000200,
  69.         DIPF_IS_PANELLED    =$00000400,
  70.         DIPF_IS_BEAMSYNC    =$00000800,
  71.         DIPF_IS_EXTRAHALFBRITE    =$00001000,
  72. // The following DIPF_IS_... flags are new for V39
  73.         DIPF_IS_SPRITES_ATT        =$00002000,    // supports attached sprites
  74.         DIPF_IS_SPRITES_CHNG_RES=$00004000,    // supports variable sprite resolution
  75.         DIPF_IS_SPRITES_BORDER    =$00008000,    // sprite can be displayed in the border
  76.         DIPF_IS_SCANDBL            =$00020000,    // scan doubled
  77.         DIPF_IS_SPRITES_CHNG_BASE=$00040000,
  78.                                         // can change the sprite base colour
  79.         DIPF_IS_SPRITES_CHNG_PRI=$00080000,
  80.                                         // can change the sprite priority
  81.                                         // with respect to the playfield(s).
  82.         DIPF_IS_DBUFFER    =$00100000,    // can support double buffering
  83.         DIPF_IS_PROGBEAM    =$00200000,    // is a programmed beam-sync mode
  84.         DIPF_IS_FOREIGN    =$80000000    // this mode is not native to the Amiga
  85.  
  86.  
  87. OBJECT DimensionInfo
  88.     Header:QueryHeader,
  89.     MaxDepth:UWORD,            // log2( max number of colors )
  90.     MinRasterWidth:UWORD,    // minimum width in pixels
  91.     MinRasterHeight:UWORD,    // minimum height in pixels
  92.     MaxRasterWidth:UWORD,    // maximum width in pixels
  93.     MaxRasterHeight:UWORD,    // maximum height in pixels
  94.     Nominal:Rectangle,        // "standard" dimensions
  95.     MaxOScan:Rectangle,        // fixed, hardware dependent
  96.     VideoOScan:Rectangle,    // fixed, hardware dependent
  97.     TxtOScan:Rectangle,        // editable via preferences
  98.     StdOScan:Rectangle,        // editable via preferences
  99.     pad[14]:UBYTE,
  100.     reserved[2]:ULONG            // terminator
  101.  
  102. OBJECT MonitorInfo
  103.     Header:QueryHeader,
  104.     Mspc:PTR TO MonitorSpec,        // pointer to monitor specification
  105.     ViewPosition:TPoint,                // editable via preferences
  106.     ViewResolution:TPoint,            // standard monitor ticks-per-pixel
  107.     ViewPositionRange:Rectangle,  // fixed, hardware dependent
  108.     TotalRows:UWORD,                    // display height in scanlines
  109.     TotalColorClocks:UWORD,            // scanline width in 280 ns units
  110.     MinRow:UWORD,                        // absolute minimum active scanline
  111.     Compatibility:WORD,                // how this coexists with others
  112.     pad[32]:UBYTE,
  113.     MouseTicks:TPoint,
  114.     DefaultViewPosition:TPoint,    // original, never changes
  115.     PreferredModeID:ULONG,            // for Preferences
  116.     reserved[2]:ULONG                    // terminator
  117.  
  118. // monitor compatibility
  119.  
  120. CONST    MCOMPAT_MIXED =0,                // can share display with other MCOMPAT_MIXED
  121.         MCOMPAT_SELF  =1,                // can share only within same monitor
  122.         MCOMPAT_NOBODY=-1                // only one viewport at a time
  123.  
  124. CONST    DISPLAYNAMELEN=32
  125.  
  126. OBJECT NameInfo
  127.     Header:QueryHeader,
  128.     Name[DISPLAYNAMELEN]:CHAR,
  129.     reserved[2]:ULONG                    // terminator
  130.  
  131. /******************************************************************************/
  132.  
  133. /* The following VecInfo structure is PRIVATE, for our use only
  134.  * Touch these, and burn! (V39)
  135.  */
  136.  
  137. OBJECT VecInfo
  138.     Header:QueryHeader,
  139.     Vec:APTR,
  140.     Data:APTR,
  141.     Type:UWORD,
  142.     pad[3]:UWORD,
  143.     reserved[2]:ULONG
  144.