RsrcLoadingRequests.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef RSRC_LOADING_REQUESTS_H
  2. #define RSRC_LOADING_REQUESTS_H
  3. #include <string>
  4. #include "Util/Accessors.h"
  5. #include "Resources/Image.h"
  6. class AsyncLoader;
  7. // Dont even think to include these files:
  8. class Texture;
  9. /// Request for the AsyncLoader [Base class]
  10. class RsrcLoadingRequestBase
  11. {
  12. public:
  13. RsrcLoadingRequestBase(const char* filename_): filename(filename_) {}
  14. GETTER_R(std::string, filename, getFilename)
  15. virtual void postRequest(AsyncLoader& al) = 0;
  16. virtual void doPostLoading() = 0;
  17. private:
  18. std::string filename;
  19. };
  20. /// @todo
  21. class RsrcTextureLoadingRequest: public RsrcLoadingRequestBase
  22. {
  23. public:
  24. RsrcTextureLoadingRequest(const char* filename_, Texture** pTex_);
  25. void postRequest(AsyncLoader& al);
  26. void doPostLoading();
  27. private:
  28. Image img;
  29. Texture** pTex;
  30. /// Load image callback. Passed to AsyncLoader
  31. static void loadImageCallback(const char* filename, void* img);
  32. };
  33. inline RsrcTextureLoadingRequest::RsrcTextureLoadingRequest(
  34. const char* filename_, Texture** pTex_)
  35. : RsrcLoadingRequestBase(filename_),
  36. pTex(pTex_)
  37. {}
  38. #endif