/***************************************************************************** * ContentReader.h * * * * XFX ContentReader class definition file * * Copyright (c) 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 { private: ContentManager* contentManager; GraphicsDevice* _graphicsDevice; String _assetName; static const short XnbVersion; static Stream* PrepareStream(Stream * const stream, const String& assetName); public: const String getAssetName() const; ContentManager* getContentManager() const; GraphicsDevice* getGraphicsDevice() const; int getVersion() 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_