Game Development Reference
In-Depth Information
class D3DSdkMeshResourceExtraData11 : public IResourceExtraData
{
friend class SdkMeshResourceLoader;
public:
D3DSdkMeshResourceExtraData11() { };
virtual ~D3DSdkMeshResourceExtraData11() { }
virtual std::string VToString() { return
D3DSdkMeshResourceExtraData11
;}
CDXUTSDKMesh m_Mesh11;
};
class SdkMeshResourceLoader : public IResourceLoader
{
public:
virtual bool VUseRawFile() { return false; }
virtual bool VDiscardRawBufferAfterLoad() { return false; }
virtual unsigned int VGetLoadedResourceSize(char *rawBuffer, unsigned int
unsigned int rawSize)
{ return rawSize; }
virtual bool VLoadResource(char *rawBuffer, unsigned int rawSize,
shared_ptr<ResHandle> handle);
virtual std::string VGetPattern() { return “*.sdkmesh”;}
};
bool SdkMeshResourceLoader::VLoadResource(char *rawBuffer,
unsigned int rawSize,
shared_ptr<ResHandle> handle)
{
shared_ptr<D3DSdkMeshResourceExtraData11> extra =
shared_ptr<D3DSdkMeshResourceExtraData11>(
GCC_NEW D3DSdkMeshResourceExtraData11());
// Load the Mesh
if (SUCCEEDED ( extra->m_Mesh11.Create( DXUTGetD3D11Device(),
(BYTE *)rawBuffer, (UINT)rawSize, true ) ) )
{
handle->SetExtra(shared_ptr<D3DSdkMeshResourceExtraData11>(extra));
}
return true;
}
This loader is trivial. All
it really does is call
the Create() method of
the
CDXUTSDKMesh class with the raw bits of the SDKMESH file as inputs.
Search WWH ::




Custom Search