85 lines
2.2 KiB
C++
85 lines
2.2 KiB
C++
//-----------------------------------------------------------------------------
|
|
// File: Pipes.h
|
|
//
|
|
// Desc:
|
|
//
|
|
// Copyright (c) 2000 Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
#ifndef _PIPES_H
|
|
#define _PIPES_H
|
|
|
|
|
|
#define MAX_DEVICE_OBJECTS 10
|
|
|
|
struct DeviceObjects
|
|
{
|
|
STATE* m_pState;
|
|
};
|
|
|
|
struct CONFIG
|
|
{
|
|
BOOL bMultiPipes;
|
|
DWORD nJointType;
|
|
BOOL bTextured;
|
|
BOOL bDefaultTexture;
|
|
TCHAR strTextureName[MAX_PATH][MAX_TEXTURES];
|
|
DWORD dwSpeed;
|
|
BOOL bFlexMode;
|
|
DWORD dwTesselFact;
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Name:
|
|
// Desc:
|
|
//-----------------------------------------------------------------------------
|
|
class CPipesScreensaver : public CD3DScreensaver
|
|
{
|
|
protected:
|
|
DeviceObjects m_DeviceObjects[MAX_DEVICE_OBJECTS];
|
|
DeviceObjects* m_pDeviceObjects;
|
|
int m_iRenderUnit;
|
|
|
|
D3DXCOLOR m_col3;
|
|
|
|
protected:
|
|
virtual HRESULT RegisterSoftwareDevice();
|
|
virtual VOID DoConfig();
|
|
virtual VOID ReadSettings();
|
|
VOID WriteSettings();
|
|
virtual VOID DoPaint( HWND hwnd, HDC hdc );
|
|
|
|
virtual VOID SetDevice( UINT iDevice );
|
|
virtual HRESULT Render();
|
|
virtual HRESULT FrameMove();
|
|
virtual HRESULT RestoreDeviceObjects();
|
|
virtual HRESULT InvalidateDeviceObjects();
|
|
|
|
VOID Randomize( INT* piNum, INT iMax );
|
|
|
|
|
|
public:
|
|
CPipesScreensaver();
|
|
|
|
CONFIG m_Config;
|
|
D3DSURFACE_DESC* GetSurfaceDesc() { return &m_d3dsdBackBuffer; };
|
|
BOOL SelectTextureFile( HWND hDlg, TCHAR* origPathName );
|
|
|
|
VOID ss_ReadSettings();
|
|
BOOL ss_RegistrySetup( int section, int file );
|
|
int ss_GetRegistryInt( int name, int iDefault );
|
|
VOID ss_GetRegistryString( int name, LPTSTR lpDefault, LPTSTR lpDest, int bufSize );
|
|
|
|
// Override from CD3DScreensaver
|
|
INT_PTR CALLBACK ConfigureDialogProc( HWND hwndDlg, UINT uMsg,
|
|
WPARAM wParam, LPARAM lParam );
|
|
|
|
static int iRand( int max );
|
|
static int iRand2( int min, int max );
|
|
static FLOAT fRand( FLOAT min, FLOAT max );
|
|
static VOID RandInit();
|
|
};
|
|
|
|
#endif
|