Changeset 25329

Timestamp:
Apr 27, 2021, 9:23:37 PM (3 years ago)
Author:
Vladislav Belov
Message:

Removes ShaderProgramPtr argument from DebugRenderer methods.

Location:
ps/trunk/source
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • ps/trunk/source/graphics/ParticleEmitter.h

    r18987 r25329  
    1 /* Copyright (C) 2011 Wildfire Games.
     1/* Copyright (C) 201 Wildfire Games.
    22 * This file is part of 0 A.D.
    33 *
     
    9191    }
    9292
    93     CQuaternion GetRotation() const
     93    GetRotation() const
    9494    {
    9595        return m_Rot;
     
    9999     * Get the bounding box of the center points of particles at their current positions.
    100100     */
    101     CBoundingBoxAligned GetParticleBounds() { return m_ParticleBounds; }
     101    { return m_ParticleBounds; }
    102102
    103103    /**
  • ps/trunk/source/renderer/DebugRenderer.cpp

    r25323 r25329  
    2727#include "maths/BoundingBoxAligned.h"
    2828#include "maths/Brush.h"
     29
    2930#include "maths/Vector3D.h"
    3031#include "renderer/Renderer.h"
     
    4849        g_Renderer.GetShaderManager().LoadEffect(str_debug_line);
    4950    debugLineTech->BeginPass();
     51
    5052    CShaderProgramPtr debugLineShader = debugLineTech->GetShader();
    51 
    52     debugLineShader->Bind();
    5353    debugLineShader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
    5454    debugLineShader->Uniform(str_color, color);
     
    8787    glDrawArrays(GL_TRIANGLES, 0, vertices.size() / 3);
    8888
    89     debugLineShader->Unbind();
    9089    debugLineTech->EndPass();
    9190#endif
     
    10099        g_Renderer.GetShaderManager().LoadEffect(str_debug_line);
    101100    debugCircleTech->BeginPass();
     101
     102
     103
    102104    CShaderProgramPtr debugCircleShader = debugCircleTech->GetShader();
    103 
    104     const CCamera& camera = g_Renderer.GetViewCamera();
    105 
    106     debugCircleShader->Bind();
    107105    debugCircleShader->Uniform(str_transform, camera.GetViewProjection());
    108106    debugCircleShader->Uniform(str_color, color);
     
    133131    glDrawArrays(GL_TRIANGLE_FAN, 0, vertices.size() / 3);
    134132
    135     debugCircleShader->Unbind();
    136133    debugCircleTech->EndPass();
    137134#endif
    138135}
    139136
    140 void CDebugRenderer::DrawCameraFrustum(const CCamera& camera, const CColor& color, int intermediates) const
     137void CDebugRenderer::DrawCameraFrustum(const CCamera& camera, const CColor& color, int intermediates)
    141138{
    142139#if CONFIG2_GLES
     
    157154        g_Renderer.GetShaderManager().LoadEffect(str_debug_line);
    158155    overlayTech->BeginPass();
     156
    159157    CShaderProgramPtr overlayShader = overlayTech->GetShader();
    160 
    161     overlayShader->Bind();
    162158    overlayShader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
    163159    overlayShader->Uniform(str_color, color);
     
    219215#undef ADD
    220216
    221     overlayShader->Unbind();
    222217    overlayTech->EndPass();
    223218#endif
    224219}
    225220
    226 void CDebugRenderer::DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CShaderProgramPtr& shader) const
    227 {
     221void CDebugRenderer::DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CColor& color)
     222{
     223    DrawBoundingBox(boundingBox, color, g_Renderer.GetViewCamera().GetViewProjection());
     224}
     225
     226void CDebugRenderer::DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CColor& color, const CMatrix3D& transform)
     227{
     228    CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
     229    shaderTech->BeginPass();
     230
     231    CShaderProgramPtr shader = shaderTech->GetShader();
     232    shader->Uniform(str_color, color);
     233    shader->Uniform(str_transform, transform);
     234
    228235    std::vector<float> data;
    229236
     
    254261    shader->AssertPointersBound();
    255262    glDrawArrays(GL_TRIANGLES, 0, 6*6);
    256 }
    257 
    258 void CDebugRenderer::DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CShaderProgramPtr& shader) const
    259 {
     263
     264    shaderTech->EndPass();
     265}
     266
     267void CDebugRenderer::DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CColor& color)
     268{
     269    DrawBoundingBoxOutline(boundingBox, color, g_Renderer.GetViewCamera().GetViewProjection());
     270}
     271
     272void CDebugRenderer::DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CColor& color, const CMatrix3D& transform)
     273{
     274    CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
     275    shaderTech->BeginPass();
     276
     277    CShaderProgramPtr shader = shaderTech->GetShader();
     278    shader->Uniform(str_color, color);
     279    shader->Uniform(str_transform, transform);
     280
    260281    std::vector<float> data;
    261282
     
    288309    shader->AssertPointersBound();
    289310    glDrawArrays(GL_LINES, 0, 6*8);
    290 }
    291 
    292 void CDebugRenderer::DrawBrush(const CBrush& brush, const CShaderProgramPtr& shader) const
    293 {
     311
     312    shaderTech->EndPass();
     313}
     314
     315void CDebugRenderer::DrawBrush(const CBrush& brush, const CColor& color)
     316{
     317    CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
     318    shaderTech->BeginPass();
     319
     320    CShaderProgramPtr shader = shaderTech->GetShader();
     321    shader->Uniform(str_color, color);
     322    shader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
     323
    294324    std::vector<float> data;
    295325
     
    326356    shader->AssertPointersBound();
    327357    glDrawArrays(GL_TRIANGLES, 0, data.size() / 5);
    328 }
    329 
    330 void CDebugRenderer::DrawBrushOutline(const CBrush& brush, const CShaderProgramPtr& shader) const
    331 {
     358
     359    shaderTech->EndPass();
     360}
     361
     362void CDebugRenderer::DrawBrushOutline(const CBrush& brush, const CColor& color)
     363{
     364    CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
     365    shaderTech->BeginPass();
     366
     367    CShaderProgramPtr shader = shaderTech->GetShader();
     368    shader->Uniform(str_color, color);
     369    shader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
     370
    332371    std::vector<float> data;
    333372
     
    362401    shader->AssertPointersBound();
    363402    glDrawArrays(GL_LINES, 0, data.size() / 5);
    364 }
     403
     404    shaderTech->EndPass();
     405}
  • ps/trunk/source/renderer/DebugRenderer.h

    r25323 r25329  
    1919#define INCLUDED_DEBUGRENDERER
    2020
    21 #include "graphics/ShaderProgramPtr.h"
    22 
    2321#include <vector>
    2422
     
    2624class CBrush;
    2725class CCamera;
     26
    2827class CVector3D;
    2928
     
    5352     * be hinted at between the near and far planes
    5453     */
    55     void DrawCameraFrustum(const CCamera& camera, const CColor& color, int intermediates = 0) const;
     54    void DrawCameraFrustum(const CCamera& camera, const CColor& color, int intermediates = 0);
    5655
    5756    /**
    5857     * Render the surfaces of the bound box as triangles.
    5958     */
    60     void DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CShaderProgramPtr& shader) const;
     59    void DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CColor& color);
     60    void DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CColor& color, const CMatrix3D& transform);
    6161
    6262    /**
    6363     * Render the outline of the bound box as lines.
    6464     */
    65     void DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CShaderProgramPtr& shader) const;
     65    void DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CColor& color);
     66    void DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CColor& color, const CMatrix3D& transform);
    6667
    6768    /**
    6869     * Render the surfaces of the brush as triangles.
    6970     */
    70     void DrawBrush(const CBrush& brush, const CShaderProgramPtr& shader) const;
     71    void DrawBrush(const CBrush& brush, const C;
    7172
    7273    /**
    7374     * Render the outline of the brush as lines.
    7475     */
    75     void DrawBrushOutline(const CBrush& brush, const CShaderProgramPtr& shader) const;
     76    void DrawBrushOutline(const CBrush& brush, const C;
    7677};
    7778
  • ps/trunk/source/renderer/ParticleRenderer.cpp

    r25269 r25329  
    151151}
    152152
    153 void ParticleRenderer::RenderBounds(int cullGroup, CShaderProgramPtr& shader)
     153void ParticleRenderer::RenderBounds(int cullGroup)
    154154{
    155     std::vector<CParticleEmitter*>& emitters = m->emitters[cullGroup];
    156 
    157     for (size_t i = 0; i < emitters.size(); ++i)
     155    for (const CParticleEmitter* emitter : m->emitters[cullGroup])
    158156    {
    159         CParticleEmitter* emitter = emitters[i];
    160 
    161         CBoundingBoxAligned bounds = emitter->m_Type->CalculateBounds(emitter->GetPosition(), emitter->GetParticleBounds());
    162         g_Renderer.GetDebugRenderer().DrawBoundingBox(bounds, shader);
     157        const CBoundingBoxAligned bounds =
     158            emitter->m_Type->CalculateBounds(emitter->GetPosition(), emitter->GetParticleBounds());
     159        g_Renderer.GetDebugRenderer().DrawBoundingBox(bounds, CColor(0.0f, 1.0f, 0.0f, 1.0f));
    163160    }
    164161}
  • ps/trunk/source/renderer/ParticleRenderer.h

    r15481 r25329  
    1 /* Copyright (C) 2013 Wildfire Games.
     1/* Copyright (C) 20 Wildfire Games.
    22 * This file is part of 0 A.D.
    33 *
     
    2222class CShaderDefines;
    2323struct ParticleRendererInternals;
    24 
    25 #include "graphics/ShaderProgramPtr.h"
    2624
    2725/**
     
    6159     * Render bounding boxes for all the submitted emitters.
    6260     */
    63     void RenderBounds(int cullGroup, CShaderProgramPtr& shader);
     61    void RenderBounds(int cullGroup);
    6462
    6563private:
  • ps/trunk/source/renderer/Renderer.cpp

    r25328 r25329  
    12241224        glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
    12251225
    1226         glDisable(GL_TEXTURE_2D);
    1227         glColor3f(0.0f, 0.5f, 0.0f);
    1228 
    12291226        m->particleRenderer.RenderParticles(true);
    1230 
    1231         CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
    1232         shaderTech->BeginPass();
    1233         CShaderProgramPtr shader = shaderTech->GetShader();
    1234         shader->Uniform(str_color, 0.0f, 1.0f, 0.0f, 1.0f);
    1235         shader->Uniform(str_transform, m_ViewCamera.GetViewProjection());
    1236 
    1237         m->particleRenderer.RenderBounds(cullGroup, shader);
    1238 
    1239         shaderTech->EndPass();
     1227        m->particleRenderer.RenderBounds(cullGroup);
    12401228
    12411229        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  • ps/trunk/source/renderer/ShadowMap.cpp

    r25328 r25329  
    655655void ShadowMap::RenderDebugBounds()
    656656{
    657     CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
    658     shaderTech->BeginPass();
    659     CShaderProgramPtr shader = shaderTech->GetShader();
    660 
    661657    glDepthMask(0);
    662658    glDisable(GL_CULL_FACE);
     
    668664    //  Blue = frustum used for rendering the shadow map
    669665
    670     shader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection() * m->InvLightTransform);
    671 
    672     shader->Uniform(str_color, 1.0f, 1.0f, 0.0f, 1.0f);
    673     g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m->ShadowReceiverBound, shader);
    674 
    675     shader->Uniform(str_color, 0.0f, 1.0f, 0.0f, 1.0f);
    676     g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m->ShadowCasterBound, shader);
    677 
     666    const CMatrix3D transform = g_Renderer.GetViewCamera().GetViewProjection() * m->InvLightTransform;
     667
     668    g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m->ShadowReceiverBound, CColor(1.0f, 1.0f, 0.0f, 1.0f), transform);
     669    g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m->ShadowCasterBound, CColor(0.0f, 1.0f, 0.0f, 1.0f), transform);
    678670    glEnable(GL_BLEND);
    679671    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    680     shader->Uniform(str_color, 0.0f, 0.0f, 1.0f, 0.25f);
    681     g_Renderer.GetDebugRenderer().DrawBoundingBox(m->ShadowRenderBound, shader);
     672    g_Renderer.GetDebugRenderer().DrawBoundingBox(m->ShadowRenderBound, CColor(0.0f, 0.0f, 1.0f, 0.25f), transform);
    682673    glDisable(GL_BLEND);
    683 
    684     shader->Uniform(str_color, 0.0f, 0.0f, 1.0f, 1.0f);
    685     g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m->ShadowRenderBound, shader);
     674    g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m->ShadowRenderBound, CColor(0.0f, 0.0f, 1.0f, 1.0f), transform);
    686675
    687676    // Render light frustum
    688 
    689     shader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
    690677
    691678    CFrustum frustum = GetShadowCasterCullFrustum();
     
    699686    glEnable(GL_BLEND);
    700687    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    701     shader->Uniform(str_color, 1.0f, 0.0f, 0.0f, 0.25f);
    702     g_Renderer.GetDebugRenderer().DrawBrush(frustumBrush, shader);
     688    g_Renderer.GetDebugRenderer().DrawBrush(frustumBrush, CColor(1.0f, 0.0f, 0.0f, 0.25f));
    703689    glDisable(GL_BLEND);
    704 
    705     shader->Uniform(str_color, 1.0f, 0.0f, 0.0f, 1.0f);
    706     g_Renderer.GetDebugRenderer().DrawBrushOutline(frustumBrush, shader);
    707 
    708     shaderTech->EndPass();
     690    g_Renderer.GetDebugRenderer().DrawBrushOutline(frustumBrush, CColor(1.0f, 0.0f, 0.0f, 1.0f));
    709691
    710692    glEnable(GL_CULL_FACE);
  • ps/trunk/source/renderer/SilhouetteRenderer.cpp

    r25278 r25329  
    445445void SilhouetteRenderer::RenderDebugOverlays(const CCamera& camera)
    446446{
    447     CShaderTechniquePtr shaderTech = g_Renderer.GetShaderManager().LoadEffect(str_gui_solid);
    448     shaderTech->BeginPass();
    449     CShaderProgramPtr shader = shaderTech->GetShader();
     447    if (m_DebugBounds.empty() && m_DebugRects.empty())
     448        return;
    450449
    451450    glDepthMask(0);
    452451    glDisable(GL_CULL_FACE);
    453452
    454     shader->Uniform(str_transform, camera.GetViewProjection());
    455 
    456453    for (size_t i = 0; i < m_DebugBounds.size(); ++i)
    457     {
    458         shader->Uniform(str_color, m_DebugBounds[i].color);
    459         g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m_DebugBounds[i].bounds, shader);
    460     }
     454        g_Renderer.GetDebugRenderer().DrawBoundingBoxOutline(m_DebugBounds[i].bounds, m_DebugBounds[i].color);
    461455
    462456    CMatrix3D m;
     
    469463    m = proj * m;
    470464
     465
     466
     467
     468
     469
    471470    shader->Uniform(str_transform, proj);
    472471
Note: See TracChangeset for help on using the changeset viewer.