home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / modules.lha / modules / graphics / displayinfo.m < prev    next >
Encoding:
Text File  |  2000-06-07  |  4.8 KB  |  143 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. SET    DI_AVAIL_NOCHIPS,
  46.         DI_AVAIL_NOMONITOR,
  47.         DI_AVAIL_NOTWITHGENLOCK
  48.  
  49. // mode properties
  50.  
  51. CONST    DIPF_IS_LACE    =$00000001,
  52.         DIPF_IS_DUALPF    =$00000002,
  53.         DIPF_IS_PF2PRI    =$00000004,
  54.         DIPF_IS_HAM        =$00000008,
  55.         DIPF_IS_ECS        =$00000010,    // note: ECS modes (SHIRES, VGA, and
  56.                                             // PRODUCTIVITY) do not support
  57.                                             // attached sprites.
  58.         DIPF_IS_AA        =$00010000,    // AA modes - may only be available
  59.                                             // if machine has correct memory
  60.                                             // type to support required
  61.                                             // bandwidth - check availability.
  62.                                             // (V39)
  63.         DIPF_IS_PAL        =$00000020,
  64.         DIPF_IS_SPRITES=$00000040,
  65.         DIPF_IS_GENLOCK=$00000080,
  66.         DIPF_IS_WB        =$00000100,
  67.         DIPF_IS_DRAGGABLE    =$00000200,
  68.         DIPF_IS_PANELLED    =$00000400,
  69.         DIPF_IS_BEAMSYNC    =$00000800,
  70.         DIPF_IS_EXTRAHALFBRITE    =$00001000,
  71. // The following DIPF_IS_... flags are new for V39
  72.         DIPF_IS_SPRITES_ATT        =$00002000,    // supports attached sprites
  73.         DIPF_IS_SPRITES_CHNG_RES=$00004000,    // supports variable sprite resolution
  74.         DIPF_IS_SPRITES_BORDER    =$00008000,    // sprite can be displayed in the border
  75.         DIPF_IS_SCANDBL            =$00020000,    // scan doubled
  76.         DIPF_IS_SPRITES_CHNG_BASE=$00040000,
  77.                                         // can change the sprite base colour
  78.         DIPF_IS_SPRITES_CHNG_PRI=$00080000,
  79.                                         // can change the sprite priority
  80.                                         // with respect to the playfield(s).
  81.         DIPF_IS_DBUFFER    =$00100000,    // can support double buffering
  82.         DIPF_IS_PROGBEAM    =$00200000,    // is a programmed beam-sync mode
  83.         DIPF_IS_FOREIGN    =$80000000    // this mode is not native to the Amiga
  84.  
  85.  
  86. OBJECT DimensionInfo
  87.     Header:QueryHeader,
  88.     MaxDepth:UWORD,            // log2( max number of colors )
  89.     MinRasterWidth:UWORD,    // minimum width in pixels
  90.     MinRasterHeight:UWORD,    // minimum height in pixels
  91.     MaxRasterWidth:UWORD,    // maximum width in pixels
  92.     MaxRasterHeight:UWORD,    // maximum height in pixels
  93.     Nominal:Rectangle,        // "standard" dimensions
  94.     MaxOScan:Rectangle,        // fixed, hardware dependent
  95.     VideoOScan:Rectangle,    // fixed, hardware dependent
  96.     TxtOScan:Rectangle,        // editable via preferences
  97.     StdOScan:Rectangle,        // editable via preferences
  98.     pad[14]:UBYTE,
  99.     reserved[2]:ULONG            // terminator
  100.  
  101. OBJECT MonitorInfo
  102.     Header:QueryHeader,
  103.     Mspc:PTR TO MonitorSpec,        // pointer to monitor specification
  104.     ViewPosition:TPoint,                // editable via preferences
  105.     ViewResolution:TPoint,            // standard monitor ticks-per-pixel
  106.     ViewPositionRange:Rectangle,  // fixed, hardware dependent
  107.     TotalRows:UWORD,                    // display height in scanlines
  108.     TotalColorClocks:UWORD,            // scanline width in 280 ns units
  109.     MinRow:UWORD,                        // absolute minimum active scanline
  110.     Compatibility:WORD,                // how this coexists with others
  111.     pad[32]:UBYTE,
  112.     MouseTicks:TPoint,
  113.     DefaultViewPosition:TPoint,    // original, never changes
  114.     PreferredModeID:ULONG,            // for Preferences
  115.     reserved[2]:ULONG                    // terminator
  116.  
  117. // monitor compatibility
  118.  
  119. CONST    MCOMPAT_MIXED =0,                // can share display with other MCOMPAT_MIXED
  120.         MCOMPAT_SELF  =1,                // can share only within same monitor
  121.         MCOMPAT_NOBODY=-1                // only one viewport at a time
  122.  
  123. CONST    DISPLAYNAMELEN=32
  124.  
  125. OBJECT NameInfo
  126.     Header:QueryHeader,
  127.     Name[DISPLAYNAMELEN]:CHAR,
  128.     reserved[2]:ULONG                    // terminator
  129.  
  130. /******************************************************************************/
  131.  
  132. /* The following VecInfo structure is PRIVATE, for our use only
  133.  * Touch these, and burn! (V39)
  134.  */
  135.  
  136. OBJECT VecInfo
  137.     Header:QueryHeader,
  138.     Vec:APTR,
  139.     Data:APTR,
  140.     Type:UWORD,
  141.     pad[3]:UWORD,
  142.     reserved[2]:ULONG
  143.