/******************************************************** * 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 { class ContentTypeReader; // A worker object that implements most of ContentManager.Load. A new ContentReader is constructed for each asset loaded. class ContentReader : public BinaryReader, virtual Object { 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 //_XFX_CONTENT_CONTENTREADER_