mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
- fixed the viewport setup.
There were two problems here - the math for calculating the rect was wrong and the initial aspect ratio was also not correct.
This commit is contained in:
parent
8055ff1d86
commit
ba41bb4c61
2 changed files with 13 additions and 7 deletions
|
@ -225,15 +225,21 @@ static bool System_DisableTextureFilter()
|
|||
|
||||
static IntRect System_GetSceneRect()
|
||||
{
|
||||
// Special handling so the view with a visible status bar displays properly
|
||||
int height = windowxy2.y - windowxy1.y + 1, width = windowxy2.x - windowxy1.x + 1;
|
||||
int bottomspace = screen->GetHeight() - windowxy2.y;
|
||||
int viewbottom = windowxy2.y + 1;
|
||||
int viewheight = viewbottom - windowxy1.y;
|
||||
int viewright = windowxy2.x + 1;
|
||||
int viewwidth = viewright - windowxy1.x;
|
||||
|
||||
int renderheight;
|
||||
|
||||
if (viewheight == screen->GetHeight()) renderheight = viewheight;
|
||||
else renderheight = (viewwidth * screen->GetHeight() / screen->GetWidth()) & ~7;
|
||||
|
||||
IntRect mSceneViewport;
|
||||
mSceneViewport.left = windowxy1.x;
|
||||
mSceneViewport.top = (bottomspace - windowxy1.y/2);
|
||||
mSceneViewport.width = width;
|
||||
mSceneViewport.height = height;
|
||||
mSceneViewport.top = screen->GetHeight() - (renderheight + windowxy1.y - ((renderheight - viewheight) / 2));
|
||||
mSceneViewport.width = viewwidth;
|
||||
mSceneViewport.height = renderheight;
|
||||
return mSceneViewport;
|
||||
}
|
||||
|
||||
|
|
|
@ -309,7 +309,7 @@ void render_drawrooms(spritetype* playersprite, const vec3_t& position, int sect
|
|||
|
||||
// now render the main view
|
||||
float fovratio;
|
||||
float ratio = ActiveRatio(windowxy2.x - windowxy1.x + 1, windowxy2.y - windowxy1.y + 1);
|
||||
float ratio = ActiveRatio(screen->GetWidth(), screen->GetHeight());
|
||||
if (ratio >= 1.33f)
|
||||
{
|
||||
fovratio = 1.33f;
|
||||
|
|
Loading…
Reference in a new issue