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);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
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];
|
||||
}
|
||||
|
||||
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->fb_packmode = FB_W_CTRL.fb_packmode;
|
||||
renderedTexture->updated = true;
|
||||
|
@ -526,7 +543,7 @@ void BindRTT(u32 addy, u32 fbw, u32 fbh, u32 channels, u32 fmt)
|
|||
glBindFramebuffer(GL_FRAMEBUFFER, renderedTexture->fbo);
|
||||
}
|
||||
|
||||
glViewport(0, 0, fbw, fbh);
|
||||
glViewport(0, 0, fbw, fbhViewport);
|
||||
}
|
||||
|
||||
GLint checkSupportedReadFormat()
|
||||
|
|
Loading…
Reference in New Issue