Commit 259332ce authored by hybrid's avatar hybrid

Add test for correct rendering of bsp example with all drivers.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2731 dfc29bdd-3216-0410-991c-e03cc46cb475
parent d64c8b92
// Copyright (C) 2008-2009 Christian Stehno, Colin MacDonald
// No rights reserved: this software is in the public domain.
#include "testUtils.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
//! Tests lightmaps under all drivers that support them
static bool runTestWithDriver(E_DRIVER_TYPE driverType)
{
IrrlichtDevice *device = createDevice( driverType, dimension2d<u32>(160, 120), 32);
if (!device)
return true; // Treat a failure to create a driver as benign; this saves a lot of #ifdefs
IVideoDriver* driver = device->getVideoDriver();
ISceneManager * smgr = device->getSceneManager();
bool result = true;
bool added = device->getFileSystem()->addZipFileArchive("../media/map-20kdm2.pk3");
assert(added);
if(added)
{
ISceneNode * node = smgr->addOctTreeSceneNode(smgr->getMesh("20kdm2.bsp")->getMesh(0), 0, -1, 1024);
assert(node);
if (node)
{
node->setMaterialFlag(EMF_LIGHTING, false);
node->setPosition(core::vector3df(-1300,-820,-1249));
node->setScale(core::vector3df(1, 5, 1));
(void)smgr->addCameraSceneNode(0, core::vector3df(0,0,0), core::vector3df(40,100,30));
driver->beginScene(true, true, video::SColor(255,255,255,0));
smgr->drawAll();
driver->endScene();
result = takeScreenshotAndCompareAgainstReference(driver, "-lightmaps.png", 96);
}
}
device->drop();
return result;
}
bool lightMaps(void)
{
bool passed = true;
passed &= runTestWithDriver(EDT_BURNINGSVIDEO);
passed &= runTestWithDriver(EDT_DIRECT3D9);
passed &= runTestWithDriver(EDT_DIRECT3D8);
passed &= runTestWithDriver(EDT_OPENGL);
return passed;
}
...@@ -91,6 +91,7 @@ int main(int argumentCount, char * arguments[]) ...@@ -91,6 +91,7 @@ int main(int argumentCount, char * arguments[])
TEST(enumerateImageManipulators); TEST(enumerateImageManipulators);
TEST(testGeometryCreator); TEST(testGeometryCreator);
TEST(makeColorKeyTexture); TEST(makeColorKeyTexture);
TEST(lightMaps);
const unsigned int numberOfTests = tests.size(); const unsigned int numberOfTests = tests.size();
......
...@@ -148,8 +148,8 @@ static float fuzzyCompareImages(irr::video::IImage * image1, ...@@ -148,8 +148,8 @@ static float fuzzyCompareImages(irr::video::IImage * image1,
bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver, bool takeScreenshotAndCompareAgainstReference(irr::video::IVideoDriver * driver,
const char * fileName, const char * fileName,
irr::f32 requiredMatch) irr::f32 requiredMatch)
{ {
irr::video::IImage * screenshot = driver->createScreenShot(); irr::video::IImage * screenshot = driver->createScreenShot();
if(!screenshot) if(!screenshot)
......
Test suite pass at GMT Wed Sep 9 14:11:32 2009 Test suite pass at GMT Tue Oct 20 15:55:35 2009
...@@ -49,11 +49,11 @@ bool textureRenderStates(void) ...@@ -49,11 +49,11 @@ bool textureRenderStates(void)
{ {
bool passed = true; bool passed = true;
passed &= runTestWithDriver(EDT_OPENGL);
passed &= runTestWithDriver(EDT_SOFTWARE); passed &= runTestWithDriver(EDT_SOFTWARE);
passed &= runTestWithDriver(EDT_BURNINGSVIDEO); passed &= runTestWithDriver(EDT_BURNINGSVIDEO);
passed &= runTestWithDriver(EDT_DIRECT3D9); passed &= runTestWithDriver(EDT_DIRECT3D9);
passed &= runTestWithDriver(EDT_DIRECT3D8); passed &= runTestWithDriver(EDT_DIRECT3D8);
passed &= runTestWithDriver(EDT_OPENGL);
return passed; return passed;
} }
......
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