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 / misc / rmfull.h < prev    next >
C/C++ Source or Header  |  1997-07-14  |  3KB  |  88 lines

  1. /*
  2.  *  Copyright (C) 1995, 1996 Microsoft Corporation. All Rights Reserved.
  3.  *
  4.  *  File: rmfull.h
  5.  *
  6.  */
  7. #ifndef __RMFULL_H__
  8. #define __RMFULL_H__
  9.  
  10. #include <windows.h>
  11. #include <windowsx.h>
  12. #include <stdio.h>
  13. #include <string.h>
  14. #include <time.h>
  15. #include <search.h>
  16. #include <ddraw.h>
  17. #include <d3d.h>
  18. #include <direct.h>
  19. #include <d3drmwin.h>
  20. #include "d3dapp.h"        /* prototypes for D3D helper functions */
  21. #include "rmdemo.h"        /* prototypes for functions to commumicate
  22.                    with each sample */
  23. #include "rmfullrc.h"        /* defines constants used in rmfull.rc */
  24. #define START_WIN_SIZE 320  /* initial size of the window */
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. typedef struct tagrmfullglobals {
  31.     HWND hWndMain;        /* application window handle */
  32.     HINSTANCE hInstApp;        /* application instance for dialog boxes */
  33.     LPSTR lpCmdLine;        /* command line parameters */
  34.  
  35.     LPDIRECT3DRMDEVICE dev;    /* Direct3DRM device */
  36.     LPDIRECT3DRMVIEWPORT view;    /* Direct3DRM viewport through which we view
  37.                    the scene */
  38.     LPDIRECT3DRMFRAME scene;    /* Master frame in which others are placed */
  39.     LPDIRECT3DRMFRAME camera;    /* Frame describing the users POV */
  40.  
  41.     BOOL bSingleStepMode;     /* render one frame at a time */
  42.     BOOL bDrawAFrame;         /* render on this pass of the main loop */
  43.     BOOL bShowFrameRate;     /* show the frame rate at the top */
  44.     BOOL bShowInfo;         /* show window information at the bottom */
  45.  
  46.     BOOL bResized; /* the window has resized or some other drastic change, the
  47.                       entire client area should be cleared */
  48.     BOOL bQuit;       /* program is about to terminate */
  49.  
  50.     BOOL bNoTextures;        /* this sample doesn't use any textures */
  51.     BOOL bConstRenderQuality;    /* this sample is not constructed with
  52.                    MeshBuilders and so the RenderQuality
  53.                    cannot be changed */
  54.     D3DRMRENDERQUALITY RenderQuality;    /* current shade mode, fill mode and
  55.                        lighting state */
  56.     D3DRMTEXTUREQUALITY TextureQuality; /* current texture interpolation */
  57.     BOOL bDithering;            /* is dithering on? */
  58.     BOOL bAntialiasing;            /* is antialiasing on? */
  59.  
  60.     int mouse_buttons;        /* mouse button state */
  61.     int mouse_x;        /* mouse cursor x position */
  62.     int mouse_y;        /* mouse cursor y position */
  63.  
  64.     int            CurrDDDriver;           /* Current DirectDraw driver */
  65.     int            NumDDDrivers;           /* Number of DirectDraw drivers */
  66.     D3DAppDDDriver  DDDriver[D3DAPP_MAXDDDRIVERS]; /* DirectDraw drivers information */
  67.  
  68.     LPDIRECTDRAWSURFACE lpFrameRateBuffer; /* frame rate surface */
  69.     LPDIRECTDRAWSURFACE lpInfoBuffer;       /* window info surface */
  70. } rmfullglobals;
  71.  
  72. void __cdecl Msg( LPSTR fmt, ... );
  73. /*
  74.  * STATS.CPP FUNCTION PROTOTYPES
  75.  */
  76. BOOL InitFontAndTextBuffers(void);
  77. BOOL WriteInfoBuffer(void);
  78. BOOL WriteFrameRateBuffer(float fps, long tps);
  79. void ResetFrameRate(void);
  80. BOOL CalculateFrameRate();
  81. BOOL DisplayFrameRate(int* count, LPD3DRECT lpExtents );
  82.  
  83. #ifdef __cplusplus
  84. };
  85. #endif
  86.  
  87. #endif // __RMFULL_H__
  88.