Add another test for pixel exact 2d rendering
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3826 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
0c18bf9e8a
commit
f22fe54680
|
@ -16,6 +16,15 @@ bool testWithRenderTarget(video::E_DRIVER_TYPE driverType)
|
|||
|
||||
video::IVideoDriver* driver = device->getVideoDriver();
|
||||
|
||||
if (!driver->queryFeature(video::EVDF_RENDER_TO_TARGET))
|
||||
{
|
||||
device->closeDevice();
|
||||
device->run();
|
||||
device->drop();
|
||||
return true;
|
||||
}
|
||||
logTestString("Testing driver %ls\n", driver->getName());
|
||||
|
||||
video::ITexture* RenderTarget=driver->addRenderTargetTexture(core::dimension2d<u32>(64,64), "BASEMAP");
|
||||
|
||||
video::ITexture *tex=driver->getTexture("../media/water.jpg");
|
||||
|
@ -53,6 +62,8 @@ bool testWithPNG(video::E_DRIVER_TYPE driverType)
|
|||
|
||||
video::IVideoDriver* driver = device->getVideoDriver();
|
||||
|
||||
logTestString("Testing driver %ls\n", driver->getName());
|
||||
|
||||
video::ITexture *tex=driver->getTexture("media/RedbrushAlpha-0.25.png");
|
||||
|
||||
driver->beginScene(true, true, video::SColor(255,40,40,255));//Backbuffer background is blue
|
||||
|
@ -68,12 +79,54 @@ bool testWithPNG(video::E_DRIVER_TYPE driverType)
|
|||
return result;
|
||||
}
|
||||
|
||||
// draws an image and checks if the written example equals the original image
|
||||
bool testExactPlacement(video::E_DRIVER_TYPE driverType)
|
||||
{
|
||||
// create device
|
||||
|
||||
IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D9, core::dimension2d<u32>(160,120), 32);
|
||||
|
||||
if (device == 0)
|
||||
return true; // could not create selected driver.
|
||||
|
||||
video::IVideoDriver* driver = device->getVideoDriver();
|
||||
|
||||
if (driver->getColorFormat() != video::ECF_A8R8G8B8 || !driver->queryFeature(video::EVDF_RENDER_TO_TARGET))
|
||||
{
|
||||
device->closeDevice();
|
||||
device->run();
|
||||
device->drop();
|
||||
return true;
|
||||
}
|
||||
logTestString("Testing driver %ls\n", driver->getName());
|
||||
|
||||
video::ITexture* rt=driver->addRenderTargetTexture(core::dimension2d<u32>(32,32), "rt1");
|
||||
video::ITexture *tex=driver->getTexture("../media/fireball.bmp");
|
||||
|
||||
driver->beginScene(true, true, video::SColor(255,40,40,255));//Backbuffer background is blue
|
||||
driver->setRenderTarget(rt);
|
||||
driver->draw2DImage(tex, core::recti(0,0,32,32), core::recti(0,0,64,64));
|
||||
driver->setRenderTarget(0);
|
||||
driver->endScene();
|
||||
|
||||
video::IImage* img = driver->createImage(rt, core::vector2di(), rt->getSize());
|
||||
driver->writeImageToFile(img, "results/fireball.png");
|
||||
bool result = binaryCompareFiles("media/fireball.png", "results/fireball.png");
|
||||
|
||||
device->closeDevice();
|
||||
device->run();
|
||||
device->drop();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool draw2DImage()
|
||||
{
|
||||
bool result = true;
|
||||
TestWithAllDrivers(testWithRenderTarget);
|
||||
TestWithAllDrivers(testExactPlacement);
|
||||
TestWithAllHWDrivers(testWithPNG);
|
||||
return result;
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 974 B |
Loading…
Reference in New Issue