/******************************************************** * ContentReader.h * * * * XFX ContentReader class definition file * * Copyright © XFX Team. All Rights Reserved * ********************************************************/ #ifndef _CONTENT_CONTENTREADER_ #define _CONTENT_CONTENTREADER_ #include #include #include using namespace System::IO; using namespace XFX::Graphics; namespace XFX { struct Matrix; struct Quaternion; struct Vector2; struct Vector3; struct Vector4; namespace Content { class ContentTypeReader; /// /// A worker object that implements most of ContentManager.Load. A new /// ContentReader is constructed for each asset loaded. /// class ContentReader : public BinaryReader { private: ContentManager contentManager; GraphicsDevice _graphicsDevice; char* _assetName; static const short XnbVersion; static Stream PrepareStream(Stream stream, char* assetName); public: ContentReader(ContentManager manager, Stream stream, GraphicsDevice graphicsDevice); ContentReader(ContentManager manager, Stream input, char* assetName); 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 //_CONTENTREADER_