diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/public/materialsystem/MaterialSystemUtil.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/public/materialsystem/MaterialSystemUtil.cpp')
| -rw-r--r-- | mp/src/public/materialsystem/MaterialSystemUtil.cpp | 510 |
1 files changed, 255 insertions, 255 deletions
diff --git a/mp/src/public/materialsystem/MaterialSystemUtil.cpp b/mp/src/public/materialsystem/MaterialSystemUtil.cpp index 669de23b..ba63f007 100644 --- a/mp/src/public/materialsystem/MaterialSystemUtil.cpp +++ b/mp/src/public/materialsystem/MaterialSystemUtil.cpp @@ -1,255 +1,255 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $Workfile: $
-// $NoKeywords: $
-//===========================================================================//
-
-#include "materialsystem/MaterialSystemUtil.h"
-#include "materialsystem/imaterial.h"
-#include "materialsystem/itexture.h"
-#include "materialsystem/imaterialsystem.h"
-#include "tier1/KeyValues.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-//-----------------------------------------------------------------------------
-// Little utility class to deal with material references
-//-----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-// constructor, destructor
-//-----------------------------------------------------------------------------
-CMaterialReference::CMaterialReference( char const* pMaterialName, const char *pTextureGroupName, bool bComplain ) : m_pMaterial( 0 )
-{
- if ( pMaterialName )
- {
- Assert( pTextureGroupName );
- Init( pMaterialName, pTextureGroupName, bComplain );
- }
-}
-
-CMaterialReference::~CMaterialReference()
-{
- Shutdown();
-}
-
-//-----------------------------------------------------------------------------
-// Attach to a material
-//-----------------------------------------------------------------------------
-void CMaterialReference::Init( char const* pMaterialName, const char *pTextureGroupName, bool bComplain )
-{
- IMaterial *pMaterial = materials->FindMaterial( pMaterialName, pTextureGroupName, bComplain);
- if( IsErrorMaterial( pMaterial ) )
- {
- if (IsOSX())
- {
- printf("\n ##### CMaterialReference::Init got error material for %s in tex group %s", pMaterialName, pTextureGroupName );
- }
- }
-
- Assert( pMaterial );
- Init( pMaterial );
-}
-
-void CMaterialReference::Init( const char *pMaterialName, KeyValues *pVMTKeyValues )
-{
- // CreateMaterial has a refcount of 1
- Shutdown();
- m_pMaterial = materials->CreateMaterial( pMaterialName, pVMTKeyValues );
-}
-
-void CMaterialReference::Init( const char *pMaterialName, const char *pTextureGroupName, KeyValues *pVMTKeyValues )
-{
- IMaterial *pMaterial = materials->FindProceduralMaterial( pMaterialName, pTextureGroupName, pVMTKeyValues );
- Assert( pMaterial );
- Init( pMaterial );
-}
-
-void CMaterialReference::Init( IMaterial* pMaterial )
-{
- if ( m_pMaterial != pMaterial )
- {
- Shutdown();
- m_pMaterial = pMaterial;
- if ( m_pMaterial )
- {
- m_pMaterial->IncrementReferenceCount();
- }
- }
-}
-
-void CMaterialReference::Init( CMaterialReference& ref )
-{
- if ( m_pMaterial != ref.m_pMaterial )
- {
- Shutdown();
- m_pMaterial = ref.m_pMaterial;
- if (m_pMaterial)
- {
- m_pMaterial->IncrementReferenceCount();
- }
- }
-}
-
-//-----------------------------------------------------------------------------
-// Detach from a material
-//-----------------------------------------------------------------------------
-void CMaterialReference::Shutdown( )
-{
- if ( m_pMaterial && materials )
- {
- m_pMaterial->DecrementReferenceCount();
- m_pMaterial = NULL;
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// Little utility class to deal with texture references
-//-----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-// constructor, destructor
-//-----------------------------------------------------------------------------
-CTextureReference::CTextureReference( ) : m_pTexture(NULL)
-{
-}
-
-CTextureReference::CTextureReference( const CTextureReference &ref )
-{
- m_pTexture = ref.m_pTexture;
- if ( m_pTexture )
- {
- m_pTexture->IncrementReferenceCount();
- }
-}
-
-void CTextureReference::operator=( CTextureReference &ref )
-{
- m_pTexture = ref.m_pTexture;
- if ( m_pTexture )
- {
- m_pTexture->IncrementReferenceCount();
- }
-}
-
-CTextureReference::~CTextureReference( )
-{
- Shutdown();
-}
-
-//-----------------------------------------------------------------------------
-// Attach to a texture
-//-----------------------------------------------------------------------------
-void CTextureReference::Init( char const* pTextureName, const char *pTextureGroupName, bool bComplain )
-{
- Shutdown();
- m_pTexture = materials->FindTexture( pTextureName, pTextureGroupName, bComplain );
- if ( m_pTexture )
- {
- m_pTexture->IncrementReferenceCount();
- }
-}
-
-void CTextureReference::Init( ITexture* pTexture )
-{
- Shutdown();
-
- m_pTexture = pTexture;
- if (m_pTexture)
- {
- m_pTexture->IncrementReferenceCount();
- }
-}
-
-void CTextureReference::InitProceduralTexture( const char *pTextureName, const char *pTextureGroupName, int w, int h, ImageFormat fmt, int nFlags )
-{
- Shutdown();
-
- m_pTexture = materials->CreateProceduralTexture( pTextureName, pTextureGroupName, w, h, fmt, nFlags );
-
- // NOTE: The texture reference is already incremented internally above!
- /*
- if ( m_pTexture )
- {
- m_pTexture->IncrementReferenceCount();
- }
- */
-}
-
-void CTextureReference::InitRenderTarget( int w, int h, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, char *pStrOptionalName /* = NULL */ )
-{
- Shutdown();
-
- int textureFlags = TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT;
- if ( depth == MATERIAL_RT_DEPTH_ONLY )
- textureFlags |= TEXTUREFLAGS_POINTSAMPLE;
-
- int renderTargetFlags = bHDR ? CREATERENDERTARGETFLAGS_HDR : 0;
-
- // NOTE: Refcount returned by CreateRenderTargetTexture is 1
- m_pTexture = materials->CreateNamedRenderTargetTextureEx( pStrOptionalName, w, h, sizeMode, fmt,
- depth, textureFlags, renderTargetFlags );
-
- Assert( m_pTexture );
-}
-
-//-----------------------------------------------------------------------------
-// Detach from a texture
-//-----------------------------------------------------------------------------
-void CTextureReference::Shutdown( bool bDeleteIfUnReferenced )
-{
- if ( m_pTexture && materials )
- {
- m_pTexture->DecrementReferenceCount();
- if ( bDeleteIfUnReferenced )
- {
- m_pTexture->DeleteIfUnreferenced();
- }
- m_pTexture = NULL;
- }
-}
-
-//-----------------------------------------------------------------------------
-// Builds ONLY the system ram render target. Used when caller is explicitly managing.
-// The paired EDRAM surface can be built in an alternate format.
-//-----------------------------------------------------------------------------
-#if defined( _X360 )
-void CTextureReference::InitRenderTargetTexture( int w, int h, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, char *pStrOptionalName )
-{
- // other variants not implemented yet
- Assert( depth == MATERIAL_RT_DEPTH_NONE || depth == MATERIAL_RT_DEPTH_SHARED );
- Assert( !bHDR );
-
- int renderTargetFlags = CREATERENDERTARGETFLAGS_NOEDRAM;
-
- m_pTexture = materials->CreateNamedRenderTargetTextureEx(
- pStrOptionalName,
- w,
- h,
- sizeMode,
- fmt,
- depth,
- TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT,
- renderTargetFlags );
- Assert( m_pTexture );
-}
-#endif
-
-//-----------------------------------------------------------------------------
-// Builds ONLY the EDRAM render target surface. Used when caller is explicitly managing.
-// The paired system memory texture can be built in an alternate format.
-//-----------------------------------------------------------------------------
-#if defined( _X360 )
-void CTextureReference::InitRenderTargetSurface( int width, int height, ImageFormat fmt, bool bSameAsTexture )
-{
- // texture has to be created first
- Assert( m_pTexture && m_pTexture->IsRenderTarget() );
-
- m_pTexture->CreateRenderTargetSurface( width, height, fmt, bSameAsTexture );
-}
-#endif
-
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $Workfile: $ +// $NoKeywords: $ +//===========================================================================// + +#include "materialsystem/MaterialSystemUtil.h" +#include "materialsystem/imaterial.h" +#include "materialsystem/itexture.h" +#include "materialsystem/imaterialsystem.h" +#include "tier1/KeyValues.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +//----------------------------------------------------------------------------- +// Little utility class to deal with material references +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// constructor, destructor +//----------------------------------------------------------------------------- +CMaterialReference::CMaterialReference( char const* pMaterialName, const char *pTextureGroupName, bool bComplain ) : m_pMaterial( 0 ) +{ + if ( pMaterialName ) + { + Assert( pTextureGroupName ); + Init( pMaterialName, pTextureGroupName, bComplain ); + } +} + +CMaterialReference::~CMaterialReference() +{ + Shutdown(); +} + +//----------------------------------------------------------------------------- +// Attach to a material +//----------------------------------------------------------------------------- +void CMaterialReference::Init( char const* pMaterialName, const char *pTextureGroupName, bool bComplain ) +{ + IMaterial *pMaterial = materials->FindMaterial( pMaterialName, pTextureGroupName, bComplain); + if( IsErrorMaterial( pMaterial ) ) + { + if (IsOSX()) + { + printf("\n ##### CMaterialReference::Init got error material for %s in tex group %s", pMaterialName, pTextureGroupName ); + } + } + + Assert( pMaterial ); + Init( pMaterial ); +} + +void CMaterialReference::Init( const char *pMaterialName, KeyValues *pVMTKeyValues ) +{ + // CreateMaterial has a refcount of 1 + Shutdown(); + m_pMaterial = materials->CreateMaterial( pMaterialName, pVMTKeyValues ); +} + +void CMaterialReference::Init( const char *pMaterialName, const char *pTextureGroupName, KeyValues *pVMTKeyValues ) +{ + IMaterial *pMaterial = materials->FindProceduralMaterial( pMaterialName, pTextureGroupName, pVMTKeyValues ); + Assert( pMaterial ); + Init( pMaterial ); +} + +void CMaterialReference::Init( IMaterial* pMaterial ) +{ + if ( m_pMaterial != pMaterial ) + { + Shutdown(); + m_pMaterial = pMaterial; + if ( m_pMaterial ) + { + m_pMaterial->IncrementReferenceCount(); + } + } +} + +void CMaterialReference::Init( CMaterialReference& ref ) +{ + if ( m_pMaterial != ref.m_pMaterial ) + { + Shutdown(); + m_pMaterial = ref.m_pMaterial; + if (m_pMaterial) + { + m_pMaterial->IncrementReferenceCount(); + } + } +} + +//----------------------------------------------------------------------------- +// Detach from a material +//----------------------------------------------------------------------------- +void CMaterialReference::Shutdown( ) +{ + if ( m_pMaterial && materials ) + { + m_pMaterial->DecrementReferenceCount(); + m_pMaterial = NULL; + } +} + + +//----------------------------------------------------------------------------- +// Little utility class to deal with texture references +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// constructor, destructor +//----------------------------------------------------------------------------- +CTextureReference::CTextureReference( ) : m_pTexture(NULL) +{ +} + +CTextureReference::CTextureReference( const CTextureReference &ref ) +{ + m_pTexture = ref.m_pTexture; + if ( m_pTexture ) + { + m_pTexture->IncrementReferenceCount(); + } +} + +void CTextureReference::operator=( CTextureReference &ref ) +{ + m_pTexture = ref.m_pTexture; + if ( m_pTexture ) + { + m_pTexture->IncrementReferenceCount(); + } +} + +CTextureReference::~CTextureReference( ) +{ + Shutdown(); +} + +//----------------------------------------------------------------------------- +// Attach to a texture +//----------------------------------------------------------------------------- +void CTextureReference::Init( char const* pTextureName, const char *pTextureGroupName, bool bComplain ) +{ + Shutdown(); + m_pTexture = materials->FindTexture( pTextureName, pTextureGroupName, bComplain ); + if ( m_pTexture ) + { + m_pTexture->IncrementReferenceCount(); + } +} + +void CTextureReference::Init( ITexture* pTexture ) +{ + Shutdown(); + + m_pTexture = pTexture; + if (m_pTexture) + { + m_pTexture->IncrementReferenceCount(); + } +} + +void CTextureReference::InitProceduralTexture( const char *pTextureName, const char *pTextureGroupName, int w, int h, ImageFormat fmt, int nFlags ) +{ + Shutdown(); + + m_pTexture = materials->CreateProceduralTexture( pTextureName, pTextureGroupName, w, h, fmt, nFlags ); + + // NOTE: The texture reference is already incremented internally above! + /* + if ( m_pTexture ) + { + m_pTexture->IncrementReferenceCount(); + } + */ +} + +void CTextureReference::InitRenderTarget( int w, int h, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, char *pStrOptionalName /* = NULL */ ) +{ + Shutdown(); + + int textureFlags = TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT; + if ( depth == MATERIAL_RT_DEPTH_ONLY ) + textureFlags |= TEXTUREFLAGS_POINTSAMPLE; + + int renderTargetFlags = bHDR ? CREATERENDERTARGETFLAGS_HDR : 0; + + // NOTE: Refcount returned by CreateRenderTargetTexture is 1 + m_pTexture = materials->CreateNamedRenderTargetTextureEx( pStrOptionalName, w, h, sizeMode, fmt, + depth, textureFlags, renderTargetFlags ); + + Assert( m_pTexture ); +} + +//----------------------------------------------------------------------------- +// Detach from a texture +//----------------------------------------------------------------------------- +void CTextureReference::Shutdown( bool bDeleteIfUnReferenced ) +{ + if ( m_pTexture && materials ) + { + m_pTexture->DecrementReferenceCount(); + if ( bDeleteIfUnReferenced ) + { + m_pTexture->DeleteIfUnreferenced(); + } + m_pTexture = NULL; + } +} + +//----------------------------------------------------------------------------- +// Builds ONLY the system ram render target. Used when caller is explicitly managing. +// The paired EDRAM surface can be built in an alternate format. +//----------------------------------------------------------------------------- +#if defined( _X360 ) +void CTextureReference::InitRenderTargetTexture( int w, int h, RenderTargetSizeMode_t sizeMode, ImageFormat fmt, MaterialRenderTargetDepth_t depth, bool bHDR, char *pStrOptionalName ) +{ + // other variants not implemented yet + Assert( depth == MATERIAL_RT_DEPTH_NONE || depth == MATERIAL_RT_DEPTH_SHARED ); + Assert( !bHDR ); + + int renderTargetFlags = CREATERENDERTARGETFLAGS_NOEDRAM; + + m_pTexture = materials->CreateNamedRenderTargetTextureEx( + pStrOptionalName, + w, + h, + sizeMode, + fmt, + depth, + TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT, + renderTargetFlags ); + Assert( m_pTexture ); +} +#endif + +//----------------------------------------------------------------------------- +// Builds ONLY the EDRAM render target surface. Used when caller is explicitly managing. +// The paired system memory texture can be built in an alternate format. +//----------------------------------------------------------------------------- +#if defined( _X360 ) +void CTextureReference::InitRenderTargetSurface( int width, int height, ImageFormat fmt, bool bSameAsTexture ) +{ + // texture has to be created first + Assert( m_pTexture && m_pTexture->IsRenderTarget() ); + + m_pTexture->CreateRenderTargetSurface( width, height, fmt, bSameAsTexture ); +} +#endif + |