Add explicit load methods to DirectDrawSurface.

pull/216/head
castano 14 years ago
parent 1e0dea0738
commit e5736fcf92

@ -803,32 +803,47 @@ bool DDSHeader::hasDX10Header() const
} }
DirectDrawSurface::DirectDrawSurface() : stream(NULL)
DirectDrawSurface::DirectDrawSurface(const char * name) : stream(new StdInputStream(name))
{ {
if (!stream->isError())
{
(*stream) << header;
}
} }
DirectDrawSurface::DirectDrawSurface(Stream * s) : stream(s) DirectDrawSurface::DirectDrawSurface(const char * name) : stream(NULL)
{ {
if (!stream->isError()) load(name);
{
(*stream) << header;
}
} }
DirectDrawSurface::DirectDrawSurface(Stream * s) : stream(NULL)
{
load(s);
}
DirectDrawSurface::~DirectDrawSurface() DirectDrawSurface::~DirectDrawSurface()
{ {
delete stream; delete stream;
} }
bool DirectDrawSurface::load(const char * filename)
{
return load(new StdInputStream(filename));
}
bool DirectDrawSurface::load(Stream * stream)
{
delete this->stream;
this->stream = stream;
if (!stream->isError())
{
(*stream) << header;
return true;
}
return false;
}
bool DirectDrawSurface::isValid() const bool DirectDrawSurface::isValid() const
{ {
if (stream->isError()) if (stream == NULL || stream->isError())
{ {
return false; return false;
} }

@ -113,10 +113,14 @@ namespace nv
class NVIMAGE_CLASS DirectDrawSurface class NVIMAGE_CLASS DirectDrawSurface
{ {
public: public:
DirectDrawSurface();
DirectDrawSurface(const char * file); DirectDrawSurface(const char * file);
DirectDrawSurface(Stream * stream); DirectDrawSurface(Stream * stream);
~DirectDrawSurface(); ~DirectDrawSurface();
bool load(const char * filename);
bool load(Stream * stream);
bool isValid() const; bool isValid() const;
bool isSupported() const; bool isSupported() const;
@ -153,7 +157,7 @@ namespace nv
private: private:
Stream * const stream; Stream * stream;
DDSHeader header; DDSHeader header;
DDSHeader10 header10; DDSHeader10 header10;
}; };

Loading…
Cancel
Save