Graphics: Respect non-default initial window size
This commit is contained in:
parent
843a7bf571
commit
4a0084801e
|
@ -404,11 +404,12 @@ struct GraphicsPrivate
|
||||||
Quad screenQuad;
|
Quad screenQuad;
|
||||||
RBOFBO transBuffer;
|
RBOFBO transBuffer;
|
||||||
|
|
||||||
GraphicsPrivate()
|
GraphicsPrivate(RGSSThreadData *rtData)
|
||||||
: scRes(640, 480),
|
: scRes(640, 480),
|
||||||
scSize(scRes),
|
scSize(scRes),
|
||||||
winSize(scRes),
|
winSize(rtData->config.defScreenW, rtData->config.defScreenH),
|
||||||
screen(scRes.x, scRes.y),
|
screen(scRes.x, scRes.y),
|
||||||
|
threadData(rtData),
|
||||||
frameRate(40),
|
frameRate(40),
|
||||||
frameCount(0),
|
frameCount(0),
|
||||||
#ifdef RGSS2
|
#ifdef RGSS2
|
||||||
|
@ -417,6 +418,9 @@ struct GraphicsPrivate
|
||||||
fpsLimiter(frameRate),
|
fpsLimiter(frameRate),
|
||||||
frozen(false)
|
frozen(false)
|
||||||
{
|
{
|
||||||
|
recalculateScreenSize(rtData);
|
||||||
|
updateScreenResoRatio(rtData);
|
||||||
|
|
||||||
TEXFBO::init(frozenScene);
|
TEXFBO::init(frozenScene);
|
||||||
TEXFBO::allocEmpty(frozenScene, scRes.x, scRes.y);
|
TEXFBO::allocEmpty(frozenScene, scRes.x, scRes.y);
|
||||||
TEXFBO::linkFBO(frozenScene);
|
TEXFBO::linkFBO(frozenScene);
|
||||||
|
@ -441,21 +445,21 @@ struct GraphicsPrivate
|
||||||
RBOFBO::fini(transBuffer);
|
RBOFBO::fini(transBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateScreenResoRatio()
|
void updateScreenResoRatio(RGSSThreadData *rtData)
|
||||||
{
|
{
|
||||||
Vec2 &ratio = shState->rtData().sizeResoRatio;
|
Vec2 &ratio = rtData->sizeResoRatio;
|
||||||
ratio.x = (float) scRes.x / scSize.x;
|
ratio.x = (float) scRes.x / scSize.x;
|
||||||
ratio.y = (float) scRes.y / scSize.y;
|
ratio.y = (float) scRes.y / scSize.y;
|
||||||
|
|
||||||
shState->rtData().screenOffset = scOffset;
|
rtData->screenOffset = scOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enforces fixed aspect ratio, if desired */
|
/* Enforces fixed aspect ratio, if desired */
|
||||||
void recalculateScreenSize()
|
void recalculateScreenSize(RGSSThreadData *rtData)
|
||||||
{
|
{
|
||||||
scSize = winSize;
|
scSize = winSize;
|
||||||
|
|
||||||
if (!threadData->config.fixedAspectRatio)
|
if (!rtData->config.fixedAspectRatio)
|
||||||
{
|
{
|
||||||
scOffset = Vec2i(0, 0);
|
scOffset = Vec2i(0, 0);
|
||||||
return;
|
return;
|
||||||
|
@ -479,8 +483,8 @@ struct GraphicsPrivate
|
||||||
{
|
{
|
||||||
/* some GL drivers change the viewport on window resize */
|
/* some GL drivers change the viewport on window resize */
|
||||||
glState.viewport.refresh();
|
glState.viewport.refresh();
|
||||||
recalculateScreenSize();
|
recalculateScreenSize(threadData);
|
||||||
updateScreenResoRatio();
|
updateScreenResoRatio(threadData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -528,8 +532,7 @@ struct GraphicsPrivate
|
||||||
|
|
||||||
Graphics::Graphics(RGSSThreadData *data)
|
Graphics::Graphics(RGSSThreadData *data)
|
||||||
{
|
{
|
||||||
p = new GraphicsPrivate;
|
p = new GraphicsPrivate(data);
|
||||||
p->threadData = data;
|
|
||||||
|
|
||||||
if (data->config.fixedFramerate > 0)
|
if (data->config.fixedFramerate > 0)
|
||||||
p->fpsLimiter.setDesiredFPS(data->config.fixedFramerate);
|
p->fpsLimiter.setDesiredFPS(data->config.fixedFramerate);
|
||||||
|
|
Loading…
Reference in New Issue