5 #include "ServiceCall.h"
6 #include "ProgramVector.h"
8 template<
typename Array,
typename Element>
11 if (max_size >
size - offset)
12 max_size =
size - offset;
13 return Array((Element*)(
data + offset), max_size /
sizeof(Element));
16 template FloatArray Resource::asArray<FloatArray, float>(
size_t offset,
size_t max_size);
20 delete[] resource->
data;
31 if(getProgramVector()->serviceCall(OWL_SERVICE_LOAD_RESOURCE, args, 4) == OWL_SERVICE_OK)
38 if(resource && !resource->
hasData()){
45 if (getProgramVector()->serviceCall(OWL_SERVICE_LOAD_RESOURCE, args, 4) == OWL_SERVICE_OK){
58 if(this->
data == NULL){
60 (
void*)this->
name, (
void*)&dest, (
void*)&offset, (
void*)&len
62 if (getProgramVector()->serviceCall(OWL_SERVICE_LOAD_RESOURCE, args, 4) == OWL_SERVICE_OK){
69 memcpy(dest, (uint8_t*)this->
data+offset, len);
This class contains useful methods for manipulating arrays of floats.
size_t read(void *dest, size_t len, size_t offset=0)
Read data from resource into memory.
Array asArray(size_t offset=0, size_t max_size=0xFFFFFFFF)
Array conversion.
bool hasData() const
Check if data is available.
static void destroy(Resource *resource)
Clean up used memory resources.
static Resource * open(const char *name)
Get resource from storage.
static Resource * load(const char *name)
Open resource and load data.