From e5b4748bb44a12fd09a92f7d36986b4bda86e6bf Mon Sep 17 00:00:00 2001 From: sapier Date: Fri, 29 Aug 2014 01:35:35 +0200 Subject: [PATCH] Fix only one texture being updated on window resize breaking sidebyside and topbottom 3d modes --- src/drawscene.cpp | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/drawscene.cpp b/src/drawscene.cpp index 5d214d128..08b089908 100644 --- a/src/drawscene.cpp +++ b/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(screensize.X, screensize.Y)); - last_screensize = screensize; + driver->removeTexture(*texture); } + *texture = driver->addRenderTargetTexture( + core::dimension2d(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,