- Merged rev 5222-5223 from trunk.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@5224 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
0200408475
commit
bf3273cb5f
|
@ -175,7 +175,7 @@ int main()
|
|||
// draw scene into render target
|
||||
|
||||
// set render target texture
|
||||
driver->setRenderTarget(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(0,0,0,255));
|
||||
driver->setRenderTargetEx(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(0,0,0,255));
|
||||
|
||||
// make cube invisible and set fixed camera as active camera
|
||||
test->setVisible(false);
|
||||
|
@ -186,7 +186,7 @@ int main()
|
|||
|
||||
// set back old render target
|
||||
// The buffer might have been distorted, so clear it
|
||||
driver->setRenderTarget((video::IRenderTarget*)0, 0, video::SColor(0));
|
||||
driver->setRenderTargetEx(0, 0, video::SColor(0));
|
||||
|
||||
// make the cube visible and set the user controlled camera as active one
|
||||
test->setVisible(true);
|
||||
|
|
|
@ -25,6 +25,18 @@ namespace video
|
|||
{
|
||||
}
|
||||
|
||||
//! Returns an array of previously set textures.
|
||||
const core::array<ITexture*>& getTexture() const
|
||||
{
|
||||
return Texture;
|
||||
}
|
||||
|
||||
//! Returns a of previously set depth / depth-stencil texture.
|
||||
ITexture* getDepthStencil() const
|
||||
{
|
||||
return DepthStencil;
|
||||
}
|
||||
|
||||
//! Set multiple textures.
|
||||
/** Set multiple textures for the render target.
|
||||
\param texture Array of texture objects. These textures are used for a color outputs.
|
||||
|
|
|
@ -576,14 +576,15 @@ namespace video
|
|||
geometry with a render target as texture on it when you are rendering
|
||||
the scene into this render target at the same time. It is usually only
|
||||
possible to render into a texture between the
|
||||
IVideoDriver::beginScene() and endScene() method calls.
|
||||
IVideoDriver::beginScene() and endScene() method calls. If you need the
|
||||
best performance use this method instead of setRenderTarget.
|
||||
\param target Render target object.
|
||||
\param clearFlag A combination of the E_CLEAR_BUFFER_FLAG bit-flags.
|
||||
\param clearColor The clear color for the color buffer.
|
||||
\param clearDepth The clear value for the depth buffer.
|
||||
\param clearStencil The clear value for the stencil buffer.
|
||||
\return True if sucessful and false if not. */
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) = 0;
|
||||
|
||||
//! Sets a new render target.
|
||||
|
|
|
@ -764,7 +764,7 @@ void CD3D9Driver::setTextureCreationFlag(E_TEXTURE_CREATION_FLAG flag,
|
|||
CNullDriver::setTextureCreationFlag(flag, enabled);
|
||||
}
|
||||
|
||||
bool CD3D9Driver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool CD3D9Driver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
if (target && target->getDriverType() != EDT_DIRECT3D9)
|
||||
{
|
||||
|
|
|
@ -58,7 +58,7 @@ namespace video
|
|||
//! sets a material
|
||||
virtual void setMaterial(const SMaterial& material) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
//! sets a viewport
|
||||
|
|
|
@ -682,7 +682,7 @@ ITexture* CNullDriver::createDeviceDependentTextureCubemap(const io::path& name,
|
|||
return new SDummyTexture(name, ETT_CUBEMAP);
|
||||
}
|
||||
|
||||
bool CNullDriver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool CNullDriver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -717,11 +717,11 @@ bool CNullDriver::setRenderTarget(ITexture* texture, u16 clearFlag, SColor clear
|
|||
|
||||
SharedRenderTarget->setTexture(texture, depthTexture);
|
||||
|
||||
return setRenderTarget(SharedRenderTarget, clearFlag, clearColor, clearDepth, clearStencil);
|
||||
return setRenderTargetEx(SharedRenderTarget, clearFlag, clearColor, clearDepth, clearStencil);
|
||||
}
|
||||
else
|
||||
{
|
||||
return setRenderTarget((IRenderTarget*)0, clearFlag, clearColor, clearDepth, clearStencil);
|
||||
return setRenderTargetEx(0, clearFlag, clearColor, clearDepth, clearStencil);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ namespace video
|
|||
virtual ITexture* addTextureCubemap(const io::path& name, IImage* imagePosX, IImage* imageNegX, IImage* imagePosY,
|
||||
IImage* imageNegY, IImage* imagePosZ, IImage* imageNegZ) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(ITexture* texture, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
|
|
|
@ -2382,7 +2382,7 @@ COGLES2Driver::~COGLES2Driver()
|
|||
return 65535;
|
||||
}
|
||||
|
||||
bool COGLES2Driver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool COGLES2Driver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
if (target && target->getDriverType() != EDT_OGLES2)
|
||||
{
|
||||
|
|
|
@ -268,7 +268,7 @@ namespace video
|
|||
virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
|
||||
const io::path& name, const ECOLOR_FORMAT format = ECF_UNKNOWN) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255, 0, 0, 0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255, 0, 0, 0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
virtual void clearBuffers(u16 flag, SColor color = SColor(255, 0, 0, 0), f32 depth = 1.f, u8 stencil = 0) _IRR_OVERRIDE_;
|
||||
|
|
|
@ -2698,7 +2698,7 @@ ITexture* COGLES1Driver::addRenderTargetTexture(const core::dimension2d<u32>& si
|
|||
destSize = destSize.getOptimalSize((size == size.getOptimalSize()), false, false);
|
||||
}
|
||||
|
||||
COGLES1Texture* renderTargetTexture = new COGLES1Texture(name, size, format, this);
|
||||
COGLES1Texture* renderTargetTexture = new COGLES1Texture(name, destSize, format, this);
|
||||
addTexture(renderTargetTexture);
|
||||
renderTargetTexture->drop();
|
||||
|
||||
|
@ -2715,7 +2715,7 @@ u32 COGLES1Driver::getMaximalPrimitiveCount() const
|
|||
return 65535;
|
||||
}
|
||||
|
||||
bool COGLES1Driver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool COGLES1Driver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
if (target && target->getDriverType() != EDT_OGLES1)
|
||||
{
|
||||
|
|
|
@ -255,7 +255,7 @@ namespace video
|
|||
virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
|
||||
const io::path& name, const ECOLOR_FORMAT format = ECF_UNKNOWN) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255, 0, 0, 0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255, 0, 0, 0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
virtual void clearBuffers(u16 flag, SColor color = SColor(255, 0, 0, 0), f32 depth = 1.f, u8 stencil = 0) _IRR_OVERRIDE_;
|
||||
|
|
|
@ -3650,11 +3650,7 @@ ITexture* COpenGLDriver::addRenderTargetTexture(const core::dimension2d<u32>& si
|
|||
bool generateMipLevels = getTextureCreationFlag(ETCF_CREATE_MIP_MAPS);
|
||||
setTextureCreationFlag(ETCF_CREATE_MIP_MAPS, false);
|
||||
|
||||
bool supportForFBO = false;
|
||||
|
||||
#if defined(GL_VERSION_3_0) || defined(GL_ARB_framebuffer_object) || defined(GL_EXT_framebuffer_object)
|
||||
supportForFBO = FeatureAvailable[IRR_EXT_framebuffer_object] || FeatureAvailable[IRR_ARB_framebuffer_object];
|
||||
#endif
|
||||
bool supportForFBO = (Feature.ColorAttachment > 0);
|
||||
|
||||
core::dimension2du destSize(size);
|
||||
|
||||
|
@ -3664,7 +3660,7 @@ ITexture* COpenGLDriver::addRenderTargetTexture(const core::dimension2d<u32>& si
|
|||
destSize = destSize.getOptimalSize((size == size.getOptimalSize()), false, false);
|
||||
}
|
||||
|
||||
COpenGLTexture* renderTargetTexture = new COpenGLTexture(name, size, format, this);
|
||||
COpenGLTexture* renderTargetTexture = new COpenGLTexture(name, destSize, format, this);
|
||||
addTexture(renderTargetTexture);
|
||||
renderTargetTexture->drop();
|
||||
|
||||
|
@ -3683,7 +3679,7 @@ u32 COpenGLDriver::getMaximalPrimitiveCount() const
|
|||
return 0x7fffffff;
|
||||
}
|
||||
|
||||
bool COpenGLDriver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool COpenGLDriver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
if (target && target->getDriverType() != EDT_OPENGL)
|
||||
{
|
||||
|
@ -4096,14 +4092,23 @@ void COpenGLDriver::getColorFormatParameters(ECOLOR_FORMAT format, GLint& intern
|
|||
case ECF_D16:
|
||||
internalFormat = GL_DEPTH_COMPONENT16;
|
||||
pixelFormat = GL_DEPTH_COMPONENT;
|
||||
pixelType = GL_UNSIGNED_BYTE;
|
||||
pixelType = GL_UNSIGNED_SHORT;
|
||||
break;
|
||||
case ECF_D32:
|
||||
internalFormat = GL_DEPTH_COMPONENT32;
|
||||
pixelFormat = GL_DEPTH_COMPONENT;
|
||||
pixelType = GL_UNSIGNED_BYTE;
|
||||
pixelType = GL_UNSIGNED_INT;
|
||||
break;
|
||||
case ECF_D24S8:
|
||||
#ifdef GL_VERSION_3_0
|
||||
if (Version >= 300)
|
||||
{
|
||||
internalFormat = GL_DEPTH_STENCIL;
|
||||
pixelFormat = GL_DEPTH_STENCIL;
|
||||
pixelType = GL_UNSIGNED_INT_24_8;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
#ifdef GL_EXT_packed_depth_stencil
|
||||
if (queryOpenGLFeature(COpenGLExtensionHandler::IRR_EXT_packed_depth_stencil))
|
||||
{
|
||||
|
|
|
@ -336,7 +336,7 @@ namespace video
|
|||
virtual ITexture* addRenderTargetTexture(const core::dimension2d<u32>& size,
|
||||
const io::path& name, const ECOLOR_FORMAT format = ECF_UNKNOWN) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
virtual void clearBuffers(u16 flag, SColor color = SColor(255,0,0,0), f32 depth = 1.f, u8 stencil = 0) _IRR_OVERRIDE_;
|
||||
|
|
|
@ -252,7 +252,7 @@ ITexture* CSoftwareDriver::createDeviceDependentTexture(const io::path& name, II
|
|||
return texture;
|
||||
}
|
||||
|
||||
bool CSoftwareDriver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool CSoftwareDriver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
if (target && target->getDriverType() != EDT_SOFTWARE)
|
||||
{
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace video
|
|||
//! sets a material
|
||||
virtual void setMaterial(const SMaterial& material) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
//! sets a viewport
|
||||
|
|
|
@ -409,7 +409,7 @@ bool CBurningVideoDriver::endScene()
|
|||
return Presenter->present(BackBuffer, WindowId, SceneSourceRect);
|
||||
}
|
||||
|
||||
bool CBurningVideoDriver::setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
bool CBurningVideoDriver::setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor, f32 clearDepth, u8 clearStencil)
|
||||
{
|
||||
if (target && target->getDriverType() != EDT_BURNINGSVIDEO)
|
||||
{
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace video
|
|||
//! sets a material
|
||||
virtual void setMaterial(const SMaterial& material) _IRR_OVERRIDE_;
|
||||
|
||||
virtual bool setRenderTarget(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
virtual bool setRenderTargetEx(IRenderTarget* target, u16 clearFlag, SColor clearColor = SColor(255,0,0,0),
|
||||
f32 clearDepth = 1.f, u8 clearStencil = 0) _IRR_OVERRIDE_;
|
||||
|
||||
//! sets a viewport
|
||||
|
|
|
@ -41,9 +41,9 @@ bool testWithRenderTarget(video::E_DRIVER_TYPE driverType)
|
|||
//draw the 256x256 water image on the rendertarget:
|
||||
|
||||
|
||||
driver->setRenderTarget(renderTarget,video::ECBF_COLOR|video::ECBF_DEPTH,video::SColor(255,0,0,255));//Rendertarget background is blue
|
||||
driver->setRenderTargetEx(renderTarget,video::ECBF_COLOR|video::ECBF_DEPTH,video::SColor(255,0,0,255));//Rendertarget background is blue
|
||||
driver->draw2DImage(tex, core::position2d<s32>(0,0), core::recti(0,0,32,32));
|
||||
driver->setRenderTarget((video::IRenderTarget*)0, 0);
|
||||
driver->setRenderTargetEx(0, 0);
|
||||
|
||||
//draw the rendertarget on screen:
|
||||
//this should normally draw a 64x64 image containing a 32x32 image in the top left corner
|
||||
|
@ -165,9 +165,9 @@ bool testExactPlacement(video::E_DRIVER_TYPE driverType)
|
|||
video::ITexture* tex=driver->getTexture("../media/fireball.bmp");
|
||||
|
||||
driver->beginScene(video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,40,40,255));//Backbuffer background is blue
|
||||
driver->setRenderTarget(renderTarget, 0, video::ECBF_COLOR | video::ECBF_DEPTH);
|
||||
driver->setRenderTargetEx(renderTarget, 0, video::ECBF_COLOR | video::ECBF_DEPTH);
|
||||
driver->draw2DImage(tex, core::recti(0,0,32,32), core::recti(0,0,64,64));
|
||||
driver->setRenderTarget((video::IRenderTarget*)0, 0, 0);
|
||||
driver->setRenderTargetEx(0, 0, 0);
|
||||
driver->endScene();
|
||||
|
||||
video::IImage* img = driver->createImage(renderTargetTex, core::vector2di(), renderTargetTex->getSize());
|
||||
|
|
|
@ -64,9 +64,9 @@ static bool testWithDriver(video::E_DRIVER_TYPE driverType)
|
|||
|
||||
driver->beginScene(video::ECBF_COLOR, video::SColor(255, 0, 0, 0));
|
||||
// render
|
||||
driver->setRenderTarget(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,0,0,0));
|
||||
driver->setRenderTargetEx(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,0,0,0));
|
||||
device->getSceneManager()->drawAll();
|
||||
driver->setRenderTarget((video::IRenderTarget*)0, 0, video::SColor(255, 0, 0, 0));
|
||||
driver->setRenderTargetEx(0, 0, video::SColor(255, 0, 0, 0));
|
||||
|
||||
// draw debug rt
|
||||
driver->draw2DImage(renderTargetTex[0], core::position2d<s32>(0,0));
|
||||
|
@ -80,9 +80,9 @@ static bool testWithDriver(video::E_DRIVER_TYPE driverType)
|
|||
driver->beginScene(video::ECBF_COLOR, video::SColor(255, 0, 0, 0));
|
||||
// render
|
||||
device->getSceneManager()->getActiveCamera()->setPosition(core::vector3df(0,0,-15));
|
||||
driver->setRenderTarget(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,0,0,0));
|
||||
driver->setRenderTargetEx(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,0,0,0));
|
||||
device->getSceneManager()->drawAll();
|
||||
driver->setRenderTarget((video::IRenderTarget*)0, 0, video::SColor(255,0,0,0));
|
||||
driver->setRenderTargetEx(0, 0, video::SColor(255,0,0,0));
|
||||
|
||||
// draw debug rt
|
||||
driver->draw2DImage(renderTargetTex[0], core::position2d<s32>(0,0));
|
||||
|
|
|
@ -190,9 +190,9 @@ bool rttAndZBuffer(video::E_DRIVER_TYPE driverType)
|
|||
|
||||
{
|
||||
vd->beginScene(video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255, 0, 0, 0));
|
||||
vd->setRenderTarget(renderTarget, 0, video::ECBF_COLOR | video::ECBF_DEPTH);
|
||||
vd->setRenderTargetEx(renderTarget, 0, video::ECBF_COLOR | video::ECBF_DEPTH);
|
||||
sm->drawAll();
|
||||
vd->setRenderTarget((video::IRenderTarget*)0, 0, 0);
|
||||
vd->setRenderTargetEx(0, 0, 0);
|
||||
vd->setTransform(video::ETS_WORLD, core::IdentityMatrix);
|
||||
vd->setTransform(video::ETS_VIEW, core::IdentityMatrix);
|
||||
vd->setTransform(video::ETS_PROJECTION, core::IdentityMatrix);
|
||||
|
@ -242,10 +242,10 @@ bool rttAndText(video::E_DRIVER_TYPE driverType)
|
|||
stabilizeScreenBackground(driver);
|
||||
|
||||
driver->beginScene(video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,255, 255, 255));
|
||||
driver->setRenderTarget(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,255,0,255));
|
||||
driver->setRenderTargetEx(renderTarget, video::ECBF_COLOR | video::ECBF_DEPTH, video::SColor(255,255,0,255));
|
||||
driver->draw2DImage(driver->getTexture("../media/fireball.bmp"), core::recti(0, 0, renderTargetTex->getSize().Width, renderTargetTex->getSize().Height), core::recti(0, 0, 64, 64));
|
||||
guienv->getBuiltInFont()->draw(L"OMGGG =!", core::rect<s32>(120, 100, 256, 256), video::SColor(255, 0, 0, 255));
|
||||
driver->setRenderTarget((video::IRenderTarget*)0, 0, 0);
|
||||
driver->setRenderTargetEx(0, 0, 0);
|
||||
driver->endScene();
|
||||
|
||||
scene::ISceneManager* smgr = device->getSceneManager();
|
||||
|
@ -286,7 +286,7 @@ static void Render(IrrlichtDevice* device, video::IRenderTarget* rt, core::vecto
|
|||
core::vector3df& pos2, scene::IAnimatedMesh* sphereMesh, core::vector3df& pos3, core::vector3df& pos4)
|
||||
{
|
||||
video::IVideoDriver* driver = device->getVideoDriver();
|
||||
driver->setRenderTarget(rt, 0, video::ECBF_COLOR | video::ECBF_DEPTH);
|
||||
driver->setRenderTargetEx(rt, 0, video::ECBF_COLOR | video::ECBF_DEPTH);
|
||||
device->getSceneManager()->drawAll();
|
||||
|
||||
video::SMaterial mat;
|
||||
|
@ -398,7 +398,7 @@ bool rttAndAntiAliasing(video::E_DRIVER_TYPE driverType)
|
|||
Render(device, renderTarget3, pos1, pos2, sphereMesh, pos3, pos4);
|
||||
Render(device, renderTarget4, pos1, pos2, sphereMesh, pos3, pos4);
|
||||
|
||||
device->getVideoDriver()->setRenderTarget((video::IRenderTarget*)0, 0, 0);
|
||||
device->getVideoDriver()->setRenderTargetEx(0, 0, 0);
|
||||
device->getVideoDriver()->draw2DImage(renderTargetTex1, core::position2di(0, 0));
|
||||
device->getVideoDriver()->draw2DImage(renderTargetTex2, core::position2di(80, 0));
|
||||
device->getVideoDriver()->draw2DImage(renderTargetTex3, core::position2di(0, 60));
|
||||
|
|
|
@ -280,8 +280,8 @@ static float fuzzyCompareImages(irr::video::IImage * image1,
|
|||
return 0.f;
|
||||
}
|
||||
|
||||
u8 * image1Data = (u8*)image1->lock();
|
||||
u8 * image2Data = (u8*)image2->lock();
|
||||
u8 * image1Data = (u8*)image1->getData();
|
||||
u8 * image2Data = (u8*)image2->getData();
|
||||
|
||||
const u32 pixels = (image1->getPitch() * image1->getDimension().Height) / 4;
|
||||
u32 mismatchedColours = 0;
|
||||
|
@ -304,9 +304,6 @@ static float fuzzyCompareImages(irr::video::IImage * image1,
|
|||
mismatchedColours += abs(r1 - r2) + abs(g1 - g2) + abs(b1 - b2);
|
||||
}
|
||||
|
||||
image1->unlock();
|
||||
image2->unlock();
|
||||
|
||||
const u32 totalColours = pixels * 255*3;
|
||||
return 100.f * (totalColours - mismatchedColours) / totalColours;
|
||||
}
|
||||
|
@ -358,7 +355,7 @@ void stabilizeScreenBackground(irr::video::IVideoDriver * driver,
|
|||
screenshot = fixedScreenshot;
|
||||
}
|
||||
|
||||
u8 * image1Data = (u8*)screenshot->lock();
|
||||
u8 * image1Data = (u8*)screenshot->getData();
|
||||
|
||||
const u32 pixels = (screenshot->getPitch() * screenshot->getDimension().Height) / 4;
|
||||
bool status = true;
|
||||
|
|
|
@ -53,7 +53,8 @@ bool renderMipLevels(video::E_DRIVER_TYPE driverType)
|
|||
}
|
||||
}
|
||||
|
||||
video::ITexture* tex = driver->addTexture("miptest", image, mipdata);
|
||||
image->setMipMapsData(mipdata, false, true);
|
||||
video::ITexture* tex = driver->addTexture("miptest", image);
|
||||
if (!tex)
|
||||
// is probably an error in the mipdata handling
|
||||
return false;
|
||||
|
@ -131,7 +132,9 @@ bool lockAllMipLevels(video::E_DRIVER_TYPE driverType)
|
|||
}
|
||||
}
|
||||
|
||||
video::ITexture* tex = driver->addTexture("miptest", image, mipdata);
|
||||
image->setMipMapsData(mipdata, false, true);
|
||||
video::ITexture* tex = driver->addTexture("miptest", image);
|
||||
|
||||
if (!tex)
|
||||
// is probably an error in the mipdata handling
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue