Timestamp:
Apr 15, 2021, 8:07:01 PM (3 years ago)
Author:
Vladislav Belov
Message:

Removes low-level GL calls from graphics and geometrics primitives and adds DebugRenderer.

Tested By: Freagarach

Differential Revision: https://code.wildfiregames.com/D3857

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ps/trunk/source/graphics/Camera.cpp

    r25266 r25269  
    393393    m_Orientation._41 = 0.0f;   m_Orientation._42 = 0.0f;   m_Orientation._43 = 0.0f;           m_Orientation._44 = 1.0f;
    394394}
    395 
    396 // Render the camera's frustum
    397 void CCamera::Render(int intermediates) const
    398 {
    399 #if CONFIG2_GLES
    400 #warning TODO: implement camera frustum for GLES
    401 #else
    402     Quad nearPoints;
    403     Quad farPoints;
    404 
    405     GetViewQuad(m_NearPlane, nearPoints);
    406     GetViewQuad(m_FarPlane, farPoints);
    407     for(int i = 0; i < 4; i++)
    408     {
    409         nearPoints[i] = m_Orientation.Transform(nearPoints[i]);
    410         farPoints[i] = m_Orientation.Transform(farPoints[i]);
    411     }
    412 
    413     // near plane
    414     glBegin(GL_POLYGON);
    415         glVertex3fv(&nearPoints[0].X);
    416         glVertex3fv(&nearPoints[1].X);
    417         glVertex3fv(&nearPoints[2].X);
    418         glVertex3fv(&nearPoints[3].X);
    419     glEnd();
    420 
    421     // far plane
    422     glBegin(GL_POLYGON);
    423         glVertex3fv(&farPoints[0].X);
    424         glVertex3fv(&farPoints[1].X);
    425         glVertex3fv(&farPoints[2].X);
    426         glVertex3fv(&farPoints[3].X);
    427     glEnd();
    428 
    429     // connection lines
    430     glBegin(GL_QUAD_STRIP);
    431         glVertex3fv(&nearPoints[0].X);
    432 ��       glVertex3fv(&farPoints[0].X);
    433         glVertex3fv(&nearPoints[1].X);
    434         glVertex3fv(&farPoints[1].X);
    435         glVertex3fv(&nearPoints[2].X);
    436         glVertex3fv(&farPoints[2].X);
    437         glVertex3fv(&nearPoints[3].X);
    438         glVertex3fv(&farPoints[3].X);
    439         glVertex3fv(&nearPoints[0].X);
    440         glVertex3fv(&farPoints[0].X);
    441     glEnd();
    442 
    443     // intermediate planes
    444     CVector3D intermediatePoints[4];
    445     for(int i = 0; i < intermediates; ++i)
    446     {
    447         float t = (i+1.0)/(intermediates+1.0);
    448 
    449         for(int j = 0; j < 4; ++j)
    450             intermediatePoints[j] = nearPoints[j]*t + farPoints[j]*(1.0-t);
    451 
    452         glBegin(GL_POLYGON);
    453             glVertex3fv(&intermediatePoints[0].X);
    454             glVertex3fv(&intermediatePoints[1].X);
    455             glVertex3fv(&intermediatePoints[2].X);
    456             glVertex3fv(&intermediatePoints[3].X);
    457         glEnd();
    458     }
    459 #endif
    460 }
Note: See TracChangeset for help on using the changeset viewer.