Skip to content
Permalink
Browse files

Fix only one texture being updated on window resize breaking sidebysi…

…de and topbottom 3d modes
  • Loading branch information...
sapier sapier
sapier authored and sapier committed Aug 28, 2014
1 parent fb2183b commit e5b4748bb44a12fd09a92f7d36986b4bda86e6bf
Showing with 7 additions and 13 deletions.
  1. +7 −13 src/drawscene.cpp
@@ -131,18 +131,12 @@ void draw_anaglyph_3d_mode(Camera& camera, bool show_hud, Hud& hud,
void init_texture(video::IVideoDriver* driver, const v2u32& screensize,
video::ITexture** texture)
{
static v2u32 last_screensize = v2u32(0,0);

if (( *texture == NULL ) || (screensize != last_screensize))
if (*texture != NULL)
{
if (*texture != NULL)
{
driver->removeTexture(*texture);
}
*texture = driver->addRenderTargetTexture(
core::dimension2d<u32>(screensize.X, screensize.Y));
last_screensize = screensize;
driver->removeTexture(*texture);
}
*texture = driver->addRenderTargetTexture(
core::dimension2d<u32>(screensize.X, screensize.Y));
}

video::ITexture* draw_image(const v2u32& screensize,
@@ -154,16 +148,16 @@ video::ITexture* draw_image(const v2u32& screensize,
video::SColor skycolor )
{
static video::ITexture* images[2] = { NULL, NULL };
static v2u32 last_screensize = v2u32(0,0);

video::ITexture* image = NULL;

if (psign == RIGHT)
{
if (screensize != last_screensize) {
init_texture(driver, screensize, &images[1]);
image = images[1];
} else {
init_texture(driver, screensize, &images[0]);
image = images[0];
last_screensize = screensize;
}

driver->setRenderTarget(image, true, true,

0 comments on commit e5b4748

Please sign in to comment.
You can’t perform that action at this time.