25 #ifndef __CU_TEXTURE_LOADER__
26 #define __CU_TEXTURE_LOADER__
27 #include <unordered_set>
28 #include <renderer/CCTexture2D.h>
66 #pragma mark Texture Coordinator
76 std::unordered_map<GLuint,std::string> _sources;
78 std::unordered_map<std::string,Texture2D*> _objects;
80 std::unordered_map<std::string, int> _refcnts;
82 std::unordered_map<std::string,std::vector<std::function<void(Texture2D* s)>>> _callbacks;
110 bool isLoaded(std::string source)
const {
return _objects.find(source) != _objects.end(); }
120 bool isPending(std::string source)
const {
return _callbacks.find(source) != _callbacks.end(); }
123 #pragma mark Allocation Methods
134 Texture2D* load(std::string source);
148 void loadAsync(std::string source, std::function<
void(Texture2D* s)> callback);
161 void allocate(Texture2D* texture, std::string source);
173 void release(Texture2D* texture);
181 #pragma mark Texture Loader
199 void allocate(std::string key, Texture2D* texture,
const Texture2D::TexParams& params);
203 #pragma mark Activation/Deactivation
226 void start()
override;
238 void stop()
override;
241 #pragma mark Loading/Unloading
252 size_t waitCount()
const override {
return _tqueue.size(); }
269 Texture2D*
load(std::string key, std::string source)
override {
return load(key,source,_default); }
285 Texture2D*
load(std::string key, std::string source,
const Texture2D::TexParams& params);
320 void loadAsync(std::string key, std::string source,
const Texture2D::TexParams& params);
333 void unload(std::string key)
override;
347 #pragma mark Defaults
367 CC_CONSTRUCTOR_ACCESS:
368 #pragma mark Initializers
static Coordinator * _gCoordinator
Definition: CUTextureLoader.h:177
Texture2D * load(std::string key, std::string source) override
Definition: CUTextureLoader.h:269
size_t waitCount() const override
Definition: CUTextureLoader.h:252
virtual void start()
Definition: CULoader.h:66
Definition: CUTextureLoader.h:73
void loadAsync(std::string key, std::string source) override
Definition: CUTextureLoader.h:303
size_t instances
Definition: CUTextureLoader.h:86
std::unordered_set< std::string > _tqueue
Definition: CUTextureLoader.h:186
bool isLoaded(std::string source) const
Definition: CUTextureLoader.h:110
Texture2D::TexParams _default
Definition: CUTextureLoader.h:183
void setDefaultParameters(const Texture2D::TexParams ¶ms)
Definition: CUTextureLoader.h:364
Definition: CUTextureLoader.h:59
virtual void unload(std::string key)
Definition: CULoader.h:125
const Texture2D::TexParams & getDefaultParameters() const
Definition: CUTextureLoader.h:355
bool isPending(std::string source) const
Definition: CUTextureLoader.h:120
virtual void unloadAll()
Definition: CULoader.h:138
virtual void stop()
Definition: CULoader.h:82
Definition: CULoader.h:237
virtual T * load(std::string key, std::string source)
Definition: CULoader.h:310
virtual void loadAsync(std::string key, std::string source)
Definition: CULoader.h:111