void pass(spNativeTexture srcTexture, const Rect& srcRect, spNativeTexture destTexture, const Rect& destRect, const Color& color) { IVideoDriver* driver = IVideoDriver::instance; const VertexDeclarationGL* decl = static_cast<const VertexDeclarationGL*>(driver->getVertexDeclaration(vertexPCT2::FORMAT)); driver->setRenderTarget(destTexture); driver->clear(0); driver->setViewport(destRect); driver->setTexture(0, srcTexture); vertexPCT2 v[4]; RectF dst = srcRect.cast<RectF>() / Vector2((float)srcTexture->getWidth(), (float)srcTexture->getHeight()); fillQuadT(v, dst, RectF(-1, -1, 2, 2), AffineTransform::getIdentity(), color.rgba()); driver->draw(IVideoDriver::PT_TRIANGLE_STRIP, decl, v, sizeof(v)); driver->setTexture(0, 0); }