This is normal render with code:

Code: Select all
driver->beginScene();
driver->draw2DImage(BG, rect<s32>(0,0,renderSize.Width,renderSize.Height), rect<s32>(0,0,1024,1024));
smgr->drawAll();
driver->endScene();
Code: Select all
driver->beginScene();
driver->setRenderTarget(scr);
driver->draw2DImage(BG, rect<s32>(0,0,renderSize.Width,renderSize.Height), rect<s32>(0,0,1024,1024));
smgr->drawAll();
scrQuad.setTexture(scr);
scrQuad.render();
driver->endScene();Code: Select all
class ScreenQuad
{
IVideoDriver *driver;
S3DVertex vertices[4];
u16 indices[6];
SMaterial mat;
public:
ScreenQuad(IVideoDriver *_driver)
{
driver = _driver;
vertices[0] = S3DVertex(vector3df(-1, 1, 0), vector3df(0, 0, 1), SColor(255,255,255,255), vector2df(0, 0));
vertices[1] = S3DVertex(vector3df(1, 1, 0), vector3df(0, 0, 1), SColor(255,255,255,255), vector2df(1, 0));
vertices[2] = S3DVertex(vector3df(1, -1, 0), vector3df(0, 0, 1), SColor(255,255,255,255), vector2df(1, 1));
vertices[3] = S3DVertex(vector3df(-1, -1, 0), vector3df(0, 0, 1), SColor(255,255,255,255), vector2df(0, 1));
indices[0] = 0;
indices[1] = 1;
indices[2] = 3;
indices[3] = 1;
indices[4] = 2;
indices[5] = 3;
mat.BackfaceCulling = false;
mat.ZWriteEnable = false;
mat.Lighting = false;
}
inline void setTexture(ITexture *_tex, int id=0)
{
mat.TextureLayer[id].Texture = _tex;
mat.TextureLayer[id].TextureWrapU = ETC_CLAMP_TO_EDGE;
mat.TextureLayer[id].TextureWrapV = ETC_CLAMP_TO_EDGE;
}
inline void setMaterialType(E_MATERIAL_TYPE mt)
{
mat.MaterialType = mt;
}
void render(ITexture *rt=0)
{
matrix4 oldWorld = driver->getTransform(ETS_WORLD);
matrix4 oldView = driver->getTransform(ETS_VIEW);
matrix4 oldProj = driver->getTransform(ETS_PROJECTION);
driver->setRenderTarget(rt);
driver->setMaterial(mat);
driver->setTransform(ETS_WORLD, IdentityMatrix);
driver->setTransform(ETS_VIEW, IdentityMatrix);
driver->setTransform(ETS_PROJECTION, IdentityMatrix);
driver->drawIndexedTriangleList(vertices, 4, indices, 2);
driver->setTransform(ETS_WORLD, oldWorld);
driver->setTransform(ETS_VIEW, oldView);
driver->setTransform(ETS_PROJECTION, oldProj);
}
};