Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

105 lines
3.0 KiB

//============ Copyright (c) Valve Corporation, All rights reserved. ==========
//
//=============================================================================
// Valve includes
#include "fbxsystem/ifbxsystem.h"
#include "tier0/dbg.h"
// Local includes
#include "fbxsystem.h"
// Last include
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
DEFINE_LOGGING_CHANNEL_NO_TAGS( LOG_FBX_SYSTEM, "FbxSystem" );
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
CFbxSystem s_fbxSystem;
IFbxSystem *g_pFbx = &s_fbxSystem;
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
CFbxSystem::CFbxSystem()
: m_pFbxManager( NULL )
{
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
CFbxSystem::~CFbxSystem()
{
}
//-----------------------------------------------------------------------------
// Initialize the FBX SDK, hook up the pointer, FBX is started up on first use
// via CFbxSystem::GetFbxManager
//-----------------------------------------------------------------------------
InitReturnVal_t CFbxSystem::Init()
{
return INIT_OK;
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
void CFbxSystem::Shutdown()
{
if ( m_pFbxManager )
{
m_pFbxManager->Destroy();
m_pFbxManager = NULL;
}
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
FbxManager *CFbxSystem::GetFbxManager()
{
if ( m_pFbxManager )
return m_pFbxManager;
m_pFbxManager = FbxManager::Create();
if ( m_pFbxManager )
{
FbxIOSettings *pFbxIOSettings = FbxIOSettings::Create( m_pFbxManager, IOSROOT );
if ( !pFbxIOSettings )
{
m_pFbxManager->Destroy();
m_pFbxManager = NULL;
Log_Error( LOG_FBX_SYSTEM, "Error! Cannot create FbxIOSettings\n" );
}
m_pFbxManager->SetIOSettings( pFbxIOSettings );
// TODO: This can be slow... and currently no FBX plug-ins exist (must be looking at all files to see if they are plug-ins)
// TODO: Do we need FBX plug-ins? - sApplicationPath will be d:/dev/main/game/bin, for example (wherever studiomdl.exe is)
// TODO: If we need plug-ins in the future, then we should put them in a specific directory under game/bin maybe?
/*
const FbxString sApplicationPath = FbxGetApplicationDirectory();
pFbxManager->LoadPluginsDirectory( sApplicationPath.Buffer() );
*/
}
else
{
Log_Error( LOG_FBX_SYSTEM, "Error! Cannot create FbxManager\n" );
}
return m_pFbxManager;
}