2009-01-14 04:37:51 -08:00
|
|
|
#include "testUtils.h"
|
2009-08-24 02:12:27 -07:00
|
|
|
|
2009-01-14 04:37:51 -08:00
|
|
|
using namespace irr;
|
|
|
|
|
2010-09-13 04:24:14 -07:00
|
|
|
bool testWithDriver(video::E_DRIVER_TYPE driverType)
|
2009-01-14 04:37:51 -08:00
|
|
|
{
|
|
|
|
IrrlichtDevice *device =
|
2010-09-13 04:24:14 -07:00
|
|
|
createDevice(driverType, core::dimension2du(160, 120));
|
|
|
|
if (!device)
|
|
|
|
return true;
|
|
|
|
|
2009-01-14 04:37:51 -08:00
|
|
|
video::IVideoDriver* driver = device->getVideoDriver();
|
|
|
|
|
|
|
|
driver->beginScene(true, true, video::SColor(255,100,101,140));
|
|
|
|
|
|
|
|
core::recti r;
|
|
|
|
r.UpperLeftCorner = core::position2di(1,1);
|
|
|
|
r.LowerRightCorner = core::position2di(100,100);
|
|
|
|
driver->draw2DRectangleOutline( r );
|
|
|
|
|
|
|
|
r += core::position2di( 10 , 10 );
|
|
|
|
driver->draw2DRectangleOutline( r , video::SColor(128, 255, 128, 128) );
|
|
|
|
|
2010-09-13 04:24:14 -07:00
|
|
|
driver->getMaterial2D().Thickness=12.f;
|
|
|
|
driver->enableMaterial2D();
|
|
|
|
r += core::position2di( 10 , 10 );
|
|
|
|
driver->draw2DRectangleOutline( r , video::SColor(128, 255, 128, 128) );
|
|
|
|
|
2009-01-14 04:37:51 -08:00
|
|
|
driver->endScene();
|
|
|
|
|
2010-12-11 16:06:13 -08:00
|
|
|
bool result = takeScreenshotAndCompareAgainstReference(driver, "-drawRectOutline.png", 98.5f );
|
2009-01-14 04:37:51 -08:00
|
|
|
|
2010-09-14 00:24:33 -07:00
|
|
|
device->closeDevice();
|
|
|
|
device->run();
|
2009-01-14 04:37:51 -08:00
|
|
|
device->drop();
|
|
|
|
|
|
|
|
return result ;
|
|
|
|
}
|
2010-09-13 04:24:14 -07:00
|
|
|
|
|
|
|
bool drawRectOutline(void)
|
|
|
|
{
|
|
|
|
// TODO: Only OpenGL supports thick lines
|
|
|
|
bool result = testWithDriver(video::EDT_BURNINGSVIDEO);
|
|
|
|
result &= testWithDriver(video::EDT_DIRECT3D8);
|
|
|
|
result &= testWithDriver(video::EDT_DIRECT3D9);
|
|
|
|
result &= testWithDriver(video::EDT_OPENGL);
|
|
|
|
result &= testWithDriver(video::EDT_SOFTWARE);
|
|
|
|
return result;
|
|
|
|
}
|