@@ -10,39 +10,39 @@ Array Resource::asArray(size_t offset, size_t max_size) {
1010 // Data is expected to be aligned
1111 if (max_size > size - offset)
1212 max_size = size - offset;
13- return Array ((Element*)(( uint8_t *) getData () + offset), max_size / sizeof (Element));
13+ return Array ((Element*)(data + offset), max_size / sizeof (Element));
1414}
1515
1616template FloatArray Resource::asArray<FloatArray, float >(size_t offset, size_t max_size);
1717
18- Resource::~Resource ( ) {
19- if (allocated)
20- delete[] ( uint8_t *) data;
18+ void Resource::destroy (Resource* resource ) {
19+ if (resource && resource-> allocated )
20+ delete[] resource-> data ;
2121}
2222
23- Resource Resource::open (const char * name){
23+ Resource* Resource::open (const char * name){
2424 uint8_t * data = NULL ;
2525 size_t offset = 0 ;
2626 size_t size = 0 ;
2727 void * args[] = {
2828 (void *)name, (void *)&data, (void *)&offset, (void *)&size
2929 };
3030 if (getProgramVector ()->serviceCall (OWL_SERVICE_LOAD_RESOURCE, args, 4 ) == OWL_SERVICE_OK)
31- return Resource (name, size, data);
32- return Resource () ;
31+ return new Resource (name, size, data);
32+ return NULL ;
3333}
3434
35- Resource Resource::load (const char * name){
36- Resource resource = Resource::open (name);
37- if (resource. exists () && !resource. hasData ()){
38- uint8_t * data = new uint8_t [resource. size ];
35+ Resource* Resource::load (const char * name){
36+ Resource* resource = Resource::open (name);
37+ if (resource && !resource-> hasData ()){
38+ uint8_t * data = new uint8_t [resource-> size ];
3939 size_t offset = 0 ;
4040 void * args[] = {
41- (void *)name, (void *)&data, (void *)&offset, (void *)&resource. size
41+ (void *)name, (void *)&data, (void *)&offset, (void *)&resource-> size
4242 };
4343 if (getProgramVector ()->serviceCall (OWL_SERVICE_LOAD_RESOURCE, args, 4 ) == OWL_SERVICE_OK){
44- resource. data = data;
45- resource. allocated = true ;
44+ resource-> data = data;
45+ resource-> allocated = true ;
4646 }else {
4747 delete[] data;
4848 }
0 commit comments