home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / ace_basic / ace / include / graphics / displayinfo.h < prev    next >
C/C++ Source or Header  |  1977-12-31  |  7KB  |  216 lines

  1. #ifndef GRAPHICS_DISPLAYINFO_H
  2. #define GRAPHICS_DISPLAYINFO_H 1
  3. /*
  4. ** displayinfo.h for ACE Basic
  5. **
  6. ** Note: Translated to ACE by ConvertC2ACE
  7. **       @ MapMeadow Software, Nils Sjoholm
  8. **
  9. **
  10. ** Date: 09/03/95
  11. **
  12. **
  13. */
  14.  
  15. /*
  16. ** This are the StructPointer defines for displayinfo.h
  17. */
  18. #ifndef DimensionInfoPtr
  19. #define DimensionInfoPtr ADDRESS
  20. #endif
  21. #ifndef DisplayInfoPtr
  22. #define DisplayInfoPtr ADDRESS
  23. #endif
  24. #ifndef MonitorInfoPtr
  25. #define MonitorInfoPtr ADDRESS
  26. #endif
  27. #ifndef NameInfoPtr
  28. #define NameInfoPtr ADDRESS
  29. #endif
  30. #ifndef QueryHeaderPtr
  31. #define QueryHeaderPtr ADDRESS
  32. #endif
  33. #ifndef VecInfoPtr
  34. #define VecInfoPtr ADDRESS
  35. #endif
  36. /*
  37. ** End of StructPointer defines for displayinfo.h
  38. */
  39.          
  40. #ifndef EXEC_TYPES_H
  41. #include <exec/types.h>
  42. #endif /* EXEC_TYPES_H */
  43.  
  44. #ifndef GRAPHICS_GFX_H
  45. #include <graphics/gfx.h>
  46. #endif /* GRAPHICS_GFX_H */
  47.  
  48. #ifndef GRAPHICS_MONITOR_H
  49. #include <graphics/monitor.h>
  50. #endif /* GRAPHICS_MONITOR_H */
  51.  
  52. #ifndef GRAPHICS_MODEID_H
  53. #include <graphics/modeid.h>
  54. #endif /* GRAPHICS_MODEID_H */
  55.  
  56. #ifndef UTILITY_TAGITEM_H
  57. #include <utility/tagitem.h>
  58. #endif /* UTILITY_TAGITEM_H */
  59.  
  60.  
  61. /* the "public" HANDLE TO a DisplayInfoRecord */
  62.  
  63. #define DisplayInfoHandle ADDRESS 
  64.  
  65. /* datachunk type identifiers */
  66.  
  67. #define DTAG_DISP       &H80000000
  68. #define DTAG_DIMS       &H80001000
  69. #define DTAG_MNTR       &H80002000
  70. #define DTAG_NAME       &H80003000
  71. #define DTAG_VEC        &H80004000  /* internal use only */
  72.  
  73. STRUCT QueryHeader
  74.  
  75.     LONGINT   StructID    /* datachunk type identifier */
  76.     LONGINT   DisplayID   /* copy of display record key   */
  77.     LONGINT   SkipID      /* TAG_SKIP -- see tagitems.h */
  78.     LONGINT   Length      /* length of local data in double-longwords */
  79. END STRUCT 
  80.  
  81. STRUCT DisplayInfo
  82.  
  83.     QueryHeader Header 
  84.     SHORTINT   NotAvailable    /* if NULL available,  else see defines */
  85.     LONGINT   PropertyFlags   /* Properties of this mode see defines */
  86.     _Point   Resolution  /* ticks-per-pixel X/Y             */
  87.     SHORTINT   PixelSpeed  /* aproximation in nanoseconds         */
  88.     SHORTINT   NumStdSprites   /* number of standard amiga sprites    */
  89.     SHORTINT   PaletteRange    /* OBSOLETE - use Red/Green/Blue bits instead */
  90.     _Point   SpriteResolution  /* std sprite ticks-per-pixel X/Y    */
  91.     STRING pad SIZE 4       /* used internally */
  92.     BYTE    RedBits     /* number of Red bits this display supports (V39) */
  93.     BYTE    GreenBits   /* number of Green bits this display supports (V39) */
  94.     BYTE    BlueBits    /* number of Blue bits this display supports (V39) */
  95.     STRING pad2 SIZE 5      /* find some use for this. */
  96.     STRING reserved SIZE 8  /* 2*SIZEOF(LONGINT) */    /* terminator */
  97. END STRUCT 
  98.  
  99. /* availability */
  100.  
  101. #define DI_AVAIL_NOCHIPS    &H0001
  102. #define DI_AVAIL_NOMONITOR  &H0002
  103. #define DI_AVAIL_NOTWITHGENLOCK &H0004
  104.  
  105. /* mode properties */
  106.  
  107. #define DIPF_IS_LACE        &H00000001
  108. #define DIPF_IS_DUALPF      &H00000002
  109. #define DIPF_IS_PF2PRI      &H00000004
  110. #define DIPF_IS_HAM     &H00000008
  111.  
  112. #define DIPF_IS_ECS     &H00000010  /* note: ECS modes (SHIRES,  VGA,  and **
  113.                                             ** PRODUCTIVITY) do not support      **
  114.                                             ** attached sprites.             **
  115.                                             */
  116. #define DIPF_IS_AA      &H00010000  /* AA modes - may only be available
  117.                         ** if machine has correct memory
  118.                         ** type to support required
  119.                         ** bandwidth - check availability.
  120.                         ** (V39)
  121.                         */
  122. #define DIPF_IS_PAL     &H00000020
  123. #define DIPF_IS_SPRITES     &H00000040
  124. #define DIPF_IS_GENLOCK     &H00000080
  125.  
  126. #define DIPF_IS_WB      &H00000100
  127. #define DIPF_IS_DRAGGABLE   &H00000200
  128. #define DIPF_IS_PANELLED    &H00000400
  129. #define DIPF_IS_BEAMSYNC    &H00000800
  130.  
  131. #define DIPF_IS_EXTRAHALFBRITE  &H00001000
  132.  
  133. /* The following DIPF_IS_... flags are new for V39 */
  134. #define DIPF_IS_SPRITES_ATT     &H00002000  /* supports attached sprites */
  135. #define DIPF_IS_SPRITES_CHNG_RES    &H00004000  /* supports variable sprite resolution */
  136. #define DIPF_IS_SPRITES_BORDER      &H00008000  /* sprite can be displayed in the border */
  137. #define DIPF_IS_SCANDBL         &H00020000  /* scan doubled */
  138. #define DIPF_IS_SPRITES_CHNG_BASE   &H00040000
  139.                                             /* can change the sprite base colour */
  140. #define DIPF_IS_SPRITES_CHNG_PRI    &H00080000
  141.                                             /* can change the sprite priority
  142.                                             ** with respect to the playfield(s).
  143.                                             */
  144. #define DIPF_IS_DBUFFER     &H00100000  /* can support double buffering */
  145. #define DIPF_IS_PROGBEAM    &H00200000  /* is a programmed beam-sync mode */
  146. #define DIPF_IS_FOREIGN     &H80000000  /* this mode is not native to the Amiga */
  147.  
  148.  
  149. STRUCT DimensionInfo
  150.  
  151.     QueryHeader Header 
  152.     SHORTINT   MaxDepth          /* log2( max number of colors ) */
  153.     SHORTINT   MinRasterWidth        /* minimum width in pixels      */
  154.     SHORTINT   MinRasterHeight       /* minimum height in pixels     */
  155.     SHORTINT   MaxRasterWidth        /* maximum width in pixels      */
  156.     SHORTINT   MaxRasterHeight       /* maximum height in pixels     */
  157.     Rectangle Nominal   /* "standard" dimensions        */
  158.     Rectangle MaxOScan  /* fixed,  hardware dependent    */
  159.     Rectangle VideoOScan  /* fixed,  hardware dependent    */
  160.     Rectangle TxtOScan  /* editable via preferences     */
  161.     Rectangle StdOScan  /* editable via preferences     */
  162.     STRING pad SIZE 14  
  163.     STRING reserved SIZE 8  /* 2*SIZEOF(LONGINT) */          /* terminator */
  164. END STRUCT 
  165.  
  166. STRUCT MonitorInfo
  167.  
  168.     QueryHeader Header 
  169.     MonitorSpecPtr  Mspc    /* pointer to monitor specification  */
  170.     _Point   ViewPosition          /* editable via preferences      */
  171.     _Point   ViewResolution        /* standard monitor ticks-per-pixel  */
  172.     Rectangle ViewPositionRange   /* fixed,  hardware dependent */
  173.     SHORTINT   TotalRows         /* display height in scanlines       */
  174.     SHORTINT   TotalColorClocks      /* scanline width in 280 ns units    */
  175.     SHORTINT   MinRow        /* absolute minimum active scanline  */
  176.     SHORTINT    Compatibility         /* how this coexists with others     */
  177.     STRING pad SIZE 32  
  178.     _Point   MouseTicks 
  179.     _Point   DefaultViewPosition   /* original,  never changes */
  180.     LONGINT   PreferredModeID       /* for Preferences */
  181.     STRING reserved SIZE 8   /* 2*SIZEOF(LONGINT) */          /* terminator */
  182. END STRUCT 
  183.  
  184. /* monitor compatibility */
  185.  
  186. #define MCOMPAT_MIXED   0   /* can share display with other MCOMPAT_MIXED */
  187. #define MCOMPAT_SELF    1   /* can share only within same monitor */
  188. #define MCOMPAT_NOBODY -1   /* only one viewport at a time */
  189.  
  190. #define DISPLAYNAMELEN 32
  191.  
  192. STRUCT NameInfo
  193.  
  194.     QueryHeader Header 
  195.     STRING _Name SIZE DISPLAYNAMELEN  
  196.     STRING reserved SIZE 8  /* 2*SIZEOF(LONGINT)  */         /* terminator */
  197. END STRUCT 
  198.  
  199. /******************************************************************************/
  200.  
  201. /* The following VecInfo structure is PRIVATE,  for our use only
  202.  * Touch these,  and burn! (V39)
  203.  */
  204.  
  205. STRUCT VecInfo
  206.  
  207.     QueryHeader Header 
  208.     ADDRESS    Vec 
  209.     ADDRESS    _Data 
  210.     SHORTINT   _Type 
  211.     STRING pad SIZE 6  /*  3*SIZEOF(SHORTINT) */
  212.     STRING reserved SIZE 8  /*  2*SIZEOF(LONGINT)  */
  213. END STRUCT 
  214.  
  215. #endif  /* GRAPHICS_DISPLAYINFO_H */
  216.