D3DMAIN.H

/* 
* Copyright (C) 1995, 1996 Microsoft Corporation. All Rights Reserved.
*
* File: d3dmain.h
*
*/
#ifndef __D3DMAIN_H__
#define __D3DMAIN_H__

#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <search.h>
#include <ddraw.h>
#include <d3d.h>
#include "d3dapp.h" /* prototypes for D3D helper functions */
#include "d3dres.h" /* defines constants used in d3dmain.rc */
#include "d3ddemo.h" /* prototypes for functions to communicate with
each sample */
#define START_WIN_SIZE 320 /* initial size of the window */

#ifdef __cplusplus
extern "C" {
#endif

typedef struct tagd3dmainglobals {
HWND hWndMain; /* application window handle */
HINSTANCE hInstApp; /* application instance for dialog boxes */

D3DAppRenderState rstate; /* struct describing the current render state */

BOOL bSingleStepMode; /* render one frame at a time */
BOOL bDrawAFrame; /* render on this pass of the main loop */
BOOL bClearsOn; /* clear the back and z-buffer each frame */
BOOL bShowFrameRate; /* show the frame rate at the top */
BOOL bShowInfo; /* show window information at the bottom */
BOOL bResizingDisabled; /* do not allow resizing */

BOOL bResized; /* the window has resized or some other drastic change, the
entire client area should be cleared */
BOOL bQuit; /* program is about to terminate */

LPDIRECTDRAWSURFACE lpFrameRateBuffer; /* frame rate surface */
LPDIRECTDRAWSURFACE lpInfoBuffer; /* window info surface */
} d3dmainglobals;

void __cdecl Msg( LPSTR fmt, ... );
/*
* STATS.CPP FUNCTION PROTOTYPES
*/
BOOL InitFontAndTextBuffers(void);
void ReleaseFontAndTextBuffers(void);
BOOL WriteInfoBuffer(void);
BOOL WriteFrameRateBuffer(float fps, long tps);
void ResetFrameRate(void);
BOOL CalculateFrameRate(void);
BOOL DisplayFrameRate(int* count, LPD3DRECT lpExtents );

#ifdef __cplusplus
};
#endif

#endif // __D3DMAIN_H__