Repo created
This commit is contained in:
parent
4af19165ec
commit
68073add76
12458 changed files with 12350765 additions and 2 deletions
67
libs/drape_frontend/render_state_extension.hpp
Normal file
67
libs/drape_frontend/render_state_extension.hpp
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
#pragma once
|
||||
|
||||
#include "shaders/programs.hpp"
|
||||
|
||||
#include "drape/pointers.hpp"
|
||||
#include "drape/render_state.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace df
|
||||
{
|
||||
enum class DepthLayer : uint8_t
|
||||
{
|
||||
// Do not change the order.
|
||||
GeometryLayer = 0,
|
||||
Geometry3dLayer,
|
||||
UserLineLayer,
|
||||
OverlayLayer,
|
||||
TransitSchemeLayer,
|
||||
UserMarkLayer,
|
||||
RoutingBottomMarkLayer,
|
||||
RoutingMarkLayer,
|
||||
SearchMarkLayer,
|
||||
GuiLayer,
|
||||
OverlayUnderBuildingLayer,
|
||||
LayersCount
|
||||
};
|
||||
|
||||
/// @todo Replace with simple struct without polymorphism.
|
||||
class RenderStateExtension : public dp::BaseRenderStateExtension
|
||||
{
|
||||
public:
|
||||
explicit RenderStateExtension(DepthLayer depthLayer);
|
||||
|
||||
bool Less(ref_ptr<dp::BaseRenderStateExtension> other) const override;
|
||||
bool Equal(ref_ptr<dp::BaseRenderStateExtension> other) const override;
|
||||
|
||||
DepthLayer GetDepthLayer() const { return m_depthLayer; }
|
||||
|
||||
private:
|
||||
DepthLayer const m_depthLayer;
|
||||
};
|
||||
|
||||
extern DepthLayer GetDepthLayer(dp::RenderState const & state);
|
||||
extern dp::RenderState CreateRenderState(gpu::Program program, DepthLayer depthLayer);
|
||||
|
||||
inline std::string DebugPrint(DepthLayer layer)
|
||||
{
|
||||
switch (layer)
|
||||
{
|
||||
case DepthLayer::GeometryLayer: return "GeometryLayer";
|
||||
case DepthLayer::Geometry3dLayer: return "Geometry3dLayer";
|
||||
case DepthLayer::UserLineLayer: return "UserLineLayer";
|
||||
case DepthLayer::OverlayLayer: return "OverlayLayer";
|
||||
case DepthLayer::OverlayUnderBuildingLayer: return "OverlayUnderBuildingLayer";
|
||||
case DepthLayer::TransitSchemeLayer: return "TransitSchemeLayer";
|
||||
case DepthLayer::UserMarkLayer: return "UserMarkLayer";
|
||||
case DepthLayer::RoutingBottomMarkLayer: return "RoutingBottomMarkLayer";
|
||||
case DepthLayer::RoutingMarkLayer: return "RoutingMarkLayer";
|
||||
case DepthLayer::SearchMarkLayer: return "SearchMarkLayer";
|
||||
case DepthLayer::GuiLayer: return "GuiLayer";
|
||||
case DepthLayer::LayersCount: CHECK(false, ("Try to output LayersCount"));
|
||||
}
|
||||
CHECK(false, ("Unknown layer"));
|
||||
return {};
|
||||
}
|
||||
} // namespace df
|
||||
Loading…
Add table
Add a link
Reference in a new issue