Commit 96b3d0be authored by bitplane's avatar bitplane

Fixed bug with Maya cam animator absorbing all wheel events (1983850)

OpenGL render target flip now works with texture clamping (assuming tcoords are 0.0 to 1.0)
Quick fix for crash when removing old hardware buffers.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1366 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 5ac04338
...@@ -1277,6 +1277,9 @@ void CNullDriver::updateAllHardwareBuffers() ...@@ -1277,6 +1277,9 @@ void CNullDriver::updateAllHardwareBuffers()
if (Link->LastUsed>20000) if (Link->LastUsed>20000)
{ {
deleteHardwareBuffer(Link); deleteHardwareBuffer(Link);
// todo: needs better fix
Iterator = HWBufferMap.getParentFirstIterator();
} }
} }
} }
......
...@@ -348,6 +348,9 @@ bool COpenGLDriver::genericDriverInit(const core::dimension2d<s32>& screenSize, ...@@ -348,6 +348,9 @@ bool COpenGLDriver::genericDriverInit(const core::dimension2d<s32>& screenSize,
// set fog mode // set fog mode
setFog(FogColor, LinearFog, FogStart, FogEnd, FogDensity, PixelFog, RangeFog); setFog(FogColor, LinearFog, FogStart, FogEnd, FogDensity, PixelFog, RangeFog);
// create matrix for flipping textures
TextureFlipMatrix.buildTextureTransform(0.0f, core::vector2df(0,0), core::vector2df(0,1.0f), core::vector2df(1.0f,-1.0f));
return true; return true;
} }
...@@ -509,9 +512,11 @@ void COpenGLDriver::setTransform(E_TRANSFORMATION_STATE state, const core::matri ...@@ -509,9 +512,11 @@ void COpenGLDriver::setTransform(E_TRANSFORMATION_STATE state, const core::matri
glLoadIdentity(); glLoadIdentity();
else else
{ {
createGLTextureMatrix(glmat, mat);
if (isRTT) if (isRTT)
glmat[5] *= -1.0f; createGLTextureMatrix(glmat, mat * TextureFlipMatrix);
else
createGLTextureMatrix(glmat, mat);
glLoadMatrixf(glmat); glLoadMatrixf(glmat);
} }
break; break;
......
...@@ -389,6 +389,8 @@ namespace video ...@@ -389,6 +389,8 @@ namespace video
core::stringc vendorName; core::stringc vendorName;
core::matrix4 TextureFlipMatrix;
#ifdef _IRR_WINDOWS_API_ #ifdef _IRR_WINDOWS_API_
HDC HDc; // Private GDI Device Context HDC HDc; // Private GDI Device Context
HWND Window; HWND Window;
......
...@@ -73,7 +73,7 @@ bool CSceneNodeAnimatorCameraMaya::OnEvent(const SEvent& event) ...@@ -73,7 +73,7 @@ bool CSceneNodeAnimatorCameraMaya::OnEvent(const SEvent& event)
break; break;
case EMIE_MOUSE_WHEEL: case EMIE_MOUSE_WHEEL:
case EMIE_COUNT: case EMIE_COUNT:
break; return false;
} }
return true; return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment