Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix only one texture being updated on window resize breaking sidebysi…
…de and topbottom 3d modes
  • Loading branch information
sapier authored and sapier committed Aug 28, 2014
1 parent fb2183b commit e5b4748
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions src/drawscene.cpp
Expand Up @@ -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,
Expand All @@ -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,
Expand Down

0 comments on commit e5b4748

Please sign in to comment.