AsyncTextureResourceManager.h 908 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef ANKI_RESOURCE_ASYNC_TEXTURE_RESOURCE_MANAGER_H
  2. #define ANKI_RESOURCE_ASYNC_TEXTURE_RESOURCE_MANAGER_H
  3. #include "anki/resource/ResourceManager.h"
  4. #include "anki/resource/AsyncOperator.h"
  5. namespace anki {
  6. class Texture;
  7. /// @addtogroup resource
  8. /// @{
  9. /// XXX
  10. class AsyncTextureResourceManager: public ResourceManager<Texture>
  11. {
  12. public:
  13. private:
  14. /// XXX
  15. class Request: public AsyncOperator::Request
  16. {
  17. public:
  18. std::string filename;
  19. Image img;
  20. Texture** ppTex;
  21. Request(const char* fname, Texture**& ppTex_)
  22. : filename(fname),
  23. ppTex(ppTex_)
  24. {}
  25. /// Implements AsyncOperator::Request::exec
  26. void exec();
  27. /// Implements AsyncOperator::Request::postExec
  28. void postExec(AsyncOperator& al);
  29. /// Re-implements AsyncOperator::Request::getInfo
  30. std::string getInfo() const;
  31. };
  32. boost::scoped_ptr<AsyncOperator> ao;
  33. };
  34. /// @}
  35. } // namespace anki
  36. #endif