home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / directx / tri3 / d3dappi.h < prev    next >
C/C++ Source or Header  |  1997-07-14  |  5KB  |  147 lines

  1. /*
  2.  *  Copyright (C) 1995, 1996 Microsoft Corporation. All Rights Reserved.
  3.  *
  4.  *  File: d3dappi.h
  5.  *
  6.  *  Internal header.  Part of D3DApp.
  7.  *
  8.  *  D3DApp is a collection of helper functions for Direct3D applications.
  9.  *  D3DApp consists of the following files:
  10.  *    d3dapp.h    Main D3DApp header to be included by application
  11.  *      d3dappi.h   Internal header
  12.  *      d3dapp.c    D3DApp functions seen by application.
  13.  *      ddcalls.c   All calls to DirectDraw objects except textures
  14.  *      d3dcalls.c  All calls to Direct3D objects except textures
  15.  *      texture.c   Texture loading and managing texture list
  16.  *      misc.c        Miscellaneous calls
  17.  */
  18.  
  19. #ifndef __D3DAPPI_H__
  20. #define __D3DAPPI_H__
  21.  
  22. /*
  23.  * INCLUDED HEADERS
  24.  */
  25. #include <windows.h>
  26. #include <windowsx.h>
  27. #include <stdio.h>
  28. #include <stdlib.h>
  29. #include <string.h>
  30. #include <time.h>
  31. #include <search.h>
  32. #include <ddraw.h>
  33. #include <d3d.h>
  34. #include "d3dapp.h"
  35. #include "d3dmacs.h"
  36. #include "lclib.h"  /* lclib is a override for standard string lib */
  37.  
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41.  
  42. /*
  43.  * MACROS
  44.  */
  45. #undef ATTEMPT
  46. #define ATTEMPT(x) if (!(x)) goto exit_with_error
  47. #undef RELEASE
  48. #define RELEASE(x) if (x) { x->lpVtbl->Release(x); x = NULL; }
  49. #undef MAX
  50. #define MAX(x, y) ((x) > (y)) ? (x) : (y)
  51. #undef MIN
  52. #define MIN(x, y) ((x) > (y)) ? (y) : (x)
  53. #undef ZEROMEM
  54. #define ZEROMEM(x) memset(&x, 0, sizeof(x))
  55.  
  56. /*
  57.  * GLOBAL VARIABLES
  58.  *    see d3dapp.c for descriptions
  59.  */
  60. extern D3DAppInfo d3dappi;
  61. extern D3DAppRenderState d3dapprs;
  62. extern BOOL bD3DAppInitialized;
  63. extern HRESULT LastError;
  64. extern LPDIRECTDRAWCLIPPER lpClipper;
  65. extern LPDIRECTDRAWPALETTE lpPalette;
  66. extern BOOL(*D3DDeviceDestroyCallback)(LPVOID);
  67. extern LPVOID D3DDeviceDestroyCallbackContext;
  68. extern BOOL(*D3DDeviceCreateCallback)(int, int, LPDIRECT3DVIEWPORT2*, LPVOID);
  69. extern LPVOID D3DDeviceCreateCallbackContext;
  70. extern BOOL bPrimaryPalettized;
  71. extern BOOL bPaletteActivate;
  72. extern BOOL bIgnoreWM_SIZE;
  73. extern PALETTEENTRY ppe[256];
  74. extern PALETTEENTRY Originalppe[256];
  75. extern char LastErrorString[256];
  76. extern SIZE szLastClient;
  77. extern SIZE szBuffers;
  78. extern int NumDirtyClientRects, NumDirtyBackRects, NumDirtyZRects;
  79. extern D3DRECT DirtyClient[D3DAPP_MAXCLEARRECTS];
  80. extern D3DRECT DirtyBack[D3DAPP_MAXCLEARRECTS];
  81. extern D3DRECT DirtyZ[D3DAPP_MAXCLEARRECTS];
  82. extern D3DTEXTUREHANDLE MasterTextureHandle[D3DAPP_MAXTEXTURES];
  83. extern int CallbackRefCount;
  84.  
  85. #ifdef __cplusplus
  86. };
  87. #endif
  88.  
  89. /*
  90.  * INTERNAL FUNCTION PROTOTYPES
  91.  */
  92. BOOL D3DAppISetRenderState(void);
  93. BOOL D3DAppIEnumDevices(void);
  94. BOOL D3DAppIPickDriver(int* driver, DWORD depths);
  95. BOOL D3DAppICreateD3D(void);
  96. BOOL D3DAppIEnumTextureFormats(void);
  97. BOOL D3DAppICreateZBuffer(int w, int h, int driver);
  98. BOOL D3DAppICreateDevice(int driver);
  99. BOOL D3DAppILoadTextureSurf(int n, BOOL* bInVideo);
  100. BOOL D3DAppIGetTextureHandle(int n);
  101. BOOL D3DAppILoadAllTextures(void);
  102. void D3DAppIReleaseTexture(int n);
  103. void D3DAppIReleaseAllTextures(void);
  104. BOOL D3DAppIReloadTextureSurf(int n);
  105. BOOL D3DAppISetCoopLevel(HWND hwnd, BOOL bFullscreen);
  106. BOOL D3DAppISetDisplayMode(int w, int h, int bpp);
  107. BOOL D3DAppICheckForPalettized(void);
  108. BOOL D3DAppIRestoreDispMode(void);
  109. BOOL D3DAppIVerifyDriverAndMode(int* lpdriver, int* lpmode);
  110. BOOL D3DAppIFilterDrivers(int mode);
  111. DWORD D3DAppTotalVideoMemory(void);
  112. BOOL D3DAppIEnumDisplayModes(void);
  113. BOOL D3DAppIPickDisplayMode(int* mode, DWORD depths);
  114. BOOL D3DAppISetDispMode(int w, int h, int bpp);
  115. BOOL D3DAppICreateDD(DWORD flags);
  116. BOOL D3DAppIFilterDisplayModes(int driver);
  117. HRESULT D3DAppICreateSurface(LPDDSURFACEDESC lpDDSurfDesc,
  118.                 LPDIRECTDRAWSURFACE FAR *lpDDSurface);
  119. HRESULT D3DAppIGetSurfDesc(LPDDSURFACEDESC lpDDSurfDesc,
  120.                LPDIRECTDRAWSURFACE lpDDSurf);
  121. BOOL D3DAppICreateBuffers(HWND hwnd, int w, int h, int bpp, BOOL bFullscreen, BOOL bIsHardware);
  122. BOOL D3DAppIRememberWindowsMode(void);
  123. BOOL D3DAppIClearBuffers(void);
  124. DWORD D3DAppIBPPToDDBD(int bpp);
  125. void D3DAppIReleasePathList(void);
  126. LPDIRECTDRAWSURFACE D3DAppILoadSurface(LPDIRECTDRAW lpDD, LPCSTR lpName,
  127.                        LPDDSURFACEDESC lpFormat,
  128.                        DWORD memoryflag);
  129. void D3DAppISetClientSize(HWND hwnd, int w,int h,BOOL bReturnFromFullscreen);
  130. void D3DAppIGetClientWin(HWND hwnd);
  131. void D3DAppISetDefaults(void);
  132. BOOL D3DAppICallDeviceDestroyCallback(void);
  133. BOOL D3DAppICallDeviceCreateCallback(int w, int h);
  134. void D3DAppIMergeRectLists(int* dstnum, LPD3DRECT dst, int src1num,
  135.                LPD3DRECT src1, int src2num, LPD3DRECT src2);
  136. void D3DAppICopyRectList(int* dstnum, LPD3DRECT dst, int srcnum,
  137.              LPD3DRECT src);
  138. void D3DAppIValidateDirtyRects(void);
  139. BOOL D3DAppIHandleWM_SIZE(LRESULT* lresult, HWND hwnd, UINT message,
  140.               WPARAM wParam, LPARAM lParam);
  141. void D3DAppISetErrorString( LPSTR fmt, ... );
  142.  
  143. void __cdecl dpf( LPSTR fmt, ... );
  144.  
  145.  
  146. #endif // __D3DAPPI_H__
  147.