Vertical scale factor support added - fixes Crazy Taxi pause menu background positioning
This commit is contained in:
parent
7869a84f88
commit
8d4188159e
|
@ -432,6 +432,17 @@ void createTexture(u32 w, u32 h, u32 textureFormat, u32 textureType, GLuint & te
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, textureFormat, w, h, 0, textureFormat, textureType, 0);
|
glTexImage2D(GL_TEXTURE_2D, 0, textureFormat, w, h, 0, textureFormat, textureType, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double binaryFractionToDouble(u32 numberIntegerPart, u32 numberFractionalPart, u32 fractionalPartLength)
|
||||||
|
{
|
||||||
|
double sum = 0;
|
||||||
|
|
||||||
|
for (u32 i = 1; i <= fractionalPartLength; ++i) {
|
||||||
|
sum += !!(numberFractionalPart & (1 << fractionalPartLength - i)) * pow(.5, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return numberIntegerPart + sum;
|
||||||
|
}
|
||||||
|
|
||||||
map<u32, FBT> renderedTextures;
|
map<u32, FBT> renderedTextures;
|
||||||
|
|
||||||
void BindRTT(u32 addy, u32 fbw, u32 fbh, u32 channels, u32 fmt)
|
void BindRTT(u32 addy, u32 fbw, u32 fbh, u32 channels, u32 fmt)
|
||||||
|
@ -446,6 +457,12 @@ void BindRTT(u32 addy, u32 fbw, u32 fbh, u32 channels, u32 fmt)
|
||||||
renderedTexture = &renderedTextures[location];
|
renderedTexture = &renderedTextures[location];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 fbhViewport = fbh;
|
||||||
|
if (SCALER_CTL.vscalefactor != 0x0400) {
|
||||||
|
fbh = round(fbw * binaryFractionToDouble(
|
||||||
|
SCALER_CTL.vscalefactor >> 10, SCALER_CTL.vscalefactor & 0x3FF, 10));
|
||||||
|
}
|
||||||
|
|
||||||
renderedTexture->texAddress = location;
|
renderedTexture->texAddress = location;
|
||||||
renderedTexture->fb_packmode = FB_W_CTRL.fb_packmode;
|
renderedTexture->fb_packmode = FB_W_CTRL.fb_packmode;
|
||||||
renderedTexture->updated = true;
|
renderedTexture->updated = true;
|
||||||
|
@ -526,7 +543,7 @@ void BindRTT(u32 addy, u32 fbw, u32 fbh, u32 channels, u32 fmt)
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, renderedTexture->fbo);
|
glBindFramebuffer(GL_FRAMEBUFFER, renderedTexture->fbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
glViewport(0, 0, fbw, fbh);
|
glViewport(0, 0, fbw, fbhViewport);
|
||||||
}
|
}
|
||||||
|
|
||||||
GLint checkSupportedReadFormat()
|
GLint checkSupportedReadFormat()
|
||||||
|
|
Loading…
Reference in New Issue