Vermutlich nicht mehr aktuell, aber ich hatte gerade das gleiche Problem und habs anders gelöst, weil Irrlicht kann das nämlich selber.
Ist zwar c++ Code aber das macht im Grunde ja nichts.
Man muss einfach nur das original Rect angeben und das Rect in welches das Bild gezeichnet werden soll. Die Größe des Ziel Rect's kann größer oder aber auch kleiner als das original Rect sein.
Code:
irr::core::rect<irr::s32> dst(0, 0, screenWidthValue, screenHeightValue);
this->deviceValue->getVideoDriver()->draw2DImage(this->backgroundImageValue,
irr::core::position2d<irr::s32>(0, 0),
irr::core::rect<irr::s32>(0, 0, backgroundImageValue->getSize().Width, backgroundImageValue->getSize().Height),
&dst,
irr::video::SColor(255, 255, 255, 255),
false);