Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
95 lines
3.1 KiB
C++
95 lines
3.1 KiB
C++
//------------------------------------------------------------------------------
|
|
// File: Demonstration.h
|
|
//
|
|
// Desc: DirectShow sample code
|
|
// Header file and class description for CDemonstration,
|
|
// "special effects" module to represent capabilities of VMR.
|
|
// This class is called from CVMRMixDlg by the "Play" button.
|
|
// CDemonstration contains CVMRCore member (VMR engine), through which
|
|
// it performs initialization of the graph builder and presentation.
|
|
//
|
|
// Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------------------------
|
|
|
|
#ifndef HDR_DEMONSTRATION
|
|
#define HDR_DEMONSTRATION
|
|
|
|
#include "stdafx.h"
|
|
|
|
class CVMRMixDlg;
|
|
|
|
class CDemonstration
|
|
{
|
|
private:
|
|
CVMRMixDlg * m_pDlg; // 'parent' dialog
|
|
char m_szMsg[MAX_PATH]; // auxiliary string for debug messages
|
|
bool m_bInitialized; // true if graph is build and files are rendered;
|
|
// false otherwise
|
|
CMediaList m_MList; // media list to be played
|
|
CVMRCore * m_pCore; // 'main' class that implements VMR management
|
|
VMRALPHABITMAP m_sBmpParams; // used in IVMRMixerBitmap; parameters
|
|
// of the bitmap overlapping the video
|
|
HBITMAP m_hbmp; // handle to the bitmap overlapping the video
|
|
|
|
HRESULT SetAlphaBitmapColorKey(UINT ImageID); // set color key for overlapping bitmap
|
|
HRESULT GetValidVMRBitmap(UINT ImageID); // create bitmap compatible with renderer's settings
|
|
|
|
public:
|
|
CDemonstration( CVMRMixDlg * pDlg, // 'parent' dialog
|
|
CMediaList * pMajorList,// media list to play
|
|
int nSize, // size of pMajorList
|
|
HRESULT *phr) :
|
|
m_pDlg(pDlg),
|
|
m_hbmp(NULL),
|
|
m_pCore(NULL),
|
|
m_bInitialized(false)
|
|
{
|
|
ASSERT(phr);
|
|
ASSERT( nSize > 0);
|
|
|
|
strcpy( m_szMsg, "");
|
|
|
|
*phr = S_OK;
|
|
|
|
ZeroMemory( &m_sBmpParams, sizeof(VMRALPHABITMAP));
|
|
srand( clock());
|
|
|
|
pMajorList->Shuffle();
|
|
if( false == pMajorList->Clone(nSize, &m_MList))
|
|
{
|
|
*phr = E_INVALIDARG;
|
|
return;
|
|
}
|
|
};
|
|
virtual ~CDemonstration()
|
|
{
|
|
if( m_pCore )
|
|
{
|
|
delete m_pCore;
|
|
}
|
|
if( m_hbmp)
|
|
{
|
|
DeleteObject( m_hbmp );
|
|
}
|
|
if( m_sBmpParams.hdc )
|
|
{
|
|
DeleteDC( m_sBmpParams.hdc );
|
|
}
|
|
m_MList.Clean();
|
|
};
|
|
|
|
HRESULT Initialize();
|
|
HRESULT UpdateStreams(clock_t tStart);
|
|
virtual HRESULT Perform();
|
|
|
|
// this function calculates parameters for the 'swirling windows' effect
|
|
void FountainPath( long t,
|
|
long T,
|
|
int n,
|
|
NORMALIZEDRECT r0,
|
|
double A0,
|
|
NORMALIZEDRECT * pR,
|
|
double * pA);
|
|
};
|
|
|
|
#endif |