/******************************************************** * ContentReader.h * * * * XFX ContentReader class definition file * * Copyright © XFX Team. All Rights Reserved * ********************************************************/ #ifndef _XFX_CONTENT_CONTENTREADER_ #define _XFX_CONTENT_CONTENTREADER_ #include #include #include using namespace System; using namespace System::IO; using namespace XFX::Graphics; namespace XFX { struct Matrix; struct Quaternion; struct Vector2; struct Vector3; struct Vector4; namespace Content { template class ContentTypeReader; // A worker object that implements most of ContentManager.Load. A new ContentReader is constructed for each asset loaded. class ContentReader : public BinaryReader, public Object { private: ContentManager* contentManager; GraphicsDevice* _graphicsDevice; String _assetName; static const short XnbVersion; static Stream* PrepareStream(Stream * const stream, const String& assetName); public: String getAssetName() const; ContentManager* getContentManager() const; ContentReader(ContentManager * const manager, Stream * const stream, GraphicsDevice * const graphicsDevice); ContentReader(ContentManager * const manager, Stream * const input, const String& assetName); ~ContentReader(); template T ReadExternalReference(); Matrix ReadMatrix(); template T ReadObject(); template T ReadObject(T existingInstance); template T ReadObject(ContentTypeReader* typeReader); template T ReadObject(ContentTypeReader* typeReader, T existingInstance); Quaternion ReadQuaternion(); template T ReadRawObject(); template T ReadRawObject(ContentTypeReader* typeReader); template T ReadRawObject(T existingInstance); template T ReadRawObject(ContentTypeReader* typeReader, T existingInstance); Vector2 ReadVector2(); Vector3 ReadVector3(); Vector4 ReadVector4(); }; } } #endif //_XFX_CONTENT_CONTENTREADER_