// -------------------------------------------------------------------------- // ========================================================================== // File: TD3DXPass_Desc.CPP // Authors: BCB_Code_Generator v2.00, // Darren Dwyer (source code, documentation, demos, website), // Hugh Edwards (documentation, icons) // Description: This file contains the code for the TD3DXPass_Desc Component // // "TDx9_3DXEffect_Library v1.00" // (c) 2005 BCB-Tools.com Pty. Ltd., Sydney, Australia. // All Rights Reserved. // // Refer to the 'Licence.Txt' file for licencing & copyright information. // ========================================================================== // -------------------------------------------------------------------------- // #includes ... // -------------------------------------------------------------------------- #include #pragma hdrstop // -------------------------------------------------------------------------- #include "TD3DXPass_Desc.H" // -------------------------------------------------------------------------- #pragma link "TDx_Library_Defns" #pragma link "TDx_Library_Functions" #pragma link "TDx9_3DXEffect_Library_Defns" #pragma link "TDx9_3DXEffect_Library_Functions" // -------------------------------------------------------------------------- // Object Registration... // -------------------------------------------------------------------------- #if (__BORLANDC__ >= 0x0530) // BCB Version 3+ #pragma package(smart_init) #endif // -------------------------------------------------------------------------- static inline void ValidCtrCheck(TD3DXPass_Desc*) { new TD3DXPass_Desc(NULL); } // -------------------------------------------------------------------------- namespace Td3dxpass_desc { #if (__BORLANDC__ >= 0x0530) // BCB Version 3+ void __fastcall PACKAGE Register() #else void __fastcall Register() #endif { TComponentClass classes[1] = {__classid(TD3DXPass_Desc)}; RegisterComponents("", classes, 0); } } // -------------------------------------------------------------------------- // Constructor: TD3DXPass_Desc::TD3DXPass_Desc() // Description: The default constructor for the TD3DXPass_Desc object. // -------------------------------------------------------------------------- __fastcall TD3DXPass_Desc::TD3DXPass_Desc(TComponent* Owner) : TComponent(Owner) { Clear(); } // -------------------------------------------------------------------------- // Destructor: TD3DXPass_Desc::~TD3DXPass_Desc() // Description: The destructor for the TD3DXPass_Desc object. // -------------------------------------------------------------------------- __fastcall TD3DXPass_Desc::~TD3DXPass_Desc() { } // -------------------------------------------------------------------------- // Property: Annotations // Description: ... // -------------------------------------------------------------------------- uint __fastcall TD3DXPass_Desc::FGetAnnotations() { return fD3DXPASS_DESC.Annotations; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetAnnotations( uint pAnnotations ) { fD3DXPASS_DESC.Annotations = pAnnotations; } // -------------------------------------------------------------------------- // Property: ErrorValue // Description: The ErrorValue property contains the last error value // returned from a call to a TD3DXPass_Desc method or fget/fset. // eg. D3D_OK or DDERR_SURFACELOST or TDX_ERROR // -------------------------------------------------------------------------- HRESULT __fastcall TD3DXPass_Desc::FGetErrorValue() { return fErrorValue; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetErrorValue( HRESULT pErrorValue ) { fErrorValue = pErrorValue; } // -------------------------------------------------------------------------- // Property: Name // Description: ... // -------------------------------------------------------------------------- AnsiString __fastcall TD3DXPass_Desc::FGetName() { if ((LPCSTR)fName.c_str()!=fD3DXPASS_DESC.Name) fName = fD3DXPASS_DESC.Name; return fName; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetName( AnsiString pName ) { fName = pName; fD3DXPASS_DESC.Name = (LPCSTR) fName.c_str(); } // -------------------------------------------------------------------------- // Property: PSSampers // Description: ... // -------------------------------------------------------------------------- AnsiString __fastcall TD3DXPass_Desc::FGetPSSampers() { if ((LPCSTR)fPSSampers.c_str()!=fD3DXPASS_DESC.PSSampers) fPSSampers = fD3DXPASS_DESC.PSSampers; return fPSSampers; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetPSSampers( AnsiString pPSSampers ) { fPSSampers = pPSSampers; fD3DXPASS_DESC.PSSampers = (LPCSTR) fPSSampers.c_str(); } // -------------------------------------------------------------------------- // Property: PSSamplersUsed // Description: ... // -------------------------------------------------------------------------- uint __fastcall TD3DXPass_Desc::FGetPSSamplersUsed() { return fD3DXPASS_DESC.PSSamplersUsed; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetPSSamplersUsed( uint pPSSamplersUsed ) { fD3DXPASS_DESC.PSSamplersUsed = pPSSamplersUsed; } // -------------------------------------------------------------------------- // Property: PSSemanticUsed // Description: ... // -------------------------------------------------------------------------- uint __fastcall TD3DXPass_Desc::FGetPSSemanticUsed() { return fD3DXPASS_DESC.PSSemanticUsed; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetPSSemanticUsed( uint pPSSemanticUsed ) { fD3DXPASS_DESC.PSSemanticUsed = pPSSemanticUsed; } // -------------------------------------------------------------------------- // Property: PSSemantics // Description: ... // -------------------------------------------------------------------------- TD3DXSemantic* __fastcall TD3DXPass_Desc::FGetPSSemantics( dword pIndex ) { if (ComponentState.Contains(csDesigning) && (fPSSemantics!=NULL) && (Owner!=NULL)) { bool component_exists = false; for (int i=0;iComponentCount;i++) if (Owner->Components[i]==fPSSemantics) { component_exists = true; break; } if (!component_exists) fPSSemantics=NULL; } return fPSSemantics; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetPSSemantics( dword pIndex, TD3DXSemantic* pPSSemantics ) { fPSSemantics = pPSSemantics; } // -------------------------------------------------------------------------- // Property: PSVersion // Description: ... // -------------------------------------------------------------------------- dword __fastcall TD3DXPass_Desc::FGetPSVersion() { return fD3DXPASS_DESC.PSVersion; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetPSVersion( dword pPSVersion ) { fD3DXPASS_DESC.PSVersion = pPSVersion; } // -------------------------------------------------------------------------- // Property: Size // Description: The Size property contains the size in bytes of the internal // _D3DXPASS_DESC structure. // -------------------------------------------------------------------------- dword __fastcall TD3DXPass_Desc::FGetSize() { return fSize; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetSize( dword pSize ) { fSize = pSize; } // -------------------------------------------------------------------------- // Property: VSSemanticUsed // Description: ... // -------------------------------------------------------------------------- uint __fastcall TD3DXPass_Desc::FGetVSSemanticUsed() { return fD3DXPASS_DESC.VSSemanticUsed; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetVSSemanticUsed( uint pVSSemanticUsed ) { fD3DXPASS_DESC.VSSemanticUsed = pVSSemanticUsed; } // -------------------------------------------------------------------------- // Property: VSSemantics // Description: ... // -------------------------------------------------------------------------- TD3DXSemantic* __fastcall TD3DXPass_Desc::FGetVSSemantics( dword pIndex ) { if (ComponentState.Contains(csDesigning) && (fVSSemantics!=NULL) && (Owner!=NULL)) { bool component_exists = false; for (int i=0;iComponentCount;i++) if (Owner->Components[i]==fVSSemantics) { component_exists = true; break; } if (!component_exists) fVSSemantics=NULL; } return fVSSemantics; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetVSSemantics( dword pIndex, TD3DXSemantic* pVSSemantics ) { fVSSemantics = pVSSemantics; } // -------------------------------------------------------------------------- // Property: VSVersion // Description: ... // -------------------------------------------------------------------------- dword __fastcall TD3DXPass_Desc::FGetVSVersion() { return fD3DXPASS_DESC.VSVersion; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetVSVersion( dword pVSVersion ) { fD3DXPASS_DESC.VSVersion = pVSVersion; } // -------------------------------------------------------------------------- // Method: Clear() // Description: The Clear() method can be used to clear the contents of the // TD3DXPass_Desc's internal D3DXPASS_DESC structure. // Note: if you have manually linked a structure member to a // chunk of memory, make sure you release this memory before // calling Clear(). // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::Clear() { fD3DXPASS_DESC.Annotations = 0; fErrorValue = D3D_OK; fD3DXPASS_DESC.PSSamplersUsed = 0; fD3DXPASS_DESC.PSSemanticUsed = 0; fD3DXPASS_DESC.PSVersion = 0; fSize = sizeof(_D3DXPASS_DESC); fD3DXPASS_DESC.VSSemanticUsed = 0; fD3DXPASS_DESC.VSVersion = 0; } // -------------------------------------------------------------------------- // Internal Structure Access // -------------------------------------------------------------------------- D3DXPASS_DESC* __fastcall TD3DXPass_Desc::FGetInternal_D3DXPASS_DESC_Ptr() { if (fPSSemantics!=NULL) CopyMemory( &fD3DXPASS_DESC.PSSemantics, fPSSemantics->Internal_D3DXSEMANTIC_Ptr, sizeof(D3DXSEMANTIC) ); if (fVSSemantics!=NULL) CopyMemory( &fD3DXPASS_DESC.VSSemantics, fVSSemantics->Internal_D3DXSEMANTIC_Ptr, sizeof(D3DXSEMANTIC) ); return &fD3DXPASS_DESC; } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::FSetInternal_D3DXPASS_DESC( D3DXPASS_DESC* pD3DXPASS_DESC ) { if (pD3DXPASS_DESC==NULL) { fErrorValue = TDX_ERROR; if (FOnError) FOnError(this, "TD3DXPass_Desc::FSetInternal_D3DXPASS_DESC()", "TDX_ERROR", "The supplied D3DXPASS_DESC* was NULL" ); return; } CopyMemory( &fD3DXPASS_DESC, pD3DXPASS_DESC, sizeof(D3DXPASS_DESC) ); Internal_D3DXPASS_DESC_Update(); } // -------------------------------------------------------------------------- void __fastcall TD3DXPass_Desc::Internal_D3DXPASS_DESC_Update() { if (fPSSemantics!=NULL) CopyMemory( fPSSemantics->Internal_D3DXSEMANTIC_Ptr, &fD3DXPASS_DESC.PSSemantics, sizeof(D3DXSEMANTIC) ); if (fVSSemantics!=NULL) CopyMemory( fVSSemantics->Internal_D3DXSEMANTIC_Ptr, &fD3DXPASS_DESC.VSSemantics, sizeof(D3DXSEMANTIC) ); } // --------------------------------------------------------------------------