fill WFObj::loadfile(), add Buffer allocation

This commit is contained in:
Josh Holtrop committed 2011-04-20 15:20:10 -04:00
1 parent ffe2fe1d92
commit a46b5baa05
2 files changed
+26 -1

No files matched your search

+16 -1
View File
@@ -415,7 +415,22 @@ void WFObj::loadMaterial(const std::string & name)
bool WFObj::loadfile(const char *path, Buffer *buff) bool WFObj::loadfile(const char *path, Buffer *buff)
{ {
/* TODO */ struct stat st;
if ( (stat(path, &st) == 0) && (st.st_size > 0) )
{
int fd = open(path, O_RDONLY);
if (fd > 0)
{
buff->alloc(st.st_size);
int num_read = read(fd, buff->data, st.st_size);
close(fd);
if (num_read > 0)
return true;
}
}
return false;
} }
bool WFObj::VertexRef::operator<(const VertexRef & other) bool WFObj::VertexRef::operator<(const VertexRef & other)
+10
View File
@@ -14,8 +14,18 @@ public:
class Buffer class Buffer
{ {
public: public:
Buffer() : m_alloc(false) {}
~Buffer() { if (m_alloc) delete data; }
uint8_t *data; uint8_t *data;
size_t length; size_t length;
void alloc(size_t sz)
{
length = sz;
data = new uint8_t[sz];
m_alloc = true;
}
protected:
bool m_alloc;
}; };
typedef bool (*loadfile_t)(const char *fname, Buffer *buff); typedef bool (*loadfile_t)(const char *fname, Buffer *buff);