DIRECTX.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*==========================================================================
  2.  *
  3.  *  Copyright (C) 1995-1997 Microsoft Corporation. All Rights Reserved.
  4.  *
  5.  *  File: directx.h
  6.  *
  7.  ***************************************************************************/
  8. #ifndef __DIRECTX_H_
  9. #define __DIRECTX_H_
  10. // Includes....
  11. #include "d3drmwin.h"
  12. #include "dsound.h"     
  13. #include "stdio.h"
  14. // Defines....
  15. #define NUM_SOUNDS      30
  16. #define INTRO           0
  17. #define PLAYER1_PUNCH1  1
  18. #define PLAYER1_PUNCH2  2
  19. #define PLAYER2_PUNCH1  3
  20. #define PLAYER2_PUNCH2  4
  21. #define PLAYER1_WALK    5
  22. #define PLAYER2_WALK    6
  23. #define WHOOSH1         7
  24. #define WHOOSH2         8
  25. #define PLAYER1_OUCH    9
  26. #define PLAYER2_OUCH    10
  27. #define HEAD_SPRING     11      
  28. #define BLOCK1          12
  29. #define BLOCK2          13
  30. #define BLOCK3          14
  31. #define VICTORY_BOO     15
  32. #define VICTORY_YEAH    16
  33. #define CROWD_LOOP      17
  34. #define SERVO_DOWN_1    18
  35. #define SERVO_DOWN_2    19
  36. #define SERVO_DOWN_3    20
  37. #define SERVO_UP_1      21
  38. #define SERVO_UP_2      22
  39. #define SERVO_UP_3      23
  40. #define RANDOM1 24
  41. #define RANDOM2 25
  42. #define RANDOM3 26
  43. #define RANDOM4  27
  44. #define RANDOM5 28
  45. #define RANDOM6 29
  46. #define NUM_VID_MODES   50
  47. // Macros
  48. // The following macros are used for proper error handling for DirectDraw,
  49. // DirectSound, Direct3D and Direct3D retained mode
  50. #define TRY_DD(exp) { { HRESULT rval = exp; if (rval != DD_OK) { TraceErrorDD(rval, __FILE__, __LINE__); return FALSE; } } }
  51. #define TRY_DS(exp) { { HRESULT rval = exp; if (rval != DS_OK) { TraceErrorDS(rval, __FILE__, __LINE__); return FALSE; } } }
  52. #define TRY_D3D(exp) { { HRESULT rval = exp; if (rval != D3D_OK) { TraceErrorD3D(rval, __FILE__, __LINE__); return FALSE; } } }
  53. #define TRY_D3DRM(exp) { { HRESULT rval = exp; if (rval != D3DRM_OK) { TraceErrorD3DRM(rval, __FILE__, __LINE__); return FALSE; } } }
  54. // Structures....
  55. typedef struct _D3DDeviceInfo
  56. {
  57.     D3DCOLORMODEL cm;
  58.     LPGUID        lpHWGuid;
  59.     D3DDEVICEDESC HWDeviceDesc;
  60.     LPGUID        lpSWGuid;
  61.     D3DDEVICEDESC SWDeviceDesc;
  62. } D3DDeviceInfo;
  63. #pragma pack(1)
  64. struct WaveHeader
  65. {
  66.     BYTE        RIFF[4];          // "RIFF"
  67.     DWORD       dwSize;           // Size of data to follow
  68.     BYTE        WAVE[4];          // "WAVE"
  69.     BYTE        fmt_[4];          // "fmt "
  70.     DWORD       dw16;             // 16
  71.     WORD        wOne_0;           // 1
  72.     WORD        wChnls;           // Number of Channels
  73.     DWORD       dwSRate;          // Sample Rate
  74.     DWORD       BytesPerSec;      // Sample Rate
  75.     WORD        wBlkAlign;        // 1
  76.     WORD        BitsPerSample;    // Sample size
  77.     BYTE        DATA[4];          // "DATA"
  78.     DWORD       dwDSize;          // Number of Samples
  79. };
  80. #pragma pack()
  81. struct VideoMode
  82. {
  83.     int         width;
  84.     int         height;
  85.     int         bpp;
  86.     BOOL        bUsable;
  87. };
  88. // Prototypes....
  89. // Error handling
  90. void TraceErrorDD(HRESULT hErr, char *sFile, int nLine);
  91. void TraceErrorDS(HRESULT hErr, char *sFile, int nLine);
  92. void TraceErrorD3D(HRESULT hErr, char *sFile, int nLine);
  93. void TraceErrorD3DRM(HRESULT hErr, char *sFile, int nLine);
  94. // Callbacks
  95. BOOL FAR PASCAL  DDEnumCallback(GUID FAR* lpGUID, LPSTR lpDriverDesc, LPSTR lpDriverName, LPVOID lpContext);
  96. HRESULT CALLBACK DDEnumDisplayModesCallback(LPDDSURFACEDESC pddsd, LPVOID Context);
  97. HRESULT WINAPI   D3DEnumDeviceCallBack(LPGUID lpGuid, LPSTR lpDeviceDescription, LPSTR lpDeviceName, 
  98.                                                                            LPD3DDEVICEDESC lpHWDesc,  LPD3DDEVICEDESC lpHELDesc, LPVOID lpContext);
  99. // Initialisation
  100. BOOL InitD3DDevice();
  101. BOOL InitDirectX();
  102. BOOL SetDirectDrawExclusiveMode();
  103. // Termination
  104. void TermDirectX();
  105. void SortDisplayModes();
  106. BOOL EnterVideoMode(int mode);
  107. BOOL EnterVideoModeWHBD(int width, int height, int bitdepth);
  108. BOOL EnterNextVideoMode();
  109. BOOL EnterPrevVideoMode();
  110. BOOL EnterLowestVideoMode();
  111. BOOL EnterHighestVideoMode();
  112. BOOL ReenterCurrentVideoMode();
  113. void CleanUp();
  114. BOOL DoSplashScreen(DWORD delay);
  115. void ReleaseSplashScreen();
  116. BOOL RestoreSurfaces();
  117. BOOL CreateSoundBuffer(DWORD dwBuf, DWORD dwBufSize, DWORD dwFreq, DWORD dwBitsPerSample, DWORD dwBlkAlign, BOOL bStereo, BOOL bStaticBuf);
  118. BOOL ReadData(LPDIRECTSOUNDBUFFER lpDSB, FILE* pFile, DWORD dwSize, DWORD dwPos);
  119. BOOL CreateBufferFromWaveFile(char* FileName, DWORD dwBuf);
  120. BOOL StopAllSounds();
  121. BOOL PlaySoundDS(DWORD dwSound, D3DVECTOR d3dvPos, DWORD dwFlags = 0);
  122. IDirectSoundBuffer *CreateSoundBuffer3D(void);
  123. VOID CALLBACK PlayRandomWave( HWND hwnd, UINT uMsg,UINT idEvent, DWORD dwTime );
  124. void RecalcPowerBars(DWORD player1health, DWORD player2health);
  125. #endif