Fix issue with render target in OpenGL when size not specified

This commit is contained in:
kaetemi 2014-07-31 17:41:56 +02:00
parent 029d9bddfe
commit 74c4c09211

View file

@ -2314,11 +2314,16 @@ bool CDriverGL::setRenderTarget (ITexture *tex, uint32 x, uint32 y, uint32 width
if(tex->isBloomTexture() && supportBloomEffect()) if(tex->isBloomTexture() && supportBloomEffect())
{ {
// NOTE: No support for mip map level here!
uint32 w, h; uint32 w, h;
getWindowSize(w, h); getWindowSize(w, h);
getViewport(_OldViewport); getViewport(_OldViewport);
if (!width) width = tex->getWidth();
if (!height) height = tex->getHeight();
CViewport newVP; CViewport newVP;
newVP.init(0, 0, ((float)width/(float)w), ((float)height/(float)h)); newVP.init(0, 0, ((float)width/(float)w), ((float)height/(float)h));
setupViewport(newVP); setupViewport(newVP);
@ -2401,7 +2406,7 @@ bool CDriverGL::copyTargetToTexture (ITexture *tex,
bool CDriverGL::getRenderTargetSize (uint32 &width, uint32 &height) bool CDriverGL::getRenderTargetSize (uint32 &width, uint32 &height)
{ {
H_AUTO_OGL(CDriverGL_getRenderTargetSize) H_AUTO_OGL(CDriverGL_getRenderTargetSize)
NLMISC::CSmartPtr<ITexture> tex = _TextureTarget ? _TextureTarget : (_RenderTargetFBO ? _RenderTargetFBO : NULL); NLMISC::CSmartPtr<ITexture> tex = _RenderTargetFBO ? _RenderTargetFBO : (_TextureTarget ? _TextureTarget : NULL);
if (tex) if (tex)
{ {
width = tex->getWidth(); width = tex->getWidth();