65 lines
1.5 KiB
C++
Executable File
65 lines
1.5 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _CORERES_H_
|
|
#define _CORERES_H_
|
|
|
|
#ifndef _RESMANAGER_H_
|
|
#include "core/resManager.h"
|
|
#endif
|
|
|
|
class RawData
|
|
{
|
|
private:
|
|
bool ownMemory;
|
|
|
|
public:
|
|
char *data;
|
|
S32 size;
|
|
|
|
RawData() { ownMemory = false; }
|
|
RawData(Stream &s, S32 sz) {
|
|
ownMemory = true;
|
|
size = sz;
|
|
data = new char[size];
|
|
if (data)
|
|
s.read(size, data);
|
|
}
|
|
~RawData() {
|
|
if (ownMemory)
|
|
delete [] data;
|
|
data = NULL;
|
|
ownMemory = false;
|
|
size = 0;
|
|
}
|
|
};
|
|
|
|
|
|
//-------------------------------------- RawData type
|
|
class ResourceTypeRawData : public ResourceType
|
|
{
|
|
public:
|
|
ResourceTypeRawData(const char *ext = ".dat"):
|
|
ResourceType( ResourceType::typeof(ext) ) { }
|
|
void* construct(Stream *stream, S32 size)
|
|
{ return (void*)new RawData(*stream, size); }
|
|
void destruct(void *p)
|
|
{ delete (RawData*)p; }
|
|
};
|
|
|
|
class ResourceTypeStaticRawData : public ResourceType
|
|
{
|
|
public:
|
|
ResourceTypeStaticRawData(const char *ext = ".sdt"):
|
|
ResourceType( ResourceType::typeof(ext) ) { }
|
|
void* construct(Stream *stream, S32 size)
|
|
{ return (void*)new RawData(*stream, size); }
|
|
void destruct(void *p)
|
|
{ }
|
|
};
|
|
|
|
#endif //_CORERES_H_
|
|
|