mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 15:22:16 +00:00
- Added pixelratio support for the softpoly renderer.
This commit is contained in:
parent
b02e3d9514
commit
7447c49dc5
1 changed files with 14 additions and 1 deletions
|
@ -26,8 +26,10 @@
|
|||
#include "sbar.h"
|
||||
#include "r_data/r_translate.h"
|
||||
#include "r_poly.h"
|
||||
#include "gl/data/gl_data.h"
|
||||
|
||||
CVAR(Bool, r_debug_cull, 0, 0)
|
||||
void InitGLRMapinfoData();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -66,13 +68,24 @@ void RenderPolyScene::ClearBuffers()
|
|||
|
||||
void RenderPolyScene::SetupPerspectiveMatrix()
|
||||
{
|
||||
static bool bDidSetup = false;
|
||||
|
||||
if (!bDidSetup)
|
||||
{
|
||||
InitGLRMapinfoData();
|
||||
bDidSetup = true;
|
||||
}
|
||||
|
||||
float pixelstretch = (glset.pixelstretch) ? glset.pixelstretch : 1.2;
|
||||
|
||||
float ratio = WidescreenRatio;
|
||||
float fovratio = (WidescreenRatio >= 1.3f) ? 1.333333f : ratio;
|
||||
float fovy = (float)(2 * DAngle::ToDegrees(atan(tan(FieldOfView.Radians() / 2) / fovratio)).Degrees);
|
||||
TriMatrix worldToView =
|
||||
TriMatrix::scale(1.0f, (float)YaspectMul, 1.0f) *
|
||||
TriMatrix::scale(1.0f, 1.2f, 1.0f) *
|
||||
TriMatrix::rotate((float)ViewPitch.Radians(), 1.0f, 0.0f, 0.0f) *
|
||||
TriMatrix::rotate((float)(ViewAngle - 90).Radians(), 0.0f, -1.0f, 0.0f) *
|
||||
TriMatrix::scale(1.0f, pixelstretch, 1.0f) *
|
||||
TriMatrix::swapYZ() *
|
||||
TriMatrix::translate((float)-ViewPos.X, (float)-ViewPos.Y, (float)-ViewPos.Z);
|
||||
WorldToClip = TriMatrix::perspective(fovy, ratio, 5.0f, 65535.0f) * worldToView;
|
||||
|
|
Loading…
Reference in a new issue