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.
|
|
//====== Copyright c 1996-2007, Valve Corporation, All rights reserved. =======//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
#ifndef DXINCLUDEIMPL_H
#define DXINCLUDEIMPL_H
#ifdef _WIN32
#pragma once
#endif
FileCache s_incFileCache;
struct DxIncludeImpl : public ID3DXInclude { STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) { CachedFileData *pFileData = s_incFileCache.Get( pFileName ); if ( !pFileData || !pFileData->IsValid() ) return E_FAIL; *ppData = pFileData->GetDataPtr(); *pBytes = pFileData->GetDataLen();
pFileData->UpdateRefCount( +1 );
return S_OK; }
STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes, /* OUT */ LPSTR pFullPath, DWORD cbFullPath) { if ( pFullPath && cbFullPath ) strncpy( pFullPath, pFileName, cbFullPath ); return Open( IncludeType, pFileName, pParentData, ppData, pBytes ); } STDMETHOD(Close)(THIS_ LPCVOID pData) { if ( CachedFileData *pFileData = CachedFileData::GetByDataPtr( pData ) ) pFileData->UpdateRefCount( -1 );
return S_OK; } };
DxIncludeImpl s_incDxImpl;
#endif // #ifndef DXINCLUDEIMPL_H
|