Repo created
This commit is contained in:
parent
4af19165ec
commit
68073add76
12458 changed files with 12350765 additions and 2 deletions
82
libs/drape_frontend/gui/layer_render.hpp
Normal file
82
libs/drape_frontend/gui/layer_render.hpp
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
#pragma once
|
||||
|
||||
#include "drape_frontend/gui/shape.hpp"
|
||||
#include "drape_frontend/gui/skin.hpp"
|
||||
|
||||
#include "shaders/program_manager.hpp"
|
||||
|
||||
#include "drape/texture_manager.hpp"
|
||||
|
||||
#include "geometry/screenbase.hpp"
|
||||
|
||||
#include "base/macros.hpp"
|
||||
|
||||
#include <map>
|
||||
|
||||
namespace dp
|
||||
{
|
||||
class GraphicsContext;
|
||||
} // namespace dp
|
||||
|
||||
namespace gui
|
||||
{
|
||||
class LayerRenderer
|
||||
{
|
||||
public:
|
||||
LayerRenderer() = default;
|
||||
~LayerRenderer();
|
||||
|
||||
void Build(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng);
|
||||
void Render(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng, bool routingActive,
|
||||
ScreenBase const & screen);
|
||||
void Merge(ref_ptr<LayerRenderer> other);
|
||||
void SetLayout(gui::TWidgetsLayoutInfo const & info);
|
||||
|
||||
bool OnTouchDown(m2::RectD const & touchArea);
|
||||
void OnTouchUp(m2::RectD const & touchArea);
|
||||
void OnTouchCancel(m2::RectD const & touchArea);
|
||||
|
||||
bool HasWidget(EWidget widget) const;
|
||||
|
||||
private:
|
||||
void DestroyRenderers();
|
||||
|
||||
friend class LayerCacher;
|
||||
void AddShapeRenderer(EWidget widget, drape_ptr<ShapeRenderer> && shape);
|
||||
|
||||
private:
|
||||
using TRenderers = std::map<EWidget, drape_ptr<ShapeRenderer>>;
|
||||
TRenderers m_renderers;
|
||||
|
||||
ref_ptr<gui::Handle> m_activeOverlay;
|
||||
FeatureID m_activeOverlayId;
|
||||
|
||||
DISALLOW_COPY_AND_MOVE(LayerRenderer);
|
||||
};
|
||||
|
||||
class LayerCacher
|
||||
{
|
||||
public:
|
||||
drape_ptr<LayerRenderer> RecacheWidgets(ref_ptr<dp::GraphicsContext> context, TWidgetsInitInfo const & initInfo,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
drape_ptr<LayerRenderer> RecacheChoosePositionMark(ref_ptr<dp::GraphicsContext> context,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
|
||||
#ifdef RENDER_DEBUG_INFO_LABELS
|
||||
drape_ptr<LayerRenderer> RecacheDebugLabels(ref_ptr<dp::GraphicsContext> context,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
#endif
|
||||
|
||||
private:
|
||||
void CacheCompass(ref_ptr<dp::GraphicsContext> context, Position const & position, ref_ptr<LayerRenderer> renderer,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
void CacheRuler(ref_ptr<dp::GraphicsContext> context, Position const & position, ref_ptr<LayerRenderer> renderer,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
void CacheCopyright(ref_ptr<dp::GraphicsContext> context, Position const & position, ref_ptr<LayerRenderer> renderer,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
void CacheScaleFpsLabel(ref_ptr<dp::GraphicsContext> context, Position const & position,
|
||||
ref_ptr<LayerRenderer> renderer, ref_ptr<dp::TextureManager> textures);
|
||||
void CacheWatermark(ref_ptr<dp::GraphicsContext> context, Position const & position, ref_ptr<LayerRenderer> renderer,
|
||||
ref_ptr<dp::TextureManager> textures);
|
||||
};
|
||||
} // namespace gui
|
||||
Loading…
Add table
Add a link
Reference in a new issue