VIDEO.H 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*
  2. ** Command & Conquer Red Alert(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #ifndef VQMVIDEO_H
  19. #define VQMVIDEO_H
  20. /****************************************************************************
  21. *
  22. * C O N F I D E N T I A L -- W E S T W O O D S T U D I O S
  23. *
  24. *----------------------------------------------------------------------------
  25. *
  26. * FILE
  27. * Video.h (32-Bit protected mode)
  28. *
  29. * DESCRIPTION
  30. * Video manager definitions.
  31. *
  32. * PROGRAMMER
  33. * Denzil E. Long, Jr.
  34. *
  35. * DATE
  36. * Febuary 3, 1995
  37. *
  38. ****************************************************************************/
  39. #include <vqm32\vesavid.h>
  40. /*---------------------------------------------------------------------------
  41. * VGA video modes
  42. *-------------------------------------------------------------------------*/
  43. #define TEXT 0x02
  44. #define MCGA 0x13
  45. #define XMODE_320X200 0x50
  46. #define XMODE_320X240 0x51
  47. #define XMODE_320X400 0x52
  48. #define XMODE_320X480 0x53
  49. #define XMODE_360X400 0x54
  50. #define XMODE_360X480 0x55
  51. #define XMODE_MIN 0x50
  52. #define XMODE_MAX 0x55
  53. /*---------------------------------------------------------------------------
  54. * Structure definitions
  55. *-------------------------------------------------------------------------*/
  56. /* DisplayInfo - Information about the current display.
  57. *
  58. * Mode - Mode identification.
  59. * XRes - X resolution of mode.
  60. * YRes - Y resolution of mode.
  61. * VBIbit - Polarity of vertical blank bit.
  62. * Extended - Pointer to mode specific data structure.
  63. */
  64. typedef struct _DisplayInfo {
  65. long Mode;
  66. long XRes;
  67. long YRes;
  68. long VBIbit;
  69. void *Extended;
  70. } DisplayInfo;
  71. /*---------------------------------------------------------------------------
  72. * Function prototypes
  73. *-------------------------------------------------------------------------*/
  74. DisplayInfo *SetVideoMode(long mode);
  75. DisplayInfo *GetDisplayInfo(void);
  76. long TestVBIBit(void);
  77. long GetVBIBit(void);
  78. void SetupXPaging(void);
  79. void FlipXPage(void);
  80. unsigned char *GetXHidPage(void);
  81. unsigned char *GetXSeenPage(void);
  82. void DisplayXPage(long page);
  83. #ifdef __cplusplus
  84. extern "C" {
  85. #endif
  86. void cdecl WaitNoVB(short vbibit);
  87. void cdecl WaitVB(short vbibit);
  88. void cdecl ClearVRAM(void);
  89. long cdecl SetXMode(long mode);
  90. void cdecl ClearXMode(void);
  91. void cdecl ShowXPage(unsigned long StartOffset);
  92. void cdecl Xmode_BufferCopy_320x200(void *buff, void *screen);
  93. void cdecl Xmode_Blit(void *buffer, void *screen, long imgwidth, long imgheight);
  94. void cdecl MCGA_BufferCopy(unsigned char *buffer, unsigned char *dummy);
  95. void cdecl MCGA_Blit(unsigned char *buffer, unsigned char *screen,
  96. long imgwidth, long imgheight);
  97. #ifdef __cplusplus
  98. }
  99. #endif
  100. #endif /* VQMVIDEO_H */