forked from organicmaps/organicmaps
Review fixes.
This commit is contained in:
parent
5d4edb6b5c
commit
43a036648c
8 changed files with 26 additions and 26 deletions
|
@ -17,7 +17,7 @@ BOOKMARK_PROGRAM user_mark.vsh texturing_fragment_shader.fsh
|
|||
ROUTE_PROGRAM route_vertex_shader.vsh route_fragment_shader.fsh
|
||||
ROUTE_ARROW_PROGRAM route_vertex_shader.vsh route_arrow_fragment_shader.fsh
|
||||
DEBUG_RECT_PROGRAM debug_rect_vertex_shader.vsh debug_rect_fragment_shader.fsh
|
||||
PLANE_3D_PROGRAM plane3d_vertex_shader.vsh plane3d_fragment_shader.fsh
|
||||
TRANSPARENT_LAYER_PROGRAM transparent_layer_vertex_shader.vsh transparent_layer_fragment_shader.fsh
|
||||
ARROW_3D_PROGRAM arrow3d_vertex_shader.vsh arrow3d_fragment_shader.fsh
|
||||
TEXTURING_BILLBOARD_PROGRAM texturing_billboard_vertex_shader.vsh texturing_fragment_shader.fsh
|
||||
TEXT_OUTLINED_BILLBOARD_PROGRAM text_outlined_billboard_vertex_shader.vsh text_fragment_shader.fsh
|
||||
|
|
|
@ -58,7 +58,6 @@ SOURCES += \
|
|||
read_mwm_task.cpp \
|
||||
render_group.cpp \
|
||||
render_node.cpp \
|
||||
renderer3d.cpp \
|
||||
requested_tiles.cpp \
|
||||
route_builder.cpp \
|
||||
route_renderer.cpp \
|
||||
|
@ -75,6 +74,7 @@ SOURCES += \
|
|||
tile_tree.cpp \
|
||||
tile_tree_builder.cpp \
|
||||
tile_utils.cpp \
|
||||
transparent_layer.cpp \
|
||||
user_event_stream.cpp \
|
||||
user_mark_shapes.cpp \
|
||||
user_marks_provider.cpp \
|
||||
|
@ -144,7 +144,6 @@ HEADERS += \
|
|||
read_mwm_task.hpp \
|
||||
render_group.hpp \
|
||||
render_node.hpp \
|
||||
renderer3d.hpp \
|
||||
requested_tiles.hpp \
|
||||
route_builder.hpp \
|
||||
route_renderer.hpp \
|
||||
|
@ -162,6 +161,7 @@ HEADERS += \
|
|||
tile_tree.hpp \
|
||||
tile_tree_builder.hpp \
|
||||
tile_utils.hpp \
|
||||
transparent_layer.hpp \
|
||||
user_event_stream.hpp \
|
||||
user_mark_shapes.hpp \
|
||||
user_marks_provider.hpp \
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include "drape_frontend/framebuffer.hpp"
|
||||
#include "drape_frontend/frontend_renderer.hpp"
|
||||
#include "drape_frontend/message_subclasses.hpp"
|
||||
#include "drape_frontend/renderer3d.hpp"
|
||||
#include "drape_frontend/transparent_layer.hpp"
|
||||
#include "drape_frontend/visual_params.hpp"
|
||||
#include "drape_frontend/user_mark_shapes.hpp"
|
||||
|
||||
|
@ -45,7 +45,7 @@ FrontendRenderer::FrontendRenderer(Params const & params)
|
|||
, m_gpuProgramManager(new dp::GpuProgramManager())
|
||||
, m_routeRenderer(new RouteRenderer())
|
||||
, m_framebuffer(new Framebuffer())
|
||||
, m_renderer3d(new Renderer3d())
|
||||
, m_transparentLayer(new TransparentLayer())
|
||||
, m_overlayTree(new dp::OverlayTree())
|
||||
, m_enable3dInNavigation(false)
|
||||
, m_viewport(params.m_viewport)
|
||||
|
@ -803,32 +803,35 @@ void FrontendRenderer::RenderScene(ScreenBase const & modelView)
|
|||
m_myPositionController->Render(MyPositionController::RenderAccuracy,
|
||||
modelView, make_ref(m_gpuProgramManager), m_generalUniforms);
|
||||
|
||||
GLFunctions::glEnable(gl_const::GLDepthTest);
|
||||
GLFunctions::glClearDepth();
|
||||
|
||||
if (isPerspective && has3dAreas)
|
||||
{
|
||||
m_framebuffer->Enable();
|
||||
GLFunctions::glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
GLFunctions::glClear();
|
||||
GLFunctions::glClearDepth();
|
||||
|
||||
GLFunctions::glEnable(gl_const::GLDepthTest);
|
||||
for (size_t index = area3dRenderGroupStart; index <= area3dRenderGroupEnd; ++index)
|
||||
{
|
||||
drape_ptr<RenderGroup> const & group = m_renderGroups[index];
|
||||
if (group->GetState().GetProgram3dIndex() == gpu::AREA_3D_PROGRAM)
|
||||
RenderSingleGroup(modelView, make_ref(group));
|
||||
}
|
||||
GLFunctions::glClearDepth();
|
||||
RefreshBgColor();
|
||||
m_framebuffer->Disable();
|
||||
m_renderer3d->Render(m_framebuffer->GetTextureId(), make_ref(m_gpuProgramManager));
|
||||
|
||||
GLFunctions::glDisable(gl_const::GLDepthTest);
|
||||
m_transparentLayer->Render(m_framebuffer->GetTextureId(), make_ref(m_gpuProgramManager));
|
||||
}
|
||||
|
||||
if (isPerspective && hasSelectedPOI)
|
||||
{
|
||||
GLFunctions::glDisable(gl_const::GLDepthTest);
|
||||
m_selectionShape->Render(modelView, make_ref(m_gpuProgramManager), m_generalUniforms);
|
||||
GLFunctions::glEnable(gl_const::GLDepthTest);
|
||||
}
|
||||
|
||||
GLFunctions::glEnable(gl_const::GLDepthTest);
|
||||
GLFunctions::glClearDepth();
|
||||
for (; currentRenderGroup < m_renderGroups.size(); ++currentRenderGroup)
|
||||
{
|
||||
drape_ptr<RenderGroup> const & group = m_renderGroups[currentRenderGroup];
|
||||
|
@ -923,8 +926,7 @@ void FrontendRenderer::RefreshBgColor()
|
|||
{
|
||||
uint32_t color = drule::rules().GetBgColor(df::GetDrawTileScale(m_userEventStream.GetCurrentScreen()));
|
||||
dp::Color c = dp::Extract(color, 255 - (color >> 24));
|
||||
// TODO: Make sure that zero alpha doesn't affect anything.
|
||||
GLFunctions::glClearColor(c.GetRedF(), c.GetGreenF(), c.GetBlueF(), 0.0f);
|
||||
GLFunctions::glClearColor(c.GetRedF(), c.GetGreenF(), c.GetBlueF(), 1.0f);
|
||||
}
|
||||
|
||||
int FrontendRenderer::GetCurrentZoomLevel() const
|
||||
|
|
|
@ -47,7 +47,7 @@ namespace df
|
|||
|
||||
class SelectionShape;
|
||||
class Framebuffer;
|
||||
class Renderer3d;
|
||||
class TransparentLayer;
|
||||
|
||||
struct TapInfo
|
||||
{
|
||||
|
@ -228,7 +228,7 @@ private:
|
|||
drape_ptr<SelectionShape> m_selectionShape;
|
||||
drape_ptr<RouteRenderer> m_routeRenderer;
|
||||
drape_ptr<Framebuffer> m_framebuffer;
|
||||
drape_ptr<Renderer3d> m_renderer3d;
|
||||
drape_ptr<TransparentLayer> m_transparentLayer;
|
||||
|
||||
drape_ptr<dp::OverlayTree> m_overlayTree;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "renderer3d.hpp"
|
||||
#include "transparent_layer.hpp"
|
||||
|
||||
#include "drape/data_buffer.hpp"
|
||||
#include "drape/glconstants.hpp"
|
||||
|
@ -15,7 +15,7 @@
|
|||
namespace df
|
||||
{
|
||||
|
||||
Renderer3d::Renderer3d()
|
||||
TransparentLayer::TransparentLayer()
|
||||
{
|
||||
m_vertices = { -1.0f, 1.0f, 0.0f, 1.0f,
|
||||
1.0f, 1.0f, 1.0f, 1.0f,
|
||||
|
@ -23,13 +23,13 @@ Renderer3d::Renderer3d()
|
|||
1.0f, -1.0f, 1.0f, 0.0f };
|
||||
}
|
||||
|
||||
Renderer3d::~Renderer3d()
|
||||
TransparentLayer::~TransparentLayer()
|
||||
{
|
||||
if (m_bufferId != 0)
|
||||
GLFunctions::glDeleteBuffer(m_bufferId);
|
||||
}
|
||||
|
||||
void Renderer3d::Build(ref_ptr<dp::GpuProgram> prg)
|
||||
void TransparentLayer::Build(ref_ptr<dp::GpuProgram> prg)
|
||||
{
|
||||
m_attributePosition = prg->GetAttributeLocation("a_pos");
|
||||
ASSERT_NOT_EQUAL(m_attributePosition, -1, ());
|
||||
|
@ -44,19 +44,17 @@ void Renderer3d::Build(ref_ptr<dp::GpuProgram> prg)
|
|||
GLFunctions::glBindBuffer(0, gl_const::GLArrayBuffer);
|
||||
}
|
||||
|
||||
void Renderer3d::Render(uint32_t textureId, ref_ptr<dp::GpuProgramManager> mng)
|
||||
void TransparentLayer::Render(uint32_t textureId, ref_ptr<dp::GpuProgramManager> mng)
|
||||
{
|
||||
// Unbind current VAO, because glVertexAttributePointer and glEnableVertexAttribute can affect it.
|
||||
GLFunctions::glBindVertexArray(0);
|
||||
|
||||
ref_ptr<dp::GpuProgram> prg = mng->GetProgram(gpu::PLANE_3D_PROGRAM);
|
||||
ref_ptr<dp::GpuProgram> prg = mng->GetProgram(gpu::TRANSPARENT_LAYER_PROGRAM);
|
||||
prg->Bind();
|
||||
|
||||
if (m_bufferId == 0)
|
||||
Build(prg);
|
||||
|
||||
GLFunctions::glDisable(gl_const::GLDepthTest);
|
||||
|
||||
GLFunctions::glActiveTexture(gl_const::GLTexture0);
|
||||
GLFunctions::glBindTexture(textureId);
|
||||
GLFunctions::glBindBuffer(m_bufferId, gl_const::GLArrayBuffer);
|
|
@ -15,11 +15,11 @@ class ScreenBase;
|
|||
namespace df
|
||||
{
|
||||
|
||||
class Renderer3d
|
||||
class TransparentLayer
|
||||
{
|
||||
public:
|
||||
Renderer3d();
|
||||
~Renderer3d();
|
||||
TransparentLayer();
|
||||
~TransparentLayer();
|
||||
|
||||
void Render(uint32_t textureId, ref_ptr<dp::GpuProgramManager> mng);
|
||||
|
Loading…
Add table
Reference in a new issue