AsyncTextureResourceManager.h 940 B

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