Commit 90672116 authored by Rogerborg's avatar Rogerborg

http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=183435#183435

Change IVideoDriver::writeImageToFile() to always use the IWriteFile filename rather than taking a separate extension.

Test updated.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2082 dfc29bdd-3216-0410-991c-e03cc46cb475
parent a603abe0
...@@ -839,14 +839,12 @@ namespace video ...@@ -839,14 +839,12 @@ namespace video
/** Requires that there is a suitable image writer registered /** Requires that there is a suitable image writer registered
for writing the image. for writing the image.
\param image Image to write. \param image Image to write.
\param file An already open io::IWriteFile object \param file An already open io::IWriteFile object. The name will be used to determine
\param extension A file extension that will identify the desired image the appropriate image writer to use.
writer, e.g. ".jpg"
\param param Control parameter for the backend (e.g. compression \param param Control parameter for the backend (e.g. compression
level). level).
\return True on successful write. */ \return True on successful write. */
virtual bool writeImageToFile(IImage* image, io::IWriteFile* file, virtual bool writeImageToFile(IImage* image, io::IWriteFile* file, u32 param = 0) = 0;
const c8* extension, u32 param = 0) = 0;
//! Creates a software image from a byte array. //! Creates a software image from a byte array.
/** No hardware texture will be created for this image. This /** No hardware texture will be created for this image. This
......
...@@ -1248,21 +1248,21 @@ bool CNullDriver::writeImageToFile(IImage* image, const char* filename,u32 param ...@@ -1248,21 +1248,21 @@ bool CNullDriver::writeImageToFile(IImage* image, const char* filename,u32 param
if(!file) if(!file)
return false; return false;
bool result = writeImageToFile(image, file, filename, param); bool result = writeImageToFile(image, file, param);
file->drop(); file->drop();
return result; return result;
} }
//! Writes the provided image to a file. //! Writes the provided image to a file.
bool CNullDriver::writeImageToFile(IImage* image, io::IWriteFile * file, const c8* extension, u32 param) bool CNullDriver::writeImageToFile(IImage* image, io::IWriteFile * file, u32 param)
{ {
if(!file) if(!file)
return false; return false;
for (u32 i=0; i<SurfaceWriter.size(); ++i) for (u32 i=0; i<SurfaceWriter.size(); ++i)
{ {
if (SurfaceWriter[i]->isAWriteableFileExtension(extension)) if (SurfaceWriter[i]->isAWriteableFileExtension(file->getFileName()))
{ {
bool written = SurfaceWriter[i]->writeImage(file, image, param); bool written = SurfaceWriter[i]->writeImage(file, image, param);
if (written) if (written)
......
...@@ -489,7 +489,7 @@ namespace video ...@@ -489,7 +489,7 @@ namespace video
virtual bool writeImageToFile(IImage* image, const char* filename, u32 param = 0); virtual bool writeImageToFile(IImage* image, const char* filename, u32 param = 0);
//! Writes the provided image to a file. //! Writes the provided image to a file.
virtual bool writeImageToFile(IImage* image, io::IWriteFile * file, const c8* extension, u32 param = 0); virtual bool writeImageToFile(IImage* image, io::IWriteFile * file, u32 param = 0);
//! Sets the name of a material renderer. //! Sets the name of a material renderer.
virtual void setMaterialRendererName(s32 idx, const char* name); virtual void setMaterialRendererName(s32 idx, const char* name);
......
Test suite pass at GMT Fri Jan 16 14:15:51 2009 Test suite pass at GMT Fri Jan 16 15:32:37 2009
...@@ -79,16 +79,16 @@ bool writeImageToFile(void) ...@@ -79,16 +79,16 @@ bool writeImageToFile(void)
} }
buffer = new c8[BUFFER_SIZE]; buffer = new c8[BUFFER_SIZE];
memoryFile = device->getFileSystem()->createMemoryWriteFile(buffer, BUFFER_SIZE, "foo", false); writtenFilename = "results" DIR_SEP_STRING "burnings video 0.39b-drawPixel.png";
if(!driver->writeImageToFile(screenshot, memoryFile, ".png")) memoryFile = device->getFileSystem()->createMemoryWriteFile(buffer, BUFFER_SIZE, writtenFilename, false);
if(!driver->writeImageToFile(screenshot, memoryFile))
{ {
logTestString("Failed to write png to memory file\n"); logTestString("Failed to write png to memory file\n");
assert(false); assert(false);
goto cleanup; goto cleanup;
} }
writtenFilename = "results" DIR_SEP_STRING "burnings video 0.39b-drawPixel.png"; writtenFile = device->getFileSystem()->createAndWriteFile(memoryFile->getFileName());
writtenFile = device->getFileSystem()->createAndWriteFile(writtenFilename);
if(!writtenFile) if(!writtenFile)
{ {
logTestString("Can't open %s for writing.\n", writtenFilename); logTestString("Can't open %s for writing.\n", writtenFilename);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment