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 / d3ddemo.h < prev    next >
C/C++ Source or Header  |  1997-07-14  |  2KB  |  90 lines

  1. /*==========================================================================
  2.  *
  3.  *  Copyright (C) 1995, 1996 Microsoft Corporation. All Rights Reserved.
  4.  *
  5.  *  File: d3ddemo.h
  6.  *
  7.  ***************************************************************************/
  8. #ifndef __D3DDEMO_H__
  9. #define __D3DDEMO_H__
  10.  
  11. #include <ddraw.h>
  12. #include <d3d.h>
  13. #include "d3dapp.h"
  14. #include "d3dmath.h"
  15. #include "d3dsphr.h"
  16. #include "d3dmacs.h"
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.     /*
  22.      * SetMouseCallback
  23.      * Called in an example to set a callback function for all WM messages
  24.      * dealing with the mouse.  The handler should return whether or not
  25.      * it handled the message.
  26.      */
  27.     BOOL SetMouseCallback(BOOL(*)(UINT, WPARAM, LPARAM));
  28.     /*
  29.      * SetKeyDownCallback
  30.      * Called in an example to set a callback function for keyboard
  31.      * messages. The handler should return whether or not it handled the
  32.      * message.
  33.      */
  34.     BOOL SetKeyboardCallback(BOOL(*)(UINT, WPARAM, LPARAM));
  35.  
  36. /*
  37.  * These functions are found in the source for each example.
  38.  */
  39.     /*
  40.      * RenderScene
  41.      * Clears the viewport and viewport Z-buffer and render the scene.
  42.      * The extent of rendering is returned in the rectangle.
  43.      */
  44.     BOOL RenderScene(LPDIRECT3DDEVICE2 lpDev, LPDIRECT3DVIEWPORT2 lpView,
  45.              LPD3DRECT lpExtent);
  46.     /*
  47.      * InitScene
  48.      * Builds the model which will be rendered.
  49.      */
  50.     BOOL InitScene(void);
  51.  
  52.     /*
  53.      * InitView
  54.      * Builds execute buffer and all components needed to be added to viewport.
  55.      */
  56.     BOOL InitView(LPDIRECTDRAW lpDD,
  57.           LPDIRECT3D2 lpD3D,
  58.           LPDIRECT3DDEVICE2 lpDev,
  59.           LPDIRECT3DVIEWPORT2 lpView,
  60.           int NumTextures,
  61.           LPD3DTEXTUREHANDLE TextureHandle);
  62.     /*
  63.      * Release all objects and free all memory allocated in InitScene
  64.      */
  65.     void ReleaseScene(void);
  66.  
  67.     /*
  68.      * Release all objects and free all memory allocated in InitView
  69.      */
  70.     void ReleaseView(LPDIRECT3DVIEWPORT2 lpView);
  71.  
  72.     typedef struct Defaultstag {
  73.     D3DAppRenderState rs;
  74.     BOOL bTexturesDisabled;
  75.     BOOL bResizingDisabled;
  76.     BOOL bClearsOn;
  77.     char Name[30];
  78.     } Defaults;
  79.  
  80.     /*
  81.      * Allows each example to begin with different defaults
  82.      */
  83.     void OverrideDefaults(Defaults* defaults);
  84.  
  85. #ifdef __cplusplus
  86. };
  87. #endif
  88.  
  89. #endif // __D3DDEMO_H__
  90.