本文整理汇总了C++中ITexture::IncrementReferenceCount方法的典型用法代码示例。如果您正苦于以下问题:C++ ITexture::IncrementReferenceCount方法的具体用法?C++ ITexture::IncrementReferenceCount怎么用?C++ ITexture::IncrementReferenceCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITexture
的用法示例。
在下文中一共展示了ITexture::IncrementReferenceCount方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetupClientRenderTargets
//-----------------------------------------------------------------------------
// Purpose: Called by the engine in material system init and shutdown.
// Clients should override this in their inherited version, but the base
// is to init all standard render targets for use.
// Input : pMaterialSystem - the engine's material system (our singleton is not yet inited at the time this is called)
// pHardwareConfig - the user hardware config, useful for conditional render target setup
//-----------------------------------------------------------------------------
void CBaseClientRenderTargets::SetupClientRenderTargets( IMaterialSystem* pMaterialSystem, IMaterialSystemHardwareConfig* pHardwareConfig, int iWaterTextureSize, int iCameraTextureSize )
{
IMaterialSystem *pSave = materials;
// Make sure our config is loaded before we try to init rendertargets
ConfigureCurrentSystemLevel();
// Water effects
materials = pMaterialSystem; // in case not initted yet for mat system util
g_pMaterialSystem = pMaterialSystem;
g_pMaterialSystemHardwareConfig = pHardwareConfig;
if ( iWaterTextureSize && !cl_disable_water_render_targets.GetBool() )
{
m_WaterReflectionTexture.Init( CreateWaterReflectionTexture( pMaterialSystem, iWaterTextureSize ) );
m_WaterRefractionTexture.Init( CreateWaterRefractionTexture( pMaterialSystem, iWaterTextureSize ) );
}
// Monitors
if ( iCameraTextureSize )
m_CameraTexture.Init( CreateCameraTexture( pMaterialSystem, iCameraTextureSize ) );
ITexture *pGlintTexture = pMaterialSystem->CreateNamedRenderTargetTextureEx2(
"_rt_eyeglint", 32, 32, RT_SIZE_NO_CHANGE, IMAGE_FORMAT_BGRA8888, MATERIAL_RT_DEPTH_NONE );
pGlintTexture->IncrementReferenceCount();
g_pClientShadowMgr->InitRenderTargets();
#ifdef GAMEUI_UISYSTEM2_ENABLED
g_pGameUIGameSystem->InitRenderTargets();
#endif
materials = pSave;
}
示例2: Init
bool CPlayerLogoProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
{
bool found = false;
m_pBaseTextureVar = pMaterial->FindVar( "$basetexture", &found );
if ( !found )
return false;
m_pDefaultTexture = materials->FindTexture( DEFAULT_DECAL_NAME, TEXTURE_GROUP_DECAL );
if ( IsErrorTexture( m_pDefaultTexture ) )
return false;
m_pDefaultTexture->IncrementReferenceCount();
return true;
}
示例3: OnBind
void CPlayerLogoProxy::OnBind( void *pC_BaseEntity )
{
// Decal's are bound with the player index as the passed in paramter
int playerindex = (int)pC_BaseEntity;
if ( playerindex <= 0 )
return;
if ( playerindex > gpGlobals->maxClients )
return;
if ( !m_pBaseTextureVar )
return;
// Find player
player_info_t info;
engine->GetPlayerInfo( playerindex, &info );
if ( !info.customFiles[0] )
return;
// So we don't trash this too hard
ITexture *texture = NULL;
PlayerLogo logo;
logo.crc = (unsigned int)info.customFiles[0];
logo.texture = NULL;
int lookup = m_Logos.Find( logo );
if ( lookup == m_Logos.InvalidIndex() )
{
char crcfilename[ 512 ];
char logohex[ 16 ];
Q_binarytohex( (byte *)&info.customFiles[0], sizeof( info.customFiles[0] ), logohex, sizeof( logohex ) );
Q_snprintf( crcfilename, sizeof( crcfilename ), "temp/%s", logohex );
texture = materials->FindTexture( crcfilename, TEXTURE_GROUP_DECAL, false );
if ( texture )
{
// Make sure it doesn't get flushed
texture->IncrementReferenceCount();
logo.texture = texture;
}
m_Logos.Insert( logo );
}
else
{
texture = m_Logos[ lookup ].texture;
}
if ( texture )
{
m_pBaseTextureVar->SetTextureValue( texture );
}
else if ( m_pDefaultTexture )
{
m_pBaseTextureVar->SetTextureValue( m_pDefaultTexture );
}
if ( ToolsEnabled() )
{
ToolFramework_RecordMaterialParams( GetMaterial() );
}
}
示例4: IFacePoserToolWindow
MatSysWindow::MatSysWindow (mxWindow *parent, int x, int y, int w, int h, const char *label, int style)
: IFacePoserToolWindow( "3D View", "3D View" ), mxMatSysWindow ( parent, x, y, w, h, label, style )
{
SetAutoProcess( true );
setLabel( MATSYSWIN_NAME );
m_bSuppressSwap = false;
m_hWnd = (HWND)getHandle();
const char *pPath = basegamedir;
Con_Printf( "Directory: %s\n", basegamedir );
Con_Printf( "Loading materialsystem.dll\n" );
// Load the material system DLL and get its interface.
m_hMaterialSystemInst = LoadLibrary( "MaterialSystem.dll" );
if( !m_hMaterialSystemInst )
{
Error( "Can't load MaterialSystem.dll\n" );
}
Con_Printf( "Getting materialsystem factory\n" );
g_MaterialSystemFactory = Sys_GetFactory( "MaterialSystem.dll" );
if ( g_MaterialSystemFactory )
{
g_pMaterialSystem = (IMaterialSystem *)g_MaterialSystemFactory( MATERIAL_SYSTEM_INTERFACE_VERSION, NULL );
if ( !g_pMaterialSystem )
{
Error( "Could not get the material system interface from materialsystem.dll" );
}
}
else
{
Error( "Could not find factory interface in library MaterialSystem.dll" );
}
const char *pShaderDLL = CommandLine()->ParmValue("-shaderdll");
if(!pShaderDLL)
{
pShaderDLL = "shaderapidx9.dll";
}
if ( CommandLine()->FindParm( "-noshaderapi" ) )
{
pShaderDLL = "shaderapiempty.dll";
}
Con_Printf( "Initializing materialsystem\n" );
if(!( g_MaterialSystemClientFactory = g_pMaterialSystem->Init(pShaderDLL, &g_DummyMaterialProxyFactory, FileSystem_GetFactory() )) )
Error("IMaterialSystem::Init failed");
g_pMaterialSystemHardwareConfig = (IMaterialSystemHardwareConfig*)
g_MaterialSystemClientFactory( MATERIALSYSTEM_HARDWARECONFIG_INTERFACE_VERSION, 0 );
if ( !g_pMaterialSystemHardwareConfig )
return;
Con_Printf( "Setting material system video mode\n" );
MaterialVideoMode_t mode;
int modeFlags = MATERIAL_VIDEO_MODE_WINDOWED | MATERIAL_VIDEO_MODE_RESIZING;
mode.m_Width = mode.m_Height = 0;
if (!g_pMaterialSystem->SetMode( (void*)m_hWnd, mode, modeFlags ))
return;
g_pMaterialSystem->AddReleaseFunc( ReleaseMaterialSystemObjects );
g_pMaterialSystem->AddRestoreFunc( RestoreMaterialSystemObjects );
Con_Printf( "Calling UpdateConfig\n" );
MaterialSystem_Config_t config;
InitMaterialSystemConfig(&config);
g_pMaterialSystem->UpdateConfig(&config, false);
Con_Printf( "Loading debug materials\n" );
ITexture *pCubemapTexture = g_pMaterialSystem->FindTexture( "hlmv/cubemap", NULL, true );
pCubemapTexture->IncrementReferenceCount();
g_pMaterialSystem->BindLocalCubemap( pCubemapTexture );
g_materialBackground = g_pMaterialSystem->FindMaterial("particle/particleapp_background", NULL, true);
g_materialWireframe = g_pMaterialSystem->FindMaterial("debug/debugmrmwireframe", NULL, true);
g_materialFlatshaded = g_pMaterialSystem->FindMaterial("debug/debugdrawflatpolygons", NULL, true);
g_materialSmoothshaded = g_pMaterialSystem->FindMaterial("debug/debugmrmfullbright2", NULL, true);
g_materialBones = g_pMaterialSystem->FindMaterial("debug/debugmrmwireframe", NULL, true);
g_materialLines = g_pMaterialSystem->FindMaterial("debug/debugwireframevertexcolor", NULL, true);
g_materialFloor = g_pMaterialSystem->FindMaterial("hlmv/floor", NULL, true);
if (!parent)
setVisible (true);
else
mx::setIdleWindow (this);
m_bSuppressResize = false;
}