| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #include "TextResource.h"
- #include "FileStream.h"
- #include "ResourceArchive.h"
- #include "Log.h"
- #include "Allocator.h"
- namespace crown
- {
- //-----------------------------------------------------------------------------
- void* TextResource::load(Allocator& allocator, ResourceArchive& archive, ResourceId id)
- {
- FileStream* stream = archive.find(id);
- if (stream != NULL)
- {
- TextResource* resource = (TextResource*)allocator.allocate(sizeof(TextResource));
- stream->read(&resource->length, sizeof(uint32_t));
-
- resource->data = (char*)allocator.allocate(sizeof(char) * (resource->length + 1));
- stream->read(resource->data, (size_t)resource->length);
-
- resource->data[resource->length] = '\0';
- return resource;
- }
- return NULL;
- }
- //-----------------------------------------------------------------------------
- void TextResource::unload(Allocator& allocator, void* resource)
- {
- assert(resource != NULL);
- ((TextResource*)resource)->length = 0;
- allocator.deallocate(((TextResource*)resource)->data);
- allocator.deallocate(resource);
- }
- } // namespace crown
|