home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / pOSxA.lzx / pOSxA / graphics / displayinfo.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-12  |  2.6 KB  |  84 lines

  1. #ifndef    GRAPHICS_DISPLAYINFO_H
  2. #define    GRAPHICS_DISPLAYINFO_H
  3.  
  4. #ifndef EXEC_TYPES_H
  5. #include <exec/types.h>
  6. #endif /* EXEC_TYPES_H */
  7.  
  8. #ifndef GRAPHICS_GFX_H
  9. #include <graphics/gfx.h>
  10. #endif /* GRAPHICS_GFX_H */
  11.  
  12. #ifndef GRAPHICS_MONITOR_H
  13. #include <graphics/monitor.h>
  14. #endif /* GRAPHICS_MONITOR_H */
  15.  
  16. #ifndef GRAPHICS_MODEID_H
  17. #include <graphics/modeid.h>
  18. #endif /* GRAPHICS_MODEID_H */
  19.  
  20. #ifndef UTILITY_TAGITEM_H
  21. #include <utility/tagitem.h>
  22. #endif /* UTILITY_TAGITEM_H */
  23.  
  24. #define DTAG_DISP        0x80000000
  25. #define DTAG_DIMS        0x80001000
  26. #define DTAG_MNTR         _PxA_IGNORE
  27. #define DTAG_NAME        0x80003000
  28.  
  29. typedef APTR DisplayInfoHandle;
  30.  
  31. struct QueryHeader
  32. {
  33.     ULONG    StructID;    /* datachunk type identifier */
  34.     ULONG    DisplayID;    /* copy of display record key    */
  35.     ULONG    SkipID;        /* TAG_SKIP -- see tagitems.h */
  36.     ULONG    Length;        /* length of local data in double-longwords */
  37. };
  38.  
  39. struct DisplayInfo
  40. {
  41.     struct    QueryHeader Header;
  42.     UWORD    NotAvailable;    /* if NULL available, else see defines */
  43.     ULONG    PropertyFlags;    /* Properties of this mode see defines */
  44.     Point    Resolution;    /* ticks-per-pixel X/Y               */
  45.     UWORD    PixelSpeed;    /* aproximation in nanoseconds           */
  46.     UWORD    NumStdSprites;    /* number of standard amiga sprites    */
  47.     UWORD    PaletteRange;    /* OBSOLETE - use Red/Green/Blue bits instead */
  48.     Point    SpriteResolution; /* std sprite ticks-per-pixel X/Y    */
  49.     UBYTE    pad[4];        /* used internally */
  50.     UBYTE    RedBits;    /* number of Red bits this display supports (V39) */
  51.     UBYTE    GreenBits;    /* number of Green bits this display supports (V39) */
  52.     UBYTE    BlueBits;    /* number of Blue bits this display supports (V39) */
  53.     UBYTE    pad2[5];    /* find some use for this. */
  54.     ULONG    reserved[2];    /* terminator */
  55. };
  56.  
  57. struct DimensionInfo
  58. {
  59.     struct    QueryHeader Header;
  60.     UWORD    MaxDepth;          /* log2( max number of colors ) */
  61.     UWORD    MinRasterWidth;       /* minimum width in pixels      */
  62.     UWORD    MinRasterHeight;      /* minimum height in pixels     */
  63.     UWORD    MaxRasterWidth;       /* maximum width in pixels      */
  64.     UWORD    MaxRasterHeight;      /* maximum height in pixels     */
  65.     struct    Rectangle   Nominal;  /* "standard" dimensions          */
  66.     struct    Rectangle   MaxOScan; /* fixed, hardware dependent    */
  67.     struct    Rectangle VideoOScan; /* fixed, hardware dependent    */
  68.     struct    Rectangle   TxtOScan; /* editable via preferences     */
  69.     struct    Rectangle   StdOScan; /* editable via preferences     */
  70.     UBYTE    pad[14];
  71.     ULONG    reserved[2];          /* terminator */
  72. };
  73.  
  74. #define DISPLAYNAMELEN 32
  75.  
  76. struct NameInfo
  77. {
  78.     struct    QueryHeader Header;
  79.     UBYTE    Name[DISPLAYNAMELEN];
  80.     ULONG    reserved[2];          /* terminator */
  81. };
  82.  
  83. #endif    /* GRAPHICS_DISPLAYINFO_H */
  84.