Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2018-08-02 16:04:59 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2018-08-02 20:32:49 +0300
commitc43305029839d5c7c9ab2eeed370e56bd777cc41 (patch)
treee9fc909e179efa3e838dfd5b44378f3a750b857a
parent926cd384a1f6c34b6ea62d9b078d6fad38b92758 (diff)
Renamed GLState
-rw-r--r--drape/CMakeLists.txt4
-rw-r--r--drape/batcher.cpp38
-rw-r--r--drape/batcher.hpp36
-rw-r--r--drape/drape_tests/batcher_tests.cpp24
-rw-r--r--drape/gpu_program.cpp2
-rw-r--r--drape/render_state.cpp (renamed from drape/glstate.cpp)40
-rw-r--r--drape/render_state.hpp (renamed from drape/glstate.hpp)38
-rw-r--r--drape_frontend/CMakeLists.txt4
-rw-r--r--drape_frontend/apply_feature_functors.cpp20
-rw-r--r--drape_frontend/apply_feature_functors.hpp4
-rw-r--r--drape_frontend/area_shape.cpp12
-rw-r--r--drape_frontend/arrow3d.cpp2
-rw-r--r--drape_frontend/arrow3d.hpp4
-rw-r--r--drape_frontend/backend_renderer.cpp2
-rw-r--r--drape_frontend/backend_renderer.hpp2
-rw-r--r--drape_frontend/batchers_pool.hpp2
-rw-r--r--drape_frontend/circles_pack_shape.cpp6
-rw-r--r--drape_frontend/circles_pack_shape.hpp6
-rw-r--r--drape_frontend/colored_symbol_shape.cpp4
-rw-r--r--drape_frontend/drape_api_builder.cpp2
-rw-r--r--drape_frontend/drape_api_builder.hpp4
-rwxr-xr-xdrape_frontend/frontend_renderer.cpp46
-rwxr-xr-xdrape_frontend/frontend_renderer.hpp11
-rw-r--r--drape_frontend/gps_track_renderer.cpp2
-rw-r--r--drape_frontend/gui/choose_position_mark.cpp2
-rw-r--r--drape_frontend/gui/compass.cpp2
-rw-r--r--drape_frontend/gui/gui_text.cpp4
-rw-r--r--drape_frontend/gui/gui_text.hpp6
-rw-r--r--drape_frontend/gui/ruler.cpp2
-rw-r--r--drape_frontend/gui/shape.cpp6
-rw-r--r--drape_frontend/gui/shape.hpp12
-rw-r--r--drape_frontend/gui/watermark.cpp2
-rw-r--r--drape_frontend/line_shape.cpp22
-rw-r--r--drape_frontend/line_shape.hpp6
-rw-r--r--drape_frontend/message_subclasses.hpp8
-rw-r--r--drape_frontend/my_position.cpp10
-rw-r--r--drape_frontend/my_position.hpp4
-rw-r--r--drape_frontend/overlay_batcher.cpp4
-rw-r--r--drape_frontend/overlay_batcher.hpp8
-rw-r--r--drape_frontend/path_symbol_shape.cpp4
-rw-r--r--drape_frontend/path_text_shape.cpp10
-rw-r--r--drape_frontend/poi_symbol_shape.cpp4
-rw-r--r--drape_frontend/postprocess_renderer.cpp2
-rwxr-xr-xdrape_frontend/render_group.cpp20
-rwxr-xr-xdrape_frontend/render_group.hpp12
-rw-r--r--drape_frontend/render_node.hpp6
-rw-r--r--drape_frontend/render_state.cpp47
-rw-r--r--drape_frontend/render_state.hpp50
-rw-r--r--drape_frontend/render_state_extension.cpp47
-rw-r--r--drape_frontend/render_state_extension.hpp52
-rw-r--r--drape_frontend/route_renderer.cpp8
-rw-r--r--drape_frontend/route_shape.cpp14
-rw-r--r--drape_frontend/route_shape.hpp8
-rw-r--r--drape_frontend/rule_drawer.cpp8
-rw-r--r--drape_frontend/screen_quad_renderer.cpp2
-rw-r--r--drape_frontend/selection_shape.cpp4
-rw-r--r--drape_frontend/shape_view_params.hpp4
-rw-r--r--drape_frontend/text_shape.cpp6
-rw-r--r--drape_frontend/traffic_generator.cpp12
-rw-r--r--drape_frontend/traffic_generator.hpp8
-rw-r--r--drape_frontend/transit_scheme_builder.cpp16
-rw-r--r--drape_frontend/transit_scheme_builder.hpp6
-rw-r--r--drape_frontend/user_mark_generator.cpp2
-rw-r--r--drape_frontend/user_mark_shapes.cpp6
-rw-r--r--drape_frontend/user_mark_shapes.hpp8
-rw-r--r--drape_frontend/user_marks_provider.hpp6
-rw-r--r--map/local_ads_mark.cpp4
-rw-r--r--map/local_ads_mark.hpp5
-rw-r--r--map/routing_mark.cpp4
-rw-r--r--map/routing_mark.hpp7
-rw-r--r--map/search_mark.cpp4
-rw-r--r--map/search_mark.hpp2
-rw-r--r--map/track.cpp4
-rw-r--r--map/track.hpp2
-rw-r--r--map/user_mark.cpp4
-rw-r--r--map/user_mark.hpp2
-rw-r--r--xcode/drape/drape.xcodeproj/project.pbxproj20
-rw-r--r--xcode/drape_frontend/drape_frontend.xcodeproj/project.pbxproj16
78 files changed, 429 insertions, 430 deletions
diff --git a/drape/CMakeLists.txt b/drape/CMakeLists.txt
index efa16b2c14..476bfd8ed3 100644
--- a/drape/CMakeLists.txt
+++ b/drape/CMakeLists.txt
@@ -53,8 +53,6 @@ set(
${DRAPE_ROOT}/glIncludes.hpp
${DRAPE_ROOT}/glsl_func.hpp
${DRAPE_ROOT}/glsl_types.hpp
- ${DRAPE_ROOT}/glstate.cpp
- ${DRAPE_ROOT}/glstate.hpp
${DRAPE_ROOT}/glyph_generator.cpp
${DRAPE_ROOT}/glyph_generator.hpp
${DRAPE_ROOT}/glyph_manager.cpp
@@ -85,6 +83,8 @@ set(
${DRAPE_ROOT}/pointers.hpp
${DRAPE_ROOT}/render_bucket.cpp
${DRAPE_ROOT}/render_bucket.hpp
+ ${DRAPE_ROOT}/render_state.cpp
+ ${DRAPE_ROOT}/render_state.hpp
${DRAPE_ROOT}/shader.cpp
${DRAPE_ROOT}/shader.hpp
${DRAPE_ROOT}/static_texture.cpp
diff --git a/drape/batcher.cpp b/drape/batcher.cpp
index f5e75ed1f8..4b7b6b8b76 100644
--- a/drape/batcher.cpp
+++ b/drape/batcher.cpp
@@ -16,7 +16,7 @@ namespace dp
class Batcher::CallbacksWrapper : public BatchCallbacks
{
public:
- CallbacksWrapper(GLState const & state, ref_ptr<OverlayHandle> overlay, ref_ptr<Batcher> batcher)
+ CallbacksWrapper(RenderState const & state, ref_ptr<OverlayHandle> overlay, ref_ptr<Batcher> batcher)
: m_state(state)
, m_overlay(overlay)
, m_batcher(batcher)
@@ -79,7 +79,7 @@ public:
m_batcher->ChangeBuffer(make_ref(this));
}
- GLState const & GetState() const
+ RenderState const & GetState() const
{
return m_state;
}
@@ -95,7 +95,7 @@ public:
}
private:
- GLState const & m_state;
+ RenderState const & m_state;
ref_ptr<OverlayHandle> m_overlay;
ref_ptr<Batcher> m_batcher;
ref_ptr<VertexArrayBuffer> m_buffer;
@@ -114,69 +114,69 @@ Batcher::~Batcher()
m_buckets.clear();
}
-void Batcher::InsertTriangleList(GLState const & state, ref_ptr<AttributeProvider> params)
+void Batcher::InsertTriangleList(RenderState const & state, ref_ptr<AttributeProvider> params)
{
InsertTriangleList(state, params, nullptr);
}
-IndicesRange Batcher::InsertTriangleList(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertTriangleList(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle)
{
return InsertPrimitives<TriangleListBatch>(state, params, move(handle), 0 /* vertexStride */);
}
-void Batcher::InsertTriangleStrip(GLState const & state, ref_ptr<AttributeProvider> params)
+void Batcher::InsertTriangleStrip(RenderState const & state, ref_ptr<AttributeProvider> params)
{
InsertTriangleStrip(state, params, nullptr);
}
-IndicesRange Batcher::InsertTriangleStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertTriangleStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle)
{
return InsertPrimitives<TriangleStripBatch>(state, params, move(handle), 0 /* vertexStride */);
}
-void Batcher::InsertTriangleFan(GLState const & state, ref_ptr<AttributeProvider> params)
+void Batcher::InsertTriangleFan(RenderState const & state, ref_ptr<AttributeProvider> params)
{
InsertTriangleFan(state, params, nullptr);
}
-IndicesRange Batcher::InsertTriangleFan(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertTriangleFan(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle)
{
return InsertPrimitives<TriangleFanBatch>(state, params, move(handle), 0 /* vertexStride */);
}
-void Batcher::InsertListOfStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+void Batcher::InsertListOfStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
uint8_t vertexStride)
{
InsertListOfStrip(state, params, nullptr, vertexStride);
}
-IndicesRange Batcher::InsertListOfStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertListOfStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle, uint8_t vertexStride)
{
return InsertPrimitives<TriangleListOfStripBatch>(state, params, move(handle), vertexStride);
}
-void Batcher::InsertLineStrip(GLState const & state, ref_ptr<AttributeProvider> params)
+void Batcher::InsertLineStrip(RenderState const & state, ref_ptr<AttributeProvider> params)
{
InsertLineStrip(state, params, nullptr);
}
-IndicesRange Batcher::InsertLineStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertLineStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle)
{
return InsertPrimitives<LineStripBatch>(state, params, move(handle), 0 /* vertexStride */);
}
-void Batcher::InsertLineRaw(GLState const & state, ref_ptr<AttributeProvider> params,
+void Batcher::InsertLineRaw(RenderState const & state, ref_ptr<AttributeProvider> params,
vector<int> const & indices)
{
InsertLineRaw(state, params, indices, nullptr);
}
-IndicesRange Batcher::InsertLineRaw(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertLineRaw(RenderState const & state, ref_ptr<AttributeProvider> params,
vector<int> const & indices, drape_ptr<OverlayHandle> && handle)
{
return InsertPrimitives<LineRawBatch>(state, params, move(handle), 0 /* vertexStride */, indices);
@@ -209,14 +209,14 @@ void Batcher::SetFeatureMinZoom(int minZoom)
void Batcher::ChangeBuffer(ref_ptr<CallbacksWrapper> wrapper)
{
- GLState const & state = wrapper->GetState();
+ RenderState const & state = wrapper->GetState();
FinalizeBucket(state);
ref_ptr<RenderBucket> bucket = GetBucket(state);
wrapper->SetVAO(bucket->GetBuffer());
}
-ref_ptr<RenderBucket> Batcher::GetBucket(GLState const & state)
+ref_ptr<RenderBucket> Batcher::GetBucket(RenderState const & state)
{
TBuckets::iterator it = m_buckets.find(state);
if (it != m_buckets.end())
@@ -232,7 +232,7 @@ ref_ptr<RenderBucket> Batcher::GetBucket(GLState const & state)
return result;
}
-void Batcher::FinalizeBucket(GLState const & state)
+void Batcher::FinalizeBucket(RenderState const & state)
{
TBuckets::iterator it = m_buckets.find(state);
ASSERT(it != m_buckets.end(), ("Have no bucket for finalize with given state"));
@@ -257,7 +257,7 @@ void Batcher::Flush()
}
template <typename TBatcher, typename ... TArgs>
-IndicesRange Batcher::InsertPrimitives(GLState const & state, ref_ptr<AttributeProvider> params,
+IndicesRange Batcher::InsertPrimitives(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && transferHandle, uint8_t vertexStride,
TArgs ... batcherArgs)
{
diff --git a/drape/batcher.hpp b/drape/batcher.hpp
index e3db046245..3f4ecf714b 100644
--- a/drape/batcher.hpp
+++ b/drape/batcher.hpp
@@ -1,10 +1,10 @@
#pragma once
#include "drape/attribute_provider.hpp"
-#include "drape/glstate.hpp"
#include "drape/overlay_handle.hpp"
#include "drape/pointers.hpp"
#include "drape/render_bucket.hpp"
+#include "drape/render_state.hpp"
#include "drape/vertex_array_buffer.hpp"
#include "base/macros.hpp"
@@ -28,32 +28,32 @@ public:
Batcher(uint32_t indexBufferSize, uint32_t vertexBufferSize);
~Batcher();
- void InsertTriangleList(GLState const & state, ref_ptr<AttributeProvider> params);
- IndicesRange InsertTriangleList(GLState const & state, ref_ptr<AttributeProvider> params,
+ void InsertTriangleList(RenderState const & state, ref_ptr<AttributeProvider> params);
+ IndicesRange InsertTriangleList(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle);
- void InsertTriangleStrip(GLState const & state, ref_ptr<AttributeProvider> params);
- IndicesRange InsertTriangleStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+ void InsertTriangleStrip(RenderState const & state, ref_ptr<AttributeProvider> params);
+ IndicesRange InsertTriangleStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle);
- void InsertTriangleFan(GLState const & state, ref_ptr<AttributeProvider> params);
- IndicesRange InsertTriangleFan(GLState const & state, ref_ptr<AttributeProvider> params,
+ void InsertTriangleFan(RenderState const & state, ref_ptr<AttributeProvider> params);
+ IndicesRange InsertTriangleFan(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle);
- void InsertListOfStrip(GLState const & state, ref_ptr<AttributeProvider> params, uint8_t vertexStride);
- IndicesRange InsertListOfStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+ void InsertListOfStrip(RenderState const & state, ref_ptr<AttributeProvider> params, uint8_t vertexStride);
+ IndicesRange InsertListOfStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle, uint8_t vertexStride);
- void InsertLineStrip(GLState const & state, ref_ptr<AttributeProvider> params);
- IndicesRange InsertLineStrip(GLState const & state, ref_ptr<AttributeProvider> params,
+ void InsertLineStrip(RenderState const & state, ref_ptr<AttributeProvider> params);
+ IndicesRange InsertLineStrip(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && handle);
- void InsertLineRaw(GLState const & state, ref_ptr<AttributeProvider> params,
+ void InsertLineRaw(RenderState const & state, ref_ptr<AttributeProvider> params,
vector<int> const & indices);
- IndicesRange InsertLineRaw(GLState const & state, ref_ptr<AttributeProvider> params,
+ IndicesRange InsertLineRaw(RenderState const & state, ref_ptr<AttributeProvider> params,
vector<int> const & indices, drape_ptr<OverlayHandle> && handle);
- typedef function<void (GLState const &, drape_ptr<RenderBucket> &&)> TFlushFn;
+ typedef function<void (RenderState const &, drape_ptr<RenderBucket> &&)> TFlushFn;
void StartSession(TFlushFn const & flusher);
void EndSession();
void ResetSession();
@@ -62,20 +62,20 @@ public:
private:
template<typename TBatcher, typename ... TArgs>
- IndicesRange InsertPrimitives(GLState const & state, ref_ptr<AttributeProvider> params,
+ IndicesRange InsertPrimitives(RenderState const & state, ref_ptr<AttributeProvider> params,
drape_ptr<OverlayHandle> && transferHandle, uint8_t vertexStride,
TArgs ... batcherArgs);
class CallbacksWrapper;
void ChangeBuffer(ref_ptr<CallbacksWrapper> wrapper);
- ref_ptr<RenderBucket> GetBucket(GLState const & state);
+ ref_ptr<RenderBucket> GetBucket(RenderState const & state);
- void FinalizeBucket(GLState const & state);
+ void FinalizeBucket(RenderState const & state);
void Flush();
TFlushFn m_flushInterface;
- using TBuckets = map<GLState, drape_ptr<RenderBucket>>;
+ using TBuckets = map<RenderState, drape_ptr<RenderBucket>>;
TBuckets m_buckets;
uint32_t m_indexBufferSize;
diff --git a/drape/drape_tests/batcher_tests.cpp b/drape/drape_tests/batcher_tests.cpp
index dac7ea49b7..8b4ae0f489 100644
--- a/drape/drape_tests/batcher_tests.cpp
+++ b/drape/drape_tests/batcher_tests.cpp
@@ -28,7 +28,7 @@ namespace
{
struct VAOAcceptor
{
- virtual void FlushFullBucket(GLState const & /*state*/, drape_ptr<RenderBucket> && bucket)
+ virtual void FlushFullBucket(RenderState const & /*state*/, drape_ptr<RenderBucket> && bucket)
{
m_vao.push_back(move(bucket));
}
@@ -36,11 +36,11 @@ struct VAOAcceptor
std::vector<drape_ptr<RenderBucket>> m_vao;
};
-class TestRenderState : public dp::BaseRenderState
+class TestExtension : public dp::BaseRenderStateExtension
{
public:
- bool Less(ref_ptr<dp::BaseRenderState> other) const override { return false; }
- bool Equal(ref_ptr<dp::BaseRenderState> other) const override { return true; }
+ bool Less(ref_ptr<dp::BaseRenderStateExtension> other) const override { return false; }
+ bool Equal(ref_ptr<dp::BaseRenderStateExtension> other) const override { return true; }
};
class BatcherExpectations
@@ -62,8 +62,8 @@ public:
ExpectBufferCreation(vertexSize, indexCount, indexCmp, dataCmp);
- auto renderState = make_unique_dp<TestRenderState>();
- auto state = GLState(0, make_ref(renderState));
+ auto renderState = make_unique_dp<TestExtension>();
+ auto state = RenderState(0, make_ref(renderState));
BindingInfo binding(1);
BindingDecl & decl = binding.GetBindingDecl(0);
@@ -141,7 +141,7 @@ UNIT_TEST(BatchLists_Test)
dp::IndexStorage indexes(std::move(indexesRaw));
BatcherExpectations expectations;
- auto fn = [](Batcher * batcher, GLState const & state, ref_ptr<AttributeProvider> p)
+ auto fn = [](Batcher * batcher, RenderState const & state, ref_ptr<AttributeProvider> p)
{
batcher->InsertTriangleList(state, p);
};
@@ -161,7 +161,7 @@ UNIT_TEST(BatchListOfStript_4stride)
dp::IndexStorage indexes(std::move(indexesRaw));
BatcherExpectations expectations;
- auto fn = [](Batcher * batcher, GLState const & state, ref_ptr<AttributeProvider> p)
+ auto fn = [](Batcher * batcher, RenderState const & state, ref_ptr<AttributeProvider> p)
{
batcher->InsertListOfStrip(state, p, dp::Batcher::VertexPerQuad);
};
@@ -192,7 +192,7 @@ UNIT_TEST(BatchListOfStript_5stride)
dp::IndexStorage indexes(std::move(indexesRaw));
BatcherExpectations expectations;
- auto fn = [](Batcher * batcher, GLState const & state, ref_ptr<AttributeProvider> p)
+ auto fn = [](Batcher * batcher, RenderState const & state, ref_ptr<AttributeProvider> p)
{
batcher->InsertListOfStrip(state, p, 5);
};
@@ -226,7 +226,7 @@ UNIT_TEST(BatchListOfStript_6stride)
dp::IndexStorage indexes(std::move(indexesRaw));
BatcherExpectations expectations;
- auto fn = [](Batcher * batcher, GLState const & state, ref_ptr<AttributeProvider> p)
+ auto fn = [](Batcher * batcher, RenderState const & state, ref_ptr<AttributeProvider> p)
{
batcher->InsertListOfStrip(state, p, 6);
};
@@ -371,8 +371,8 @@ UNIT_TEST(BatchListOfStript_partial)
test.AddBufferNode(node2);
test.CloseExpection();
- auto renderState = make_unique_dp<TestRenderState>();
- auto state = GLState(0, make_ref(renderState));
+ auto renderState = make_unique_dp<TestExtension>();
+ auto state = RenderState(0, make_ref(renderState));
BindingInfo binding(1);
BindingDecl & decl = binding.GetBindingDecl(0);
diff --git a/drape/gpu_program.cpp b/drape/gpu_program.cpp
index 0b3b949a5a..2ce44807d7 100644
--- a/drape/gpu_program.cpp
+++ b/drape/gpu_program.cpp
@@ -1,6 +1,6 @@
#include "drape/gpu_program.hpp"
#include "drape/glfunctions.hpp"
-#include "drape/glstate.hpp"
+#include "drape/render_state.hpp"
#include "drape/support_manager.hpp"
#include "base/logging.hpp"
diff --git a/drape/glstate.cpp b/drape/render_state.cpp
index 6f52e0bfc8..90e4cd987b 100644
--- a/drape/glstate.cpp
+++ b/drape/render_state.cpp
@@ -1,4 +1,4 @@
-#include "drape/glstate.hpp"
+#include "drape/render_state.hpp"
#include "drape/glfunctions.hpp"
#include "base/buffer_vector.hpp"
@@ -33,60 +33,60 @@ bool Blending::operator<(Blending const & other) const { return m_isEnabled < ot
bool Blending::operator==(Blending const & other) const { return m_isEnabled == other.m_isEnabled; }
-glConst GLState::GetDepthFunction() const
+glConst RenderState::GetDepthFunction() const
{
return m_depthFunction;
}
-void GLState::SetDepthFunction(glConst functionName)
+void RenderState::SetDepthFunction(glConst functionName)
{
m_depthFunction = functionName;
}
-bool GLState::GetDepthTestEnabled() const
+bool RenderState::GetDepthTestEnabled() const
{
return m_depthTestEnabled;
}
-void GLState::SetDepthTestEnabled(bool enabled)
+void RenderState::SetDepthTestEnabled(bool enabled)
{
m_depthTestEnabled = enabled;
}
-glConst GLState::GetTextureFilter() const
+glConst RenderState::GetTextureFilter() const
{
return m_textureFilter;
}
-void GLState::SetTextureFilter(glConst filter)
+void RenderState::SetTextureFilter(glConst filter)
{
m_textureFilter = filter;
}
-bool GLState::GetDrawAsLine() const
+bool RenderState::GetDrawAsLine() const
{
return m_drawAsLine;
}
-void GLState::SetDrawAsLine(bool drawAsLine)
+void RenderState::SetDrawAsLine(bool drawAsLine)
{
m_drawAsLine = drawAsLine;
}
-int GLState::GetLineWidth() const
+int RenderState::GetLineWidth() const
{
return m_lineWidth;
}
-void GLState::SetLineWidth(int width)
+void RenderState::SetLineWidth(int width)
{
m_lineWidth = width;
}
-bool GLState::operator<(GLState const & other) const
+bool RenderState::operator<(RenderState const & other) const
{
- if (!m_renderState->Equal(other.m_renderState))
- return m_renderState->Less(other.m_renderState);
+ if (!m_renderStateExtension->Equal(other.m_renderStateExtension))
+ return m_renderStateExtension->Less(other.m_renderStateExtension);
if (!(m_blending == other.m_blending))
return m_blending < other.m_blending;
if (m_gpuProgram != other.m_gpuProgram)
@@ -107,9 +107,9 @@ bool GLState::operator<(GLState const & other) const
return m_lineWidth < other.m_lineWidth;
}
-bool GLState::operator==(GLState const & other) const
+bool RenderState::operator==(RenderState const & other) const
{
- return m_renderState->Equal(other.m_renderState) &&
+ return m_renderStateExtension->Equal(other.m_renderStateExtension) &&
m_gpuProgram == other.m_gpuProgram &&
m_gpuProgram3d == other.m_gpuProgram3d &&
m_blending == other.m_blending &&
@@ -121,14 +121,14 @@ bool GLState::operator==(GLState const & other) const
m_lineWidth == other.m_lineWidth;
}
-bool GLState::operator!=(GLState const & other) const
+bool RenderState::operator!=(RenderState const & other) const
{
return !operator==(other);
}
uint8_t TextureState::m_usedSlots = 0;
-void TextureState::ApplyTextures(GLState const & state, ref_ptr<GpuProgram> program)
+void TextureState::ApplyTextures(RenderState const & state, ref_ptr<GpuProgram> program)
{
m_usedSlots = 0;
@@ -160,12 +160,12 @@ uint8_t TextureState::GetLastUsedSlots()
return m_usedSlots;
}
-void ApplyBlending(GLState const & state)
+void ApplyBlending(RenderState const & state)
{
state.GetBlending().Apply();
}
-void ApplyState(GLState const & state, ref_ptr<GpuProgram> program)
+void ApplyState(RenderState const & state, ref_ptr<GpuProgram> program)
{
TextureState::ApplyTextures(state, program);
ApplyBlending(state);
diff --git a/drape/glstate.hpp b/drape/render_state.hpp
index 9c3ca73b6a..333e4f696d 100644
--- a/drape/glstate.hpp
+++ b/drape/render_state.hpp
@@ -34,31 +34,31 @@ struct Blending
bool m_isEnabled;
};
-class BaseRenderState
+class BaseRenderStateExtension
{
public:
- virtual ~BaseRenderState() = default;
- virtual bool Less(ref_ptr<dp::BaseRenderState> other) const = 0;
- virtual bool Equal(ref_ptr<dp::BaseRenderState> other) const = 0;
+ virtual ~BaseRenderStateExtension() = default;
+ virtual bool Less(ref_ptr<dp::BaseRenderStateExtension> other) const = 0;
+ virtual bool Equal(ref_ptr<dp::BaseRenderStateExtension> other) const = 0;
};
-class GLState
+class RenderState
{
public:
template<typename ProgramType>
- GLState(ProgramType gpuProgram, ref_ptr<BaseRenderState> renderState)
- : m_renderState(std::move(renderState))
+ RenderState(ProgramType gpuProgram, ref_ptr<BaseRenderStateExtension> renderStateExtension)
+ : m_renderStateExtension(std::move(renderStateExtension))
, m_gpuProgram(static_cast<size_t>(gpuProgram))
, m_gpuProgram3d(static_cast<size_t>(gpuProgram))
{
- ASSERT(m_renderState != nullptr, ());
+ ASSERT(m_renderStateExtension != nullptr, ());
}
- template<typename RenderStateType>
- ref_ptr<RenderStateType> GetRenderState() const
+ template<typename RenderStateExtensionType>
+ ref_ptr<RenderStateExtensionType> GetRenderStateExtension() const
{
- ASSERT(dynamic_cast<RenderStateType *>(m_renderState.get()) != nullptr, ());
- return make_ref(static_cast<RenderStateType *>(m_renderState.get()));
+ ASSERT(dynamic_cast<RenderStateExtensionType *>(m_renderStateExtension.get()) != nullptr, ());
+ return make_ref(static_cast<RenderStateExtensionType *>(m_renderStateExtension.get()));
}
void SetColorTexture(ref_ptr<Texture> tex) { m_colorTexture = tex; }
@@ -93,12 +93,12 @@ public:
int GetLineWidth() const;
void SetLineWidth(int width);
- bool operator<(GLState const & other) const;
- bool operator==(GLState const & other) const;
- bool operator!=(GLState const & other) const;
+ bool operator<(RenderState const & other) const;
+ bool operator==(RenderState const & other) const;
+ bool operator!=(RenderState const & other) const;
private:
- ref_ptr<BaseRenderState> m_renderState;
+ ref_ptr<BaseRenderStateExtension> m_renderStateExtension;
size_t m_gpuProgram;
size_t m_gpuProgram3d;
Blending m_blending;
@@ -118,13 +118,13 @@ private:
class TextureState
{
public:
- static void ApplyTextures(GLState const & state, ref_ptr<GpuProgram> program);
+ static void ApplyTextures(RenderState const & state, ref_ptr<GpuProgram> program);
static uint8_t GetLastUsedSlots();
private:
static uint8_t m_usedSlots;
};
-void ApplyState(GLState const & state, ref_ptr<GpuProgram> program);
-void ApplyBlending(GLState const & state);
+void ApplyState(RenderState const & state, ref_ptr<GpuProgram> program);
+void ApplyBlending(RenderState const & state);
} // namespace dp
diff --git a/drape_frontend/CMakeLists.txt b/drape_frontend/CMakeLists.txt
index 918b4c8e84..8340050538 100644
--- a/drape_frontend/CMakeLists.txt
+++ b/drape_frontend/CMakeLists.txt
@@ -154,8 +154,8 @@ set(
render_group.cpp
render_group.hpp
render_node.hpp
- render_state.cpp
- render_state.hpp
+ render_state_extension.cpp
+ render_state_extension.hpp
requested_tiles.cpp
requested_tiles.hpp
route_builder.cpp
diff --git a/drape_frontend/apply_feature_functors.cpp b/drape_frontend/apply_feature_functors.cpp
index c45f7aae2e..b49ace75b7 100644
--- a/drape_frontend/apply_feature_functors.cpp
+++ b/drape_frontend/apply_feature_functors.cpp
@@ -484,7 +484,7 @@ void BaseApplyFeature::SetHotelData(HotelData && hotelData)
ApplyPointFeature::ApplyPointFeature(TileKey const & tileKey, TInsertShapeFn const & insertShape,
FeatureID const & id, int minVisibleScale, uint8_t rank,
CaptionDescription const & captions, float posZ,
- int displacementMode, RenderState::DepthLayer depthLayer)
+ int displacementMode, DepthLayer depthLayer)
: TBase(tileKey, insertShape, id, minVisibleScale, rank, captions)
, m_posZ(posZ)
, m_hasPoint(false)
@@ -532,8 +532,8 @@ void ApplyPointFeature::ProcessPointRule(Stylist::TRuleWrapper const & rule)
params.m_tileCenter = m_tileRect.Center();
ExtractCaptionParams(capRule, pRule->GetCaption(1), depth, params);
params.m_depthLayer = m_depthLayer;
- params.m_depthTestEnabled = m_depthLayer != RenderState::NavigationLayer &&
- m_depthLayer != RenderState::OverlayLayer;
+ params.m_depthTestEnabled = m_depthLayer != DepthLayer::NavigationLayer &&
+ m_depthLayer != DepthLayer::OverlayLayer;
params.m_minVisibleScale = m_minVisibleScale;
params.m_rank = m_rank;
params.m_posZ = m_posZ;
@@ -568,7 +568,7 @@ void ApplyPointFeature::Finish(ref_ptr<dp::TextureManager> texMng)
specialDisplacementMode = true;
specialModePriority = CalculateHotelOverlayPriority(m_hotelData);
}
- else if (m_depthLayer == RenderState::NavigationLayer && GetStyleReader().IsCarNavigationStyle())
+ else if (m_depthLayer == DepthLayer::NavigationLayer && GetStyleReader().IsCarNavigationStyle())
{
specialDisplacementMode = true;
specialModePriority = CalculateNavigationPoiPriority();
@@ -580,8 +580,8 @@ void ApplyPointFeature::Finish(ref_ptr<dp::TextureManager> texMng)
{
PoiSymbolViewParams params(m_id);
params.m_tileCenter = m_tileRect.Center();
- params.m_depthTestEnabled = m_depthLayer != RenderState::NavigationLayer &&
- m_depthLayer != RenderState::OverlayLayer;
+ params.m_depthTestEnabled = m_depthLayer != DepthLayer::NavigationLayer &&
+ m_depthLayer != DepthLayer::OverlayLayer;
params.m_depth = static_cast<float>(m_symbolDepth);
params.m_depthLayer = m_depthLayer;
params.m_minVisibleScale = m_minVisibleScale;
@@ -651,7 +651,7 @@ ApplyAreaFeature::ApplyAreaFeature(TileKey const & tileKey, TInsertShapeFn const
bool skipAreaGeometry, float minPosZ, float posZ, int minVisibleScale,
uint8_t rank, CaptionDescription const & captions, bool hatchingArea)
: TBase(tileKey, insertShape, id, minVisibleScale, rank, captions, posZ,
- dp::displacement::kDefaultMode, RenderState::OverlayLayer)
+ dp::displacement::kDefaultMode, DepthLayer::OverlayLayer)
, m_minPosZ(minPosZ)
, m_isBuilding(isBuilding)
, m_skipAreaGeometry(skipAreaGeometry)
@@ -1015,7 +1015,7 @@ void ApplyLineFeatureAdditional::GetRoadShieldsViewParams(ref_ptr<dp::TextureMan
textParams.m_tileCenter = m_tileRect.Center();
textParams.m_depthTestEnabled = false;
textParams.m_depth = m_depth;
- textParams.m_depthLayer = RenderState::OverlayLayer;
+ textParams.m_depthLayer = DepthLayer::OverlayLayer;
textParams.m_minVisibleScale = kShieldMinVisibleZoomLevel;
textParams.m_rank = m_rank;
textParams.m_featureID = m_id;
@@ -1046,7 +1046,7 @@ void ApplyLineFeatureAdditional::GetRoadShieldsViewParams(ref_ptr<dp::TextureMan
symbolParams.m_tileCenter = m_tileRect.Center();
symbolParams.m_depthTestEnabled = true;
symbolParams.m_depth = m_depth;
- symbolParams.m_depthLayer = RenderState::OverlayLayer;
+ symbolParams.m_depthLayer = DepthLayer::OverlayLayer;
symbolParams.m_minVisibleScale = kShieldMinVisibleZoomLevel;
symbolParams.m_rank = m_rank;
symbolParams.m_anchor = anchor;
@@ -1074,7 +1074,7 @@ void ApplyLineFeatureAdditional::GetRoadShieldsViewParams(ref_ptr<dp::TextureMan
poiParams.m_tileCenter = m_tileRect.Center();
poiParams.m_depth = m_depth;
poiParams.m_depthTestEnabled = false;
- poiParams.m_depthLayer = RenderState::OverlayLayer;
+ poiParams.m_depthLayer = DepthLayer::OverlayLayer;
poiParams.m_minVisibleScale = kShieldMinVisibleZoomLevel;
poiParams.m_rank = m_rank;
poiParams.m_symbolName = symbolName;
diff --git a/drape_frontend/apply_feature_functors.hpp b/drape_frontend/apply_feature_functors.hpp
index f276a57f9a..01cc0f60a8 100644
--- a/drape_frontend/apply_feature_functors.hpp
+++ b/drape_frontend/apply_feature_functors.hpp
@@ -79,7 +79,7 @@ public:
ApplyPointFeature(TileKey const & tileKey, TInsertShapeFn const & insertShape,
FeatureID const & id, int minVisibleScale, uint8_t rank,
CaptionDescription const & captions, float posZ,
- int displacementMode, RenderState::DepthLayer depthLayer);
+ int displacementMode, DepthLayer depthLayer);
void operator()(m2::PointD const & point, bool hasArea, bool isUGC);
void ProcessPointRule(Stylist::TRuleWrapper const & rule);
@@ -94,7 +94,7 @@ private:
bool m_createdByEditor;
bool m_obsoleteInEditor;
bool m_isUGC;
- RenderState::DepthLayer m_depthLayer;
+ DepthLayer m_depthLayer;
double m_symbolDepth;
SymbolRuleProto const * m_symbolRule;
m2::PointF m_centerPoint;
diff --git a/drape_frontend/area_shape.cpp b/drape_frontend/area_shape.cpp
index 334654900a..7eb82cf708 100644
--- a/drape_frontend/area_shape.cpp
+++ b/drape_frontend/area_shape.cpp
@@ -1,5 +1,5 @@
#include "drape_frontend/area_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "shaders/programs.hpp"
@@ -60,7 +60,7 @@ void AreaShape::DrawArea(ref_ptr<dp::Batcher> batcher, m2::PointD const & colorU
m_params.m_depth), uv);
});
- auto state = CreateGLState(gpu::Program::Area, RenderState::GeometryLayer);
+ auto state = CreateRenderState(gpu::Program::Area, DepthLayer::GeometryLayer);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(texture);
@@ -82,7 +82,7 @@ void AreaShape::DrawArea(ref_ptr<dp::Batcher> batcher, m2::PointD const & colorU
vertices.emplace_back(gpu::AreaVertex(glsl::vec3(pos, m_params.m_depth), ouv));
}
- auto outlineState = CreateGLState(gpu::Program::AreaOutline, RenderState::GeometryLayer);
+ auto outlineState = CreateRenderState(gpu::Program::AreaOutline, DepthLayer::GeometryLayer);
outlineState.SetDepthTestEnabled(m_params.m_depthTestEnabled);
outlineState.SetColorTexture(texture);
outlineState.SetDrawAsLine(true);
@@ -116,7 +116,7 @@ void AreaShape::DrawHatchingArea(ref_ptr<dp::Batcher> batcher, m2::PointD const
vertexes[i].m_maskTexCoord.y = static_cast<float>(maxV * (m_vertexes[i].y - bbox.minY()) / bbox.SizeY());
}
- auto state = CreateGLState(gpu::Program::HatchingArea, RenderState::GeometryLayer);
+ auto state = CreateRenderState(gpu::Program::HatchingArea, DepthLayer::GeometryLayer);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(texture);
state.SetMaskTexture(hatchingTexture);
@@ -165,7 +165,7 @@ void AreaShape::DrawArea3D(ref_ptr<dp::Batcher> batcher, m2::PointD const & colo
vertexes.emplace_back(gpu::Area3dVertex(glsl::vec3(pt, -m_params.m_posZ), normal, uv));
}
- auto state = CreateGLState(gpu::Program::Area3d, RenderState::Geometry3dLayer);
+ auto state = CreateRenderState(gpu::Program::Area3d, DepthLayer::Geometry3dLayer);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(texture);
state.SetBlending(dp::Blending(false /* isEnabled */));
@@ -179,7 +179,7 @@ void AreaShape::DrawArea3D(ref_ptr<dp::Batcher> batcher, m2::PointD const & colo
{
glsl::vec2 const ouv = glsl::ToVec2(outlineUv);
- auto outlineState = CreateGLState(gpu::Program::Area3dOutline, RenderState::Geometry3dLayer);
+ auto outlineState = CreateRenderState(gpu::Program::Area3dOutline, DepthLayer::Geometry3dLayer);
outlineState.SetDepthTestEnabled(m_params.m_depthTestEnabled);
outlineState.SetColorTexture(texture);
outlineState.SetBlending(dp::Blending(false /* isEnabled */));
diff --git a/drape_frontend/arrow3d.cpp b/drape_frontend/arrow3d.cpp
index 05d1efafb5..b725ef6427 100644
--- a/drape_frontend/arrow3d.cpp
+++ b/drape_frontend/arrow3d.cpp
@@ -34,7 +34,7 @@ df::ColorConstant const kArrow3DColor = "Arrow3D";
df::ColorConstant const kArrow3DOutlineColor = "Arrow3DOutline";
Arrow3d::Arrow3d()
- : m_state(CreateGLState(gpu::Program::Arrow3d, RenderState::OverlayLayer))
+ : m_state(CreateRenderState(gpu::Program::Arrow3d, DepthLayer::OverlayLayer))
{
m_state.SetDepthTestEnabled(false);
m_vertices = {
diff --git a/drape_frontend/arrow3d.hpp b/drape_frontend/arrow3d.hpp
index 9cdb32e931..28946f2a47 100644
--- a/drape_frontend/arrow3d.hpp
+++ b/drape_frontend/arrow3d.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape/pointers.hpp"
@@ -56,7 +56,7 @@ private:
std::vector<float> m_vertices;
std::vector<float> m_normals;
- dp::GLState m_state;
+ dp::RenderState m_state;
bool m_isInitialized = false;
};
diff --git a/drape_frontend/backend_renderer.cpp b/drape_frontend/backend_renderer.cpp
index 5dbfec942a..19dc3a124d 100644
--- a/drape_frontend/backend_renderer.cpp
+++ b/drape_frontend/backend_renderer.cpp
@@ -678,7 +678,7 @@ void BackendRenderer::RecacheMapShapes()
m_commutator->PostMessage(ThreadsCommutator::RenderThread, std::move(msg), MessagePriority::Normal);
}
-void BackendRenderer::FlushGeometry(TileKey const & key, dp::GLState const & state,
+void BackendRenderer::FlushGeometry(TileKey const & key, dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && buffer)
{
m_contextFactory->GetResourcesUploadContext()->Flush();
diff --git a/drape_frontend/backend_renderer.hpp b/drape_frontend/backend_renderer.hpp
index f6c30cee2c..479d190b09 100644
--- a/drape_frontend/backend_renderer.hpp
+++ b/drape_frontend/backend_renderer.hpp
@@ -98,7 +98,7 @@ private:
void ReleaseResources();
void InitGLDependentResource();
- void FlushGeometry(TileKey const & key, dp::GLState const & state, drape_ptr<dp::RenderBucket> && buffer);
+ void FlushGeometry(TileKey const & key, dp::RenderState const & state, drape_ptr<dp::RenderBucket> && buffer);
void FlushTransitRenderData(TransitRenderData && renderData);
void FlushTrafficRenderData(TrafficRenderData && renderData);
diff --git a/drape_frontend/batchers_pool.hpp b/drape_frontend/batchers_pool.hpp
index 654d65b960..710b172b29 100644
--- a/drape_frontend/batchers_pool.hpp
+++ b/drape_frontend/batchers_pool.hpp
@@ -15,7 +15,7 @@ template <typename TKey, typename TKeyComparator>
class BatchersPool final
{
public:
- using TFlushFn = std::function<void (TKey const & key, dp::GLState const & state,
+ using TFlushFn = std::function<void (TKey const & key, dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && buffer)>;
BatchersPool(int initBatchersCount, TFlushFn const & flushFn,
diff --git a/drape_frontend/circles_pack_shape.cpp b/drape_frontend/circles_pack_shape.cpp
index 942f19a105..553b109715 100644
--- a/drape_frontend/circles_pack_shape.cpp
+++ b/drape_frontend/circles_pack_shape.cpp
@@ -25,9 +25,9 @@ struct CirclesPackStaticVertex
TNormal m_normal;
};
-dp::GLState GetCirclesPackState(ref_ptr<dp::TextureManager> texMng)
+dp::RenderState GetCirclesPackState(ref_ptr<dp::TextureManager> texMng)
{
- auto state = CreateGLState(gpu::Program::CirclePoint, RenderState::OverlayLayer);
+ auto state = CreateRenderState(gpu::Program::CirclePoint, DepthLayer::OverlayLayer);
state.SetColorTexture(texMng->GetSymbolsTexture());
state.SetDepthTestEnabled(false);
return state;
@@ -157,7 +157,7 @@ void CirclesPackShape::Draw(ref_ptr<dp::TextureManager> texMng, ref_ptr<dp::Grap
dynamicVertexData.resize(data.m_pointsCount * kVerticesInPoint);
dp::Batcher batcher(data.m_pointsCount * kIndicesInPoint, data.m_pointsCount * kVerticesInPoint);
- dp::SessionGuard guard(batcher, [&data](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [&data](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
data.m_bucket = std::move(b);
data.m_state = state;
diff --git a/drape_frontend/circles_pack_shape.hpp b/drape_frontend/circles_pack_shape.hpp
index 52f916b42f..065b7374e0 100644
--- a/drape_frontend/circles_pack_shape.hpp
+++ b/drape_frontend/circles_pack_shape.hpp
@@ -2,7 +2,7 @@
#include "drape_frontend/map_shape.hpp"
#include "drape_frontend/shape_view_params.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape/overlay_handle.hpp"
#include "drape/pointers.hpp"
@@ -23,11 +23,11 @@ struct CirclesPackRenderData
{
uint32_t m_pointsCount;
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::RenderBucket> m_bucket;
CirclesPackRenderData()
: m_pointsCount(0)
- , m_state(CreateGLState(gpu::Program::CirclePoint, RenderState::OverlayLayer))
+ , m_state(CreateRenderState(gpu::Program::CirclePoint, DepthLayer::OverlayLayer))
{}
};
diff --git a/drape_frontend/colored_symbol_shape.cpp b/drape_frontend/colored_symbol_shape.cpp
index 11a45bf21c..ae4f50ad8f 100644
--- a/drape_frontend/colored_symbol_shape.cpp
+++ b/drape_frontend/colored_symbol_shape.cpp
@@ -1,6 +1,6 @@
#include "drape_frontend/colored_symbol_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/visual_params.hpp"
#include "shaders/programs.hpp"
@@ -298,7 +298,7 @@ void ColoredSymbolShape::Draw(ref_ptr<dp::Batcher> batcher,
}
handle->SetOverlayRank(m_params.m_startOverlayRank);
}
- auto state = CreateGLState(gpu::Program::ColoredSymbol, m_params.m_depthLayer);
+ auto state = CreateRenderState(gpu::Program::ColoredSymbol, m_params.m_depthLayer);
state.SetProgram3d(gpu::Program::ColoredSymbolBillboard);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(colorRegion.GetTexture());
diff --git a/drape_frontend/drape_api_builder.cpp b/drape_frontend/drape_api_builder.cpp
index 1b2222fd2f..4423ca1f89 100644
--- a/drape_frontend/drape_api_builder.cpp
+++ b/drape_frontend/drape_api_builder.cpp
@@ -55,7 +55,7 @@ void DrapeApiBuilder::BuildLines(DrapeApi::TLines const & lines, ref_ptr<dp::Tex
auto property = make_unique_dp<DrapeApiRenderProperty>();
property->m_center = rect.Center();
{
- dp::SessionGuard guard(batcher, [&property, id](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [&property, id](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
property->m_id = id;
property->m_buckets.push_back(make_pair(state, move(b)));
diff --git a/drape_frontend/drape_api_builder.hpp b/drape_frontend/drape_api_builder.hpp
index 891862afab..6caa12b476 100644
--- a/drape_frontend/drape_api_builder.hpp
+++ b/drape_frontend/drape_api_builder.hpp
@@ -1,7 +1,7 @@
#pragma once
#include "drape_frontend/drape_api.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape/render_bucket.hpp"
#include "drape/texture_manager.hpp"
@@ -17,7 +17,7 @@ struct DrapeApiRenderProperty
{
string m_id;
m2::PointD m_center;
- vector<pair<dp::GLState, drape_ptr<dp::RenderBucket>>> m_buckets;
+ vector<pair<dp::RenderState, drape_ptr<dp::RenderBucket>>> m_buckets;
};
class DrapeApiBuilder
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index 16cdd58bcd..c187a19272 100755
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -216,7 +216,7 @@ void FrontendRenderer::AcceptMessage(ref_ptr<Message> message)
case Message::FlushTile:
{
ref_ptr<FlushRenderBucketMessage> msg = message;
- dp::GLState const & state = msg->GetState();
+ dp::RenderState const & state = msg->GetState();
TileKey const & key = msg->GetKey();
drape_ptr<dp::RenderBucket> bucket = msg->AcceptBuffer();
if (key.m_zoomLevel == m_currentZoomLevel && CheckTileGenerations(key))
@@ -1031,11 +1031,11 @@ void FrontendRenderer::OnResize(ScreenBase const & screen)
}
template<typename TRenderGroup>
-void FrontendRenderer::AddToRenderGroup(dp::GLState const & state,
+void FrontendRenderer::AddToRenderGroup(dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && renderBucket,
TileKey const & newTile)
{
- RenderLayer & layer = m_layers[GetDepthLayer(state)];
+ RenderLayer & layer = m_layers[static_cast<size_t>(GetDepthLayer(state))];
for (auto const & g : layer.m_renderGroups)
{
if (!g->IsPendingOnDelete() && g->GetState() == state && g->GetTileKey().EqualStrict(newTile))
@@ -1214,7 +1214,7 @@ void FrontendRenderer::RenderScene(ScreenBase const & modelView, bool activeFram
context->Clear(dp::ClearBits::ColorBit | dp::ClearBits::DepthBit | dp::ClearBits::StencilBit);
Render2dLayer(modelView);
- RenderUserMarksLayer(modelView, RenderState::UserLineLayer);
+ RenderUserMarksLayer(modelView, DepthLayer::UserLineLayer);
if (m_buildingsFramebuffer->IsSupported())
{
@@ -1253,7 +1253,7 @@ void FrontendRenderer::RenderScene(ScreenBase const & modelView, bool activeFram
{
StencilWriterGuard guard(make_ref(m_postprocessRenderer));
RenderOverlayLayer(modelView);
- RenderUserMarksLayer(modelView, RenderState::LocalAdsMarkLayer);
+ RenderUserMarksLayer(modelView, DepthLayer::LocalAdsMarkLayer);
}
m_gpsTrackRenderer->RenderTrack(modelView, m_currentZoomLevel, make_ref(m_gpuProgramManager),
@@ -1271,9 +1271,9 @@ void FrontendRenderer::RenderScene(ScreenBase const & modelView, bool activeFram
{
StencilWriterGuard guard(make_ref(m_postprocessRenderer));
- RenderUserMarksLayer(modelView, RenderState::UserMarkLayer);
- RenderUserMarksLayer(modelView, RenderState::TransitMarkLayer);
- RenderUserMarksLayer(modelView, RenderState::RoutingMarkLayer);
+ RenderUserMarksLayer(modelView, DepthLayer::UserMarkLayer);
+ RenderUserMarksLayer(modelView, DepthLayer::TransitMarkLayer);
+ RenderUserMarksLayer(modelView, DepthLayer::RoutingMarkLayer);
RenderSearchMarksLayer(modelView);
}
@@ -1305,7 +1305,7 @@ void FrontendRenderer::RenderScene(ScreenBase const & modelView, bool activeFram
void FrontendRenderer::Render2dLayer(ScreenBase const & modelView)
{
- RenderLayer & layer2d = m_layers[RenderState::GeometryLayer];
+ RenderLayer & layer2d = m_layers[static_cast<size_t>(DepthLayer::GeometryLayer)];
layer2d.Sort(make_ref(m_overlayTree));
for (drape_ptr<RenderGroup> const & group : layer2d.m_renderGroups)
@@ -1314,7 +1314,7 @@ void FrontendRenderer::Render2dLayer(ScreenBase const & modelView)
void FrontendRenderer::Render3dLayer(ScreenBase const & modelView, bool useFramebuffer)
{
- RenderLayer & layer = m_layers[RenderState::Geometry3dLayer];
+ RenderLayer & layer = m_layers[static_cast<size_t>(DepthLayer::Geometry3dLayer)];
if (layer.m_renderGroups.empty())
return;
@@ -1347,7 +1347,7 @@ void FrontendRenderer::Render3dLayer(ScreenBase const & modelView, bool useFrame
void FrontendRenderer::RenderOverlayLayer(ScreenBase const & modelView)
{
- RenderLayer & overlay = m_layers[RenderState::OverlayLayer];
+ RenderLayer & overlay = m_layers[static_cast<size_t>(DepthLayer::OverlayLayer)];
BuildOverlayTree(modelView);
for (drape_ptr<RenderGroup> & group : overlay.m_renderGroups)
RenderSingleGroup(modelView, make_ref(group));
@@ -1358,7 +1358,7 @@ void FrontendRenderer::RenderOverlayLayer(ScreenBase const & modelView)
void FrontendRenderer::RenderNavigationOverlayLayer(ScreenBase const & modelView)
{
- RenderLayer & navOverlayLayer = m_layers[RenderState::NavigationLayer];
+ RenderLayer & navOverlayLayer = m_layers[static_cast<size_t>(DepthLayer::NavigationLayer)];
for (auto & group : navOverlayLayer.m_renderGroups)
{
if (group->HasOverlayHandles())
@@ -1428,9 +1428,9 @@ void FrontendRenderer::RenderRouteLayer(ScreenBase const & modelView)
make_ref(m_gpuProgramManager), m_frameValues);
}
-void FrontendRenderer::RenderUserMarksLayer(ScreenBase const & modelView, RenderState::DepthLayer layerId)
+void FrontendRenderer::RenderUserMarksLayer(ScreenBase const & modelView, DepthLayer layerId)
{
- auto & renderGroups = m_layers[layerId].m_renderGroups;
+ auto & renderGroups = m_layers[static_cast<size_t>(layerId)].m_renderGroups;
if (renderGroups.empty())
return;
@@ -1442,14 +1442,14 @@ void FrontendRenderer::RenderUserMarksLayer(ScreenBase const & modelView, Render
void FrontendRenderer::RenderSearchMarksLayer(ScreenBase const & modelView)
{
- auto & layer = m_layers[RenderState::SearchMarkLayer];
+ auto & layer = m_layers[static_cast<size_t>(DepthLayer::SearchMarkLayer)];
layer.Sort(nullptr);
for (drape_ptr<RenderGroup> & group : layer.m_renderGroups)
{
group->SetOverlayVisibility(true);
group->Update(modelView);
}
- RenderUserMarksLayer(modelView, RenderState::SearchMarkLayer);
+ RenderUserMarksLayer(modelView, DepthLayer::SearchMarkLayer);
}
void FrontendRenderer::RenderEmptyFrame()
@@ -1470,15 +1470,15 @@ void FrontendRenderer::RenderEmptyFrame()
void FrontendRenderer::BuildOverlayTree(ScreenBase const & modelView)
{
- static std::vector<RenderState::DepthLayer> layers = {RenderState::OverlayLayer,
- RenderState::LocalAdsMarkLayer,
- RenderState::NavigationLayer,
- RenderState::TransitMarkLayer,
- RenderState::RoutingMarkLayer};
+ static std::vector<DepthLayer> layers = {DepthLayer::OverlayLayer,
+ DepthLayer::LocalAdsMarkLayer,
+ DepthLayer::NavigationLayer,
+ DepthLayer::TransitMarkLayer,
+ DepthLayer::RoutingMarkLayer};
BeginUpdateOverlayTree(modelView);
for (auto const & layerId : layers)
{
- RenderLayer & overlay = m_layers[layerId];
+ RenderLayer & overlay = m_layers[static_cast<size_t>(layerId)];
overlay.Sort(make_ref(m_overlayTree));
for (drape_ptr<RenderGroup> & group : overlay.m_renderGroups)
UpdateOverlayTree(modelView, group);
@@ -1488,7 +1488,7 @@ void FrontendRenderer::BuildOverlayTree(ScreenBase const & modelView)
EndUpdateOverlayTree();
}
-void FrontendRenderer::PrepareBucket(dp::GLState const & state, drape_ptr<dp::RenderBucket> & bucket)
+void FrontendRenderer::PrepareBucket(dp::RenderState const & state, drape_ptr<dp::RenderBucket> & bucket)
{
auto program = m_gpuProgramManager->GetProgram(state.GetProgram<gpu::Program>());
auto program3d = m_gpuProgramManager->GetProgram(state.GetProgram3d<gpu::Program>());
diff --git a/drape_frontend/frontend_renderer.hpp b/drape_frontend/frontend_renderer.hpp
index 982e0d1237..e84866d2d9 100755
--- a/drape_frontend/frontend_renderer.hpp
+++ b/drape_frontend/frontend_renderer.hpp
@@ -13,7 +13,7 @@
#include "drape_frontend/navigator.hpp"
#include "drape_frontend/overlays_tracker.hpp"
#include "drape_frontend/render_group.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/requested_tiles.hpp"
#include "drape_frontend/route_renderer.hpp"
#include "drape_frontend/postprocess_renderer.hpp"
@@ -143,7 +143,7 @@ protected:
private:
void OnResize(ScreenBase const & screen);
void RenderScene(ScreenBase const & modelView, bool activeFrame);
- void PrepareBucket(dp::GLState const & state, drape_ptr<dp::RenderBucket> & bucket);
+ void PrepareBucket(dp::RenderState const & state, drape_ptr<dp::RenderBucket> & bucket);
void RenderSingleGroup(ScreenBase const & modelView, ref_ptr<BaseRenderGroup> group);
void RefreshProjection(ScreenBase const & screen);
void RefreshZScale(ScreenBase const & screen);
@@ -162,7 +162,7 @@ private:
void Render3dLayer(ScreenBase const & modelView, bool useFramebuffer);
void RenderOverlayLayer(ScreenBase const & modelView);
void RenderNavigationOverlayLayer(ScreenBase const & modelView);
- void RenderUserMarksLayer(ScreenBase const & modelView, RenderState::DepthLayer layerId);
+ void RenderUserMarksLayer(ScreenBase const & modelView, DepthLayer layerId);
void RenderTransitSchemeLayer(ScreenBase const & modelView);
void RenderTrafficLayer(ScreenBase const & modelView);
void RenderRouteLayer(ScreenBase const & modelView);
@@ -224,7 +224,7 @@ private:
void EndUpdateOverlayTree();
template<typename TRenderGroup>
- void AddToRenderGroup(dp::GLState const & state, drape_ptr<dp::RenderBucket> && renderBucket,
+ void AddToRenderGroup(dp::RenderState const & state, drape_ptr<dp::RenderBucket> && renderBucket,
TileKey const & newTile);
using TRenderGroupRemovePredicate = std::function<bool(drape_ptr<RenderGroup> const &)>;
@@ -256,7 +256,7 @@ private:
drape_ptr<gpu::ProgramManager> m_gpuProgramManager;
- std::array<RenderLayer, RenderState::LayersCount> m_layers;
+ std::array<RenderLayer, static_cast<size_t>(DepthLayer::LayersCount)> m_layers;
drape_ptr<gui::LayerRenderer> m_guiRenderer;
gui::TWidgetsLayoutInfo m_lastWidgetsLayout;
@@ -296,7 +296,6 @@ private:
ref_ptr<RequestedTiles> m_requestedTiles;
uint64_t m_maxGeneration;
uint64_t m_maxUserMarksGeneration;
- int m_mergeBucketsCounter = 0;
int m_lastRecacheRouteId = 0;
diff --git a/drape_frontend/gps_track_renderer.cpp b/drape_frontend/gps_track_renderer.cpp
index 36eba340db..a27cd8c412 100644
--- a/drape_frontend/gps_track_renderer.cpp
+++ b/drape_frontend/gps_track_renderer.cpp
@@ -309,7 +309,7 @@ void GpsTrackRenderer::RenderTrack(ScreenBase const & screen, int zoomLevel,
program->Bind();
ASSERT_GREATER(m_renderData.size(), 0, ());
- dp::GLState const & state = m_renderData.front()->m_state;
+ dp::RenderState const & state = m_renderData.front()->m_state;
dp::ApplyState(state, program);
mng->GetParamsSetter()->Apply(program, params);
diff --git a/drape_frontend/gui/choose_position_mark.cpp b/drape_frontend/gui/choose_position_mark.cpp
index 7b813aa83e..394d462348 100644
--- a/drape_frontend/gui/choose_position_mark.cpp
+++ b/drape_frontend/gui/choose_position_mark.cpp
@@ -59,7 +59,7 @@ drape_ptr<ShapeRenderer> ChoosePositionMark::Draw(ref_ptr<dp::TextureManager> te
ChoosePositionMarkVertex(glsl::vec2(halfSize.x, -halfSize.y), glsl::ToVec2(texRect.RightBottom()))
};
- auto state = df::CreateGLState(gpu::Program::TexturingGui, df::RenderState::GuiLayer);
+ auto state = df::CreateRenderState(gpu::Program::TexturingGui, df::DepthLayer::GuiLayer);
state.SetColorTexture(region.GetTexture());
state.SetDepthTestEnabled(false);
diff --git a/drape_frontend/gui/compass.cpp b/drape_frontend/gui/compass.cpp
index 814603ebe9..92c9fdca7f 100644
--- a/drape_frontend/gui/compass.cpp
+++ b/drape_frontend/gui/compass.cpp
@@ -106,7 +106,7 @@ drape_ptr<ShapeRenderer> Compass::Draw(m2::PointF & compassSize, ref_ptr<dp::Tex
CompassVertex(glsl::vec2(halfSize.x, -halfSize.y), glsl::ToVec2(texRect.RightBottom()))
};
- auto state = df::CreateGLState(gpu::Program::TexturingGui, df::RenderState::GuiLayer);
+ auto state = df::CreateRenderState(gpu::Program::TexturingGui, df::DepthLayer::GuiLayer);
state.SetColorTexture(region.GetTexture());
state.SetDepthTestEnabled(false);
diff --git a/drape_frontend/gui/gui_text.cpp b/drape_frontend/gui/gui_text.cpp
index ccdd7d9eb9..8f7b4c77e1 100644
--- a/drape_frontend/gui/gui_text.cpp
+++ b/drape_frontend/gui/gui_text.cpp
@@ -106,7 +106,7 @@ dp::BindingInfo const & StaticLabel::Vertex::GetBindingInfo()
}
StaticLabel::LabelResult::LabelResult()
- : m_state(df::CreateGLState(gpu::Program::TextOutlinedGui, df::RenderState::GuiLayer))
+ : m_state(df::CreateRenderState(gpu::Program::TextOutlinedGui, df::DepthLayer::GuiLayer))
{
m_state.SetDepthTestEnabled(false);
}
@@ -287,7 +287,7 @@ dp::BindingInfo const & MutableLabel::DynamicVertex::GetBindingInfo()
}
MutableLabel::PrecacheResult::PrecacheResult()
- : m_state(df::CreateGLState(gpu::Program::TextOutlinedGui, df::RenderState::GuiLayer))
+ : m_state(df::CreateRenderState(gpu::Program::TextOutlinedGui, df::DepthLayer::GuiLayer))
{
m_state.SetDepthTestEnabled(false);
}
diff --git a/drape_frontend/gui/gui_text.hpp b/drape_frontend/gui/gui_text.hpp
index ed623d5355..67340d4b57 100644
--- a/drape_frontend/gui/gui_text.hpp
+++ b/drape_frontend/gui/gui_text.hpp
@@ -1,7 +1,7 @@
#pragma once
#include "drape_frontend/gui/shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape/binding_info.hpp"
#include "drape/drape_global.hpp"
@@ -48,7 +48,7 @@ public:
{
LabelResult();
- dp::GLState m_state;
+ dp::RenderState m_state;
buffer_vector<Vertex, 128> m_buffer;
m2::RectF m_boundRect;
TAlphabet m_alphabet;
@@ -106,7 +106,7 @@ public:
{
PrecacheResult();
- dp::GLState m_state;
+ dp::RenderState m_state;
buffer_vector<StaticVertex, 128> m_buffer;
m2::PointF m_maxPixelSize;
};
diff --git a/drape_frontend/gui/ruler.cpp b/drape_frontend/gui/ruler.cpp
index 536bffb372..aaf37b1b21 100644
--- a/drape_frontend/gui/ruler.cpp
+++ b/drape_frontend/gui/ruler.cpp
@@ -213,7 +213,7 @@ void Ruler::DrawRuler(m2::PointF & size, ShapeControl & control, ref_ptr<dp::Tex
data.push_back(RulerVertex(glsl::vec2(0.0, h), normals[1], texCoord));
data.push_back(RulerVertex(glsl::vec2(0.0, -h), normals[1], texCoord));
- auto state = df::CreateGLState(gpu::Program::Ruler, df::RenderState::GuiLayer);
+ auto state = df::CreateRenderState(gpu::Program::Ruler, df::DepthLayer::GuiLayer);
state.SetColorTexture(reg.GetTexture());
state.SetDepthTestEnabled(false);
diff --git a/drape_frontend/gui/shape.cpp b/drape_frontend/gui/shape.cpp
index c78b9d16b8..983b54ed98 100644
--- a/drape_frontend/gui/shape.cpp
+++ b/drape_frontend/gui/shape.cpp
@@ -123,7 +123,7 @@ void ShapeRenderer::Render(ScreenBase const & screen, ref_ptr<gpu::ProgramManage
});
}
-void ShapeRenderer::AddShape(dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket)
+void ShapeRenderer::AddShape(dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket)
{
m_shapes.emplace_back(ShapeControl());
m_shapes.back().AddShape(state, std::move(bucket));
@@ -180,7 +180,7 @@ ref_ptr<Handle> ShapeRenderer::FindHandle(FeatureID const & id)
return resultHandle;
}
-ShapeControl::ShapeInfo::ShapeInfo(dp::GLState const & state,
+ShapeControl::ShapeInfo::ShapeInfo(dp::RenderState const & state,
drape_ptr<dp::VertexArrayBuffer> && buffer,
drape_ptr<Handle> && handle)
: m_state(state)
@@ -194,7 +194,7 @@ void ShapeControl::ShapeInfo::Destroy()
m_buffer.reset();
}
-void ShapeControl::AddShape(dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket)
+void ShapeControl::AddShape(dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket)
{
ASSERT(bucket->GetOverlayHandlesCount() == 1, ());
diff --git a/drape_frontend/gui/shape.hpp b/drape_frontend/gui/shape.hpp
index c687dc210b..228943a3e3 100644
--- a/drape_frontend/gui/shape.hpp
+++ b/drape_frontend/gui/shape.hpp
@@ -1,7 +1,7 @@
#pragma once
#include "drape_frontend/gui/skin.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "shaders/program_manager.hpp"
@@ -65,18 +65,18 @@ struct ShapeControl
struct ShapeInfo
{
- ShapeInfo() : m_state(df::CreateGLState(gpu::Program::TexturingGui, df::RenderState::GuiLayer)) {}
- ShapeInfo(dp::GLState const & state, drape_ptr<dp::VertexArrayBuffer> && buffer,
+ ShapeInfo() : m_state(df::CreateRenderState(gpu::Program::TexturingGui, df::DepthLayer::GuiLayer)) {}
+ ShapeInfo(dp::RenderState const & state, drape_ptr<dp::VertexArrayBuffer> && buffer,
drape_ptr<Handle> && handle);
void Destroy();
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::VertexArrayBuffer> m_buffer;
drape_ptr<Handle> m_handle;
};
- void AddShape(dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket);
+ void AddShape(dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket);
std::vector<ShapeInfo> m_shapesInfo;
};
@@ -90,7 +90,7 @@ public:
void Build(ref_ptr<gpu::ProgramManager> mng);
void Render(ScreenBase const & screen, ref_ptr<gpu::ProgramManager> mng);
- void AddShape(dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket);
+ void AddShape(dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket);
void AddShapeControl(ShapeControl && control);
void SetPivot(m2::PointF const & pivot);
diff --git a/drape_frontend/gui/watermark.cpp b/drape_frontend/gui/watermark.cpp
index 0d544ba7ec..bc7395ce4f 100644
--- a/drape_frontend/gui/watermark.cpp
+++ b/drape_frontend/gui/watermark.cpp
@@ -82,7 +82,7 @@ drape_ptr<ShapeRenderer> Watermark::Draw(m2::PointF & size, ref_ptr<dp::TextureM
WatermarkVertex(glsl::vec2(halfSize.x, -halfSize.y), glsl::ToVec2(texRect.RightBottom()))
};
- auto state = df::CreateGLState(gpu::Program::TexturingGui, df::RenderState::GuiLayer);
+ auto state = df::CreateRenderState(gpu::Program::TexturingGui, df::DepthLayer::GuiLayer);
state.SetColorTexture(region.GetTexture());
state.SetDepthTestEnabled(false);
diff --git a/drape_frontend/line_shape.cpp b/drape_frontend/line_shape.cpp
index 6ddd32f949..8681706dbc 100644
--- a/drape_frontend/line_shape.cpp
+++ b/drape_frontend/line_shape.cpp
@@ -60,7 +60,7 @@ struct BaseBuilderParams
float m_pxHalfWidth;
float m_depth;
bool m_depthTestEnabled;
- RenderState::DepthLayer m_depthLayer;
+ DepthLayer m_depthLayer;
dp::LineCap m_cap;
dp::LineJoin m_join;
};
@@ -112,7 +112,7 @@ public:
return GetBindingInfo();
}
- dp::GLState GetCapState() override
+ dp::RenderState GetCapState() override
{
return GetState();
}
@@ -175,9 +175,9 @@ public:
: TBase(params, pointsInSpline * 2, (pointsInSpline - 2) * 8)
{}
- dp::GLState GetState() override
+ dp::RenderState GetState() override
{
- auto state = CreateGLState(gpu::Program::Line, m_params.m_depthLayer);
+ auto state = CreateRenderState(gpu::Program::Line, m_params.m_depthLayer);
state.SetColorTexture(m_params.m_color.GetTexture());
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
return state;
@@ -202,12 +202,12 @@ public:
return *s_capInfo;
}
- dp::GLState GetCapState() override
+ dp::RenderState GetCapState() override
{
if (m_params.m_cap == dp::ButtCap)
return TBase::GetCapState();
- auto state = CreateGLState(gpu::Program::CapJoin, m_params.m_depthLayer);
+ auto state = CreateRenderState(gpu::Program::CapJoin, m_params.m_depthLayer);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(m_params.m_color.GetTexture());
state.SetDepthFunction(gl_const::GLLess);
@@ -277,9 +277,9 @@ public:
, m_lineWidth(lineWidth)
{}
- dp::GLState GetState() override
+ dp::RenderState GetState() override
{
- auto state = CreateGLState(gpu::Program::AreaOutline, m_params.m_depthLayer);
+ auto state = CreateRenderState(gpu::Program::AreaOutline, m_params.m_depthLayer);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(m_params.m_color.GetTexture());
state.SetDrawAsLine(true);
@@ -321,9 +321,9 @@ public:
return static_cast<int>((pixelLen + m_texCoordGen.GetMaskLength() - 1) / m_texCoordGen.GetMaskLength());
}
- dp::GLState GetState() override
+ dp::RenderState GetState() override
{
- auto state = CreateGLState(gpu::Program::DashedLine, m_params.m_depthLayer);
+ auto state = CreateRenderState(gpu::Program::DashedLine, m_params.m_depthLayer);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(m_params.m_color.GetTexture());
state.SetMaskTexture(m_texCoordGen.GetRegion().GetTexture());
@@ -545,7 +545,7 @@ void LineShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureManager> t
Prepare(textures);
ASSERT(m_lineShapeInfo != nullptr, ());
- dp::GLState state = m_lineShapeInfo->GetState();
+ dp::RenderState state = m_lineShapeInfo->GetState();
dp::AttributeProvider provider(1, m_lineShapeInfo->GetLineSize());
provider.InitStream(0, m_lineShapeInfo->GetBindingInfo(), m_lineShapeInfo->GetLineData());
if (!m_isSimple)
diff --git a/drape_frontend/line_shape.hpp b/drape_frontend/line_shape.hpp
index f6ae996d21..8b56907468 100644
--- a/drape_frontend/line_shape.hpp
+++ b/drape_frontend/line_shape.hpp
@@ -1,7 +1,7 @@
#pragma once
#include "drape_frontend/map_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/shape_view_params.hpp"
#include "drape/binding_info.hpp"
@@ -19,7 +19,7 @@ public:
virtual ~ILineShapeInfo() {}
virtual dp::BindingInfo const & GetBindingInfo() = 0;
- virtual dp::GLState GetState() = 0;
+ virtual dp::RenderState GetState() = 0;
virtual ref_ptr<void> GetLineData() = 0;
virtual uint32_t GetLineSize() = 0;
@@ -28,7 +28,7 @@ public:
virtual uint32_t GetJoinSize() = 0;
virtual dp::BindingInfo const & GetCapBindingInfo() = 0;
- virtual dp::GLState GetCapState() = 0;
+ virtual dp::RenderState GetCapState() = 0;
virtual ref_ptr<void> GetCapData() = 0;
virtual uint32_t GetCapSize() = 0;
};
diff --git a/drape_frontend/message_subclasses.hpp b/drape_frontend/message_subclasses.hpp
index d021b29fb8..4967d07ab5 100644
--- a/drape_frontend/message_subclasses.hpp
+++ b/drape_frontend/message_subclasses.hpp
@@ -12,7 +12,7 @@
#include "drape_frontend/my_position.hpp"
#include "drape_frontend/overlay_batcher.hpp"
#include "drape_frontend/postprocess_renderer.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/route_builder.hpp"
#include "drape_frontend/selection_shape.hpp"
#include "drape_frontend/tile_utils.hpp"
@@ -125,7 +125,7 @@ private:
class FlushRenderBucketMessage : public BaseTileMessage
{
public:
- FlushRenderBucketMessage(TileKey const & key, dp::GLState const & state,
+ FlushRenderBucketMessage(TileKey const & key, dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && buffer)
: BaseTileMessage(key)
, m_state(state)
@@ -135,11 +135,11 @@ public:
Type GetType() const override { return Message::FlushTile; }
bool IsGLContextDependent() const override { return true; }
- dp::GLState const & GetState() const { return m_state; }
+ dp::RenderState const & GetState() const { return m_state; }
drape_ptr<dp::RenderBucket> && AcceptBuffer() { return move(m_buffer); }
private:
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::RenderBucket> m_buffer;
};
diff --git a/drape_frontend/my_position.cpp b/drape_frontend/my_position.cpp
index 67e1e77333..ee678588e7 100644
--- a/drape_frontend/my_position.cpp
+++ b/drape_frontend/my_position.cpp
@@ -167,13 +167,13 @@ void MyPosition::CacheAccuracySector(ref_ptr<dp::TextureManager> mng)
buffer.emplace_back(nextNormal, colorCoord);
}
- auto state = CreateGLState(gpu::Program::Accuracy, RenderState::OverlayLayer);
+ auto state = CreateRenderState(gpu::Program::Accuracy, DepthLayer::OverlayLayer);
state.SetDepthTestEnabled(false);
state.SetColorTexture(color.GetTexture());
{
dp::Batcher batcher(kTriangleCount * dp::Batcher::IndexPerTriangle, kVertexCount);
- dp::SessionGuard guard(batcher, [this](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [this](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
drape_ptr<dp::RenderBucket> bucket = std::move(b);
ASSERT(bucket->GetOverlayHandlesCount() == 0, ());
@@ -191,7 +191,7 @@ void MyPosition::CacheAccuracySector(ref_ptr<dp::TextureManager> mng)
}
void MyPosition::CacheSymbol(dp::TextureManager::SymbolRegion const & symbol,
- dp::GLState const & state, dp::Batcher & batcher,
+ dp::RenderState const & state, dp::Batcher & batcher,
EMyPositionPart part)
{
m2::RectF const & texRect = symbol.GetTexRect();
@@ -219,7 +219,7 @@ void MyPosition::CachePointPosition(ref_ptr<dp::TextureManager> mng)
m_arrow3d.SetTexture(mng);
- auto state = CreateGLState(gpu::Program::MyPosition, RenderState::OverlayLayer);
+ auto state = CreateRenderState(gpu::Program::MyPosition, DepthLayer::OverlayLayer);
state.SetDepthTestEnabled(false);
state.SetColorTexture(pointSymbol.GetTexture());
@@ -227,7 +227,7 @@ void MyPosition::CachePointPosition(ref_ptr<dp::TextureManager> mng)
EMyPositionPart partIndices[kSymbolsCount] = { MyPositionPoint };
{
dp::Batcher batcher(kSymbolsCount * dp::Batcher::IndexPerQuad, kSymbolsCount * dp::Batcher::VertexPerQuad);
- dp::SessionGuard guard(batcher, [this](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [this](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
drape_ptr<dp::RenderBucket> bucket = std::move(b);
ASSERT(bucket->GetOverlayHandlesCount() == 0, ());
diff --git a/drape_frontend/my_position.hpp b/drape_frontend/my_position.hpp
index 21a7f4b5a3..164548d98b 100644
--- a/drape_frontend/my_position.hpp
+++ b/drape_frontend/my_position.hpp
@@ -3,7 +3,7 @@
#include "drape_frontend/arrow3d.hpp"
#include "drape_frontend/frame_values.hpp"
#include "drape_frontend/render_node.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "shaders/program_manager.hpp"
@@ -55,7 +55,7 @@ private:
EMyPositionPart part);
void CacheSymbol(dp::TextureManager::SymbolRegion const & symbol,
- dp::GLState const & state, dp::Batcher & batcher,
+ dp::RenderState const & state, dp::Batcher & batcher,
EMyPositionPart part);
m2::PointF m_position;
diff --git a/drape_frontend/overlay_batcher.cpp b/drape_frontend/overlay_batcher.cpp
index 3f57510184..0afd4557b4 100644
--- a/drape_frontend/overlay_batcher.cpp
+++ b/drape_frontend/overlay_batcher.cpp
@@ -18,7 +18,7 @@ OverlayBatcher::OverlayBatcher(TileKey const & key)
int const kAverageRenderDataCount = 5;
m_data.reserve(kAverageRenderDataCount);
- m_batcher.StartSession([this, key](dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket)
+ m_batcher.StartSession([this, key](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket)
{
FlushGeometry(key, state, move(bucket));
});
@@ -36,7 +36,7 @@ void OverlayBatcher::Finish(TOverlaysRenderData & data)
data.swap(m_data);
}
-void OverlayBatcher::FlushGeometry(TileKey const & key, dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket)
+void OverlayBatcher::FlushGeometry(TileKey const & key, dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket)
{
m_data.emplace_back(key, state, move(bucket));
}
diff --git a/drape_frontend/overlay_batcher.hpp b/drape_frontend/overlay_batcher.hpp
index 45c1733ed8..3c0adcd2d8 100644
--- a/drape_frontend/overlay_batcher.hpp
+++ b/drape_frontend/overlay_batcher.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/tile_key.hpp"
#include "drape/batcher.hpp"
@@ -22,10 +22,10 @@ class MapShape;
struct OverlayRenderData
{
TileKey m_tileKey;
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::RenderBucket> m_bucket;
- OverlayRenderData(TileKey const & key, dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket)
+ OverlayRenderData(TileKey const & key, dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket)
: m_tileKey(key), m_state(state), m_bucket(move(bucket))
{}
};
@@ -40,7 +40,7 @@ public:
void Finish(TOverlaysRenderData & data);
private:
- void FlushGeometry(TileKey const & key, dp::GLState const & state, drape_ptr<dp::RenderBucket> && bucket);
+ void FlushGeometry(TileKey const & key, dp::RenderState const & state, drape_ptr<dp::RenderBucket> && bucket);
dp::Batcher m_batcher;
TOverlaysRenderData m_data;
diff --git a/drape_frontend/path_symbol_shape.cpp b/drape_frontend/path_symbol_shape.cpp
index 4d9ffa87c4..151010d1b9 100644
--- a/drape_frontend/path_symbol_shape.cpp
+++ b/drape_frontend/path_symbol_shape.cpp
@@ -1,5 +1,5 @@
#include "drape_frontend/path_symbol_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/visual_params.hpp"
#include "shaders/programs.hpp"
@@ -53,7 +53,7 @@ void PathSymbolShape::Draw(ref_ptr<dp::Batcher> batcher, ref_ptr<dp::TextureMana
if (buffer.empty())
return;
- auto state = CreateGLState(gpu::Program::PathSymbol, RenderState::GeometryLayer);
+ auto state = CreateRenderState(gpu::Program::PathSymbol, DepthLayer::GeometryLayer);
state.SetColorTexture(region.GetTexture());
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
diff --git a/drape_frontend/path_text_shape.cpp b/drape_frontend/path_text_shape.cpp
index 57b3d3fbb5..d8e046c715 100644
--- a/drape_frontend/path_text_shape.cpp
+++ b/drape_frontend/path_text_shape.cpp
@@ -1,6 +1,6 @@
#include "drape_frontend/path_text_shape.hpp"
#include "drape_frontend/path_text_handle.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "shaders/programs.hpp"
@@ -82,9 +82,9 @@ void PathTextShape::DrawPathTextPlain(ref_ptr<dp::TextureManager> textures,
dp::TextureManager::ColorRegion color;
textures->GetColorRegion(m_params.m_textFont.m_color, color);
- auto state = CreateGLState(layout->GetFixedHeight() > 0 ?
- gpu::Program::TextFixed : gpu::Program::Text,
- RenderState::OverlayLayer);
+ auto state = CreateRenderState(layout->GetFixedHeight() > 0 ?
+ gpu::Program::TextFixed : gpu::Program::Text,
+ DepthLayer::OverlayLayer);
state.SetProgram3d(layout->GetFixedHeight() > 0 ?
gpu::Program::TextFixedBillboard : gpu::Program::TextBillboard);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
@@ -124,7 +124,7 @@ void PathTextShape::DrawPathTextOutlined(ref_ptr<dp::TextureManager> textures,
textures->GetColorRegion(m_params.m_textFont.m_color, color);
textures->GetColorRegion(m_params.m_textFont.m_outlineColor, outline);
- auto state = CreateGLState(gpu::Program::TextOutlined, RenderState::OverlayLayer);
+ auto state = CreateRenderState(gpu::Program::TextOutlined, DepthLayer::OverlayLayer);
state.SetProgram3d(gpu::Program::TextOutlinedBillboard);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
state.SetColorTexture(color.GetTexture());
diff --git a/drape_frontend/poi_symbol_shape.cpp b/drape_frontend/poi_symbol_shape.cpp
index 038dbeba23..33d1c8f681 100644
--- a/drape_frontend/poi_symbol_shape.cpp
+++ b/drape_frontend/poi_symbol_shape.cpp
@@ -67,7 +67,7 @@ void Batch<SV>(ref_ptr<dp::Batcher> batcher, drape_ptr<dp::OverlayHandle> && han
glsl::vec2(texRect.maxX(), texRect.minY()) },
};
- auto state = df::CreateGLState(gpu::Program::Texturing, params.m_depthLayer);
+ auto state = df::CreateRenderState(gpu::Program::Texturing, params.m_depthLayer);
state.SetProgram3d(gpu::Program::TexturingBillboard);
state.SetDepthTestEnabled(params.m_depthTestEnabled);
state.SetColorTexture(symbolRegion.GetTexture());
@@ -101,7 +101,7 @@ void Batch<MV>(ref_ptr<dp::Batcher> batcher, drape_ptr<dp::OverlayHandle> && han
glsl::vec2(texRect.maxX(), texRect.minY()), maskColorCoords },
};
- auto state = df::CreateGLState(gpu::Program::MaskedTexturing, params.m_depthLayer);
+ auto state = df::CreateRenderState(gpu::Program::MaskedTexturing, params.m_depthLayer);
state.SetProgram3d(gpu::Program::MaskedTexturingBillboard);
state.SetDepthTestEnabled(params.m_depthTestEnabled);
state.SetColorTexture(symbolRegion.GetTexture());
diff --git a/drape_frontend/postprocess_renderer.cpp b/drape_frontend/postprocess_renderer.cpp
index e631756876..f1279174d1 100644
--- a/drape_frontend/postprocess_renderer.cpp
+++ b/drape_frontend/postprocess_renderer.cpp
@@ -1,5 +1,5 @@
#include "drape_frontend/postprocess_renderer.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/screen_quad_renderer.hpp"
#include "shaders/program_manager.hpp"
diff --git a/drape_frontend/render_group.cpp b/drape_frontend/render_group.cpp
index 02b45c82fe..74b74ce2e7 100755
--- a/drape_frontend/render_group.cpp
+++ b/drape_frontend/render_group.cpp
@@ -21,7 +21,7 @@ void BaseRenderGroup::UpdateAnimation()
m_params.m_opacity = 1.0f;
}
-RenderGroup::RenderGroup(dp::GLState const & state, df::TileKey const & tileKey)
+RenderGroup::RenderGroup(dp::RenderState const & state, df::TileKey const & tileKey)
: TBase(state, tileKey)
, m_pendingOnDelete(false)
, m_canBeDeleted(false)
@@ -137,19 +137,19 @@ void RenderGroup::AddBucket(drape_ptr<dp::RenderBucket> && bucket)
bool RenderGroup::IsOverlay() const
{
auto const depthLayer = GetDepthLayer(m_state);
- return (depthLayer == RenderState::OverlayLayer) ||
- (depthLayer == RenderState::NavigationLayer && HasOverlayHandles());
+ return (depthLayer == DepthLayer::OverlayLayer) ||
+ (depthLayer == DepthLayer::NavigationLayer && HasOverlayHandles());
}
bool RenderGroup::IsUserMark() const
{
auto const depthLayer = GetDepthLayer(m_state);
- return depthLayer == RenderState::UserLineLayer ||
- depthLayer == RenderState::UserMarkLayer ||
- depthLayer == RenderState::TransitMarkLayer ||
- depthLayer == RenderState::RoutingMarkLayer ||
- depthLayer == RenderState::LocalAdsMarkLayer ||
- depthLayer == RenderState::SearchMarkLayer;
+ return depthLayer == DepthLayer::UserLineLayer ||
+ depthLayer == DepthLayer::UserMarkLayer ||
+ depthLayer == DepthLayer::TransitMarkLayer ||
+ depthLayer == DepthLayer::RoutingMarkLayer ||
+ depthLayer == DepthLayer::LocalAdsMarkLayer ||
+ depthLayer == DepthLayer::SearchMarkLayer;
}
bool RenderGroup::UpdateCanBeDeletedStatus(bool canBeDeleted, int currentZoom, ref_ptr<dp::OverlayTree> tree)
@@ -195,7 +195,7 @@ bool RenderGroupComparator::operator()(drape_ptr<RenderGroup> const & l, drape_p
return rCanBeDeleted;
}
-UserMarkRenderGroup::UserMarkRenderGroup(dp::GLState const & state, TileKey const & tileKey)
+UserMarkRenderGroup::UserMarkRenderGroup(dp::RenderState const & state, TileKey const & tileKey)
: TBase(state, tileKey)
{
auto const program = state.GetProgram<gpu::Program>();
diff --git a/drape_frontend/render_group.hpp b/drape_frontend/render_group.hpp
index c1c89bd32e..bc196c0ecb 100755
--- a/drape_frontend/render_group.hpp
+++ b/drape_frontend/render_group.hpp
@@ -3,7 +3,7 @@
#include "drape_frontend/animation/opacity_animation.hpp"
#include "drape_frontend/animation/value_mapping.hpp"
#include "drape_frontend/frame_values.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/tile_utils.hpp"
#include "shaders/program_params.hpp"
@@ -24,14 +24,14 @@ namespace df
class BaseRenderGroup
{
public:
- BaseRenderGroup(dp::GLState const & state, TileKey const & tileKey)
+ BaseRenderGroup(dp::RenderState const & state, TileKey const & tileKey)
: m_state(state)
, m_tileKey(tileKey)
{}
virtual ~BaseRenderGroup() = default;
- dp::GLState const & GetState() const { return m_state; }
+ dp::RenderState const & GetState() const { return m_state; }
TileKey const & GetTileKey() const { return m_tileKey; }
virtual void UpdateAnimation();
@@ -39,7 +39,7 @@ public:
FrameValues const & frameValues) = 0;
protected:
- dp::GLState m_state;
+ dp::RenderState m_state;
gpu::MapProgramParams m_params;
private:
@@ -51,7 +51,7 @@ class RenderGroup : public BaseRenderGroup
using TBase = BaseRenderGroup;
friend class BatchMergeHelper;
public:
- RenderGroup(dp::GLState const & state, TileKey const & tileKey);
+ RenderGroup(dp::RenderState const & state, TileKey const & tileKey);
~RenderGroup() override;
void Update(ScreenBase const & modelView);
@@ -97,7 +97,7 @@ class UserMarkRenderGroup : public RenderGroup
using TBase = RenderGroup;
public:
- UserMarkRenderGroup(dp::GLState const & state, TileKey const & tileKey);
+ UserMarkRenderGroup(dp::RenderState const & state, TileKey const & tileKey);
~UserMarkRenderGroup() override {}
void UpdateAnimation() override;
diff --git a/drape_frontend/render_node.hpp b/drape_frontend/render_node.hpp
index e80f41e765..c2f1de49b0 100644
--- a/drape_frontend/render_node.hpp
+++ b/drape_frontend/render_node.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "shaders/program_manager.hpp"
@@ -12,7 +12,7 @@ namespace df
class RenderNode
{
public:
- RenderNode(dp::GLState const & state, drape_ptr<dp::VertexArrayBuffer> && buffer)
+ RenderNode(dp::RenderState const & state, drape_ptr<dp::VertexArrayBuffer> && buffer)
: m_state(state)
, m_buffer(std::move(buffer))
{}
@@ -48,7 +48,7 @@ private:
mng->GetParamsSetter()->Apply(prg, params);
}
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::VertexArrayBuffer> m_buffer;
bool m_isBuilt = false;
};
diff --git a/drape_frontend/render_state.cpp b/drape_frontend/render_state.cpp
deleted file mode 100644
index ca59e03dae..0000000000
--- a/drape_frontend/render_state.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "drape_frontend/render_state.hpp"
-
-#include <vector>
-
-namespace df
-{
-RenderState::RenderState(DepthLayer depthLayer)
- : m_depthLayer(depthLayer)
-{}
-
-bool RenderState::Less(ref_ptr<dp::BaseRenderState> other) const
-{
- ASSERT(dynamic_cast<RenderState const *>(other.get()) != nullptr, ());
- auto const renderState = static_cast<RenderState const *>(other.get());
- return m_depthLayer < renderState->m_depthLayer;
-}
-
-bool RenderState::Equal(ref_ptr<dp::BaseRenderState> other) const
-{
- ASSERT(dynamic_cast<RenderState const *>(other.get()) != nullptr, ());
- auto const renderState = static_cast<RenderState const *>(other.get());
- return m_depthLayer == renderState->m_depthLayer;
-}
-
-// static
-ref_ptr<RenderState> RenderStateFactory::Get(RenderState::DepthLayer depthLayer)
-{
- static std::vector<drape_ptr<RenderState>> m_states;
- if (m_states.empty())
- {
- m_states.reserve(RenderState::LayersCount);
- for (size_t i = 0; i < RenderState::LayersCount; ++i)
- m_states.emplace_back(make_unique_dp<RenderState>(static_cast<RenderState::DepthLayer>(i)));
- }
- return make_ref(m_states[static_cast<size_t>(depthLayer)]);
-}
-
-RenderState::DepthLayer GetDepthLayer(dp::GLState const & state)
-{
- return state.GetRenderState<RenderState>()->GetDepthLayer();
-}
-
-dp::GLState CreateGLState(gpu::Program program, RenderState::DepthLayer depthLayer)
-{
- return dp::GLState(program, RenderStateFactory::Get(depthLayer));
-}
-} // namespace df
diff --git a/drape_frontend/render_state.hpp b/drape_frontend/render_state.hpp
deleted file mode 100644
index 1d4580170c..0000000000
--- a/drape_frontend/render_state.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#pragma once
-
-#include "shaders/programs.hpp"
-
-#include "drape/glstate.hpp"
-#include "drape/pointers.hpp"
-
-namespace df
-{
-class RenderState : public dp::BaseRenderState
-{
-public:
- enum DepthLayer
- {
- // Do not change the order.
- GeometryLayer = 0,
- Geometry3dLayer,
- UserLineLayer,
- OverlayLayer,
- LocalAdsMarkLayer,
- TransitSchemeLayer,
- UserMarkLayer,
- NavigationLayer,
- TransitMarkLayer,
- RoutingMarkLayer,
- SearchMarkLayer,
- GuiLayer,
- LayersCount
- };
-
- explicit RenderState(DepthLayer depthLayer);
-
- bool Less(ref_ptr<dp::BaseRenderState> other) const override;
- bool Equal(ref_ptr<dp::BaseRenderState> other) const override;
-
- DepthLayer GetDepthLayer() const { return m_depthLayer; }
-
-private:
- DepthLayer const m_depthLayer;
-};
-
-class RenderStateFactory
-{
-public:
- static ref_ptr<RenderState> Get(RenderState::DepthLayer depthLayer);
-};
-
-extern RenderState::DepthLayer GetDepthLayer(dp::GLState const & state);
-extern dp::GLState CreateGLState(gpu::Program program, RenderState::DepthLayer depthLayer);
-} // namespace df
diff --git a/drape_frontend/render_state_extension.cpp b/drape_frontend/render_state_extension.cpp
new file mode 100644
index 0000000000..edb98ffdd5
--- /dev/null
+++ b/drape_frontend/render_state_extension.cpp
@@ -0,0 +1,47 @@
+#include "drape_frontend/render_state_extension.hpp"
+
+#include <vector>
+
+namespace df
+{
+RenderStateExtension::RenderStateExtension(DepthLayer depthLayer)
+ : m_depthLayer(depthLayer)
+{}
+
+bool RenderStateExtension::Less(ref_ptr<dp::BaseRenderStateExtension> other) const
+{
+ ASSERT(dynamic_cast<RenderStateExtension const *>(other.get()) != nullptr, ());
+ auto const renderState = static_cast<RenderStateExtension const *>(other.get());
+ return m_depthLayer < renderState->m_depthLayer;
+}
+
+bool RenderStateExtension::Equal(ref_ptr<dp::BaseRenderStateExtension> other) const
+{
+ ASSERT(dynamic_cast<RenderStateExtension const *>(other.get()) != nullptr, ());
+ auto const renderState = static_cast<RenderStateExtension const *>(other.get());
+ return m_depthLayer == renderState->m_depthLayer;
+}
+
+// static
+ref_ptr<RenderStateExtension> RenderStateExtensionFactory::Get(DepthLayer depthLayer)
+{
+ static std::vector<drape_ptr<RenderStateExtension>> m_states;
+ if (m_states.empty())
+ {
+ m_states.reserve(static_cast<size_t>(DepthLayer::LayersCount));
+ for (size_t i = 0; i < static_cast<size_t>(DepthLayer::LayersCount); ++i)
+ m_states.emplace_back(make_unique_dp<RenderStateExtension>(static_cast<DepthLayer>(i)));
+ }
+ return make_ref(m_states[static_cast<size_t>(depthLayer)]);
+}
+
+DepthLayer GetDepthLayer(dp::RenderState const & state)
+{
+ return state.GetRenderStateExtension<RenderStateExtension>()->GetDepthLayer();
+}
+
+dp::RenderState CreateRenderState(gpu::Program program, DepthLayer depthLayer)
+{
+ return dp::RenderState(program, RenderStateExtensionFactory::Get(depthLayer));
+}
+} // namespace df
diff --git a/drape_frontend/render_state_extension.hpp b/drape_frontend/render_state_extension.hpp
new file mode 100644
index 0000000000..9986610c8a
--- /dev/null
+++ b/drape_frontend/render_state_extension.hpp
@@ -0,0 +1,52 @@
+#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,
+ LocalAdsMarkLayer,
+ TransitSchemeLayer,
+ UserMarkLayer,
+ NavigationLayer,
+ TransitMarkLayer,
+ RoutingMarkLayer,
+ SearchMarkLayer,
+ GuiLayer,
+ LayersCount
+};
+
+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;
+};
+
+class RenderStateExtensionFactory
+{
+public:
+ static ref_ptr<RenderStateExtension> Get(DepthLayer depthLayer);
+};
+
+extern DepthLayer GetDepthLayer(dp::RenderState const & state);
+extern dp::RenderState CreateRenderState(gpu::Program program, DepthLayer depthLayer);
+} // namespace df
diff --git a/drape_frontend/route_renderer.cpp b/drape_frontend/route_renderer.cpp
index accceee5cb..985a9b5abd 100644
--- a/drape_frontend/route_renderer.cpp
+++ b/drape_frontend/route_renderer.cpp
@@ -403,7 +403,7 @@ void RouteRenderer::RenderSubroute(SubrouteInfo const & subrouteInfo, size_t sub
dist = static_cast<float>(m_distanceFromBegin - distanceOffset);
}
- dp::GLState const & state = subrouteData->m_renderProperty.m_state;
+ dp::RenderState const & state = subrouteData->m_renderProperty.m_state;
size_t const styleIndex = subrouteData->m_styleIndex;
ASSERT_LESS(styleIndex, subrouteInfo.m_subroute->m_style.size(), ());
auto const & style = subrouteInfo.m_subroute->m_style[styleIndex];
@@ -451,7 +451,7 @@ void RouteRenderer::RenderSubrouteArrows(SubrouteInfo const & subrouteInfo,
return;
}
- dp::GLState const & state = subrouteInfo.m_arrowsData->m_renderProperty.m_state;
+ dp::RenderState const & state = subrouteInfo.m_arrowsData->m_renderProperty.m_state;
float const currentHalfWidth = GetCurrentHalfWidth(subrouteInfo);
// Set up parameters.
@@ -490,7 +490,7 @@ void RouteRenderer::RenderSubrouteMarkers(SubrouteInfo const & subrouteInfo, Scr
if (m_followingEnabled)
dist = static_cast<float>(m_distanceFromBegin - subrouteInfo.m_subroute->m_baseDistance);
- dp::GLState const & state = subrouteInfo.m_markersData->m_renderProperty.m_state;
+ dp::RenderState const & state = subrouteInfo.m_markersData->m_renderProperty.m_state;
float const currentHalfWidth = GetCurrentHalfWidth(subrouteInfo);
// Set up parameters.
@@ -528,7 +528,7 @@ void RouteRenderer::RenderPreviewData(ScreenBase const & screen, ref_ptr<gpu::Pr
ref_ptr<dp::GpuProgram> program = mng->GetProgram(gpu::Program::CirclePoint);
program->Bind();
- dp::GLState const & state = m_previewRenderData.front()->m_state;
+ dp::RenderState const & state = m_previewRenderData.front()->m_state;
dp::ApplyState(state, program);
mng->GetParamsSetter()->Apply(program, params);
diff --git a/drape_frontend/route_shape.cpp b/drape_frontend/route_shape.cpp
index 117202302f..6728be0f19 100644
--- a/drape_frontend/route_shape.cpp
+++ b/drape_frontend/route_shape.cpp
@@ -490,7 +490,7 @@ void RouteShape::CacheRouteArrows(ref_ptr<dp::TextureManager> mng, m2::PolylineD
TArrowGeometryBuffer joinsGeometry;
dp::TextureManager::SymbolRegion region;
GetArrowTextureRegion(mng, region);
- auto state = CreateGLState(gpu::Program::RouteArrow, RenderState::GeometryLayer);
+ auto state = CreateRenderState(gpu::Program::RouteArrow, DepthLayer::GeometryLayer);
state.SetColorTexture(region.GetTexture());
// Generate arrow geometry.
@@ -566,8 +566,8 @@ drape_ptr<df::SubrouteData> RouteShape::CacheRoute(dp::DrapeID subrouteId, Subro
static_cast<float>(subroute->m_baseDepthIndex * kDepthPerSubroute),
geometry, joinsGeometry);
- auto state = CreateGLState(subroute->m_style[styleIndex].m_pattern.m_isDashed ?
- gpu::Program::RouteDash : gpu::Program::Route, RenderState::GeometryLayer);
+ auto state = CreateRenderState(subroute->m_style[styleIndex].m_pattern.m_isDashed ?
+ gpu::Program::RouteDash : gpu::Program::Route, DepthLayer::GeometryLayer);
state.SetColorTexture(textures->GetSymbolsTexture());
BatchGeometry(state, make_ref(geometry.data()), static_cast<uint32_t>(geometry.size()),
@@ -595,14 +595,14 @@ drape_ptr<df::SubrouteMarkersData> RouteShape::CacheMarkers(dp::DrapeID subroute
if (geometry.empty())
return nullptr;
- auto state = CreateGLState(gpu::Program::RouteMarker, RenderState::GeometryLayer);
+ auto state = CreateRenderState(gpu::Program::RouteMarker, DepthLayer::GeometryLayer);
state.SetColorTexture(textures->GetSymbolsTexture());
// Batching.
{
uint32_t const kBatchSize = 200;
dp::Batcher batcher(kBatchSize, kBatchSize);
- dp::SessionGuard guard(batcher, [&markersData](dp::GLState const & state,
+ dp::SessionGuard guard(batcher, [&markersData](dp::RenderState const & state,
drape_ptr<dp::RenderBucket> &&b)
{
markersData->m_renderProperty.m_buckets.push_back(std::move(b));
@@ -617,7 +617,7 @@ drape_ptr<df::SubrouteMarkersData> RouteShape::CacheMarkers(dp::DrapeID subroute
return markersData;
}
-void RouteShape::BatchGeometry(dp::GLState const & state, ref_ptr<void> geometry, uint32_t geomSize,
+void RouteShape::BatchGeometry(dp::RenderState const & state, ref_ptr<void> geometry, uint32_t geomSize,
ref_ptr<void> joinsGeometry, uint32_t joinsGeomSize,
dp::BindingInfo const & bindingInfo, RouteRenderProperty & property)
{
@@ -627,7 +627,7 @@ void RouteShape::BatchGeometry(dp::GLState const & state, ref_ptr<void> geometry
uint32_t const kBatchSize = 5000;
dp::Batcher batcher(kBatchSize, kBatchSize);
- dp::SessionGuard guard(batcher, [&property](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [&property](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
property.m_buckets.push_back(std::move(b));
property.m_state = state;
diff --git a/drape_frontend/route_shape.hpp b/drape_frontend/route_shape.hpp
index 9a4a6dce9f..3db03d22dc 100644
--- a/drape_frontend/route_shape.hpp
+++ b/drape_frontend/route_shape.hpp
@@ -2,7 +2,7 @@
#include "drape_frontend/color_constants.hpp"
#include "drape_frontend/map_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/shape_view_params.hpp"
#include "drape/render_bucket.hpp"
@@ -157,10 +157,10 @@ using SubrouteConstPtr = std::shared_ptr<Subroute const>;
struct RouteRenderProperty
{
- dp::GLState m_state;
+ dp::RenderState m_state;
std::vector<drape_ptr<dp::RenderBucket>> m_buckets;
RouteRenderProperty()
- : m_state(CreateGLState(gpu::Program::Route, RenderState::GeometryLayer))
+ : m_state(CreateRenderState(gpu::Program::Route, DepthLayer::GeometryLayer))
{}
};
@@ -226,7 +226,7 @@ private:
m2::PointD const & pivot, float baseDepth,
TMarkersGeometryBuffer & geometry);
- static void BatchGeometry(dp::GLState const & state, ref_ptr<void> geometry, uint32_t geomSize,
+ static void BatchGeometry(dp::RenderState const & state, ref_ptr<void> geometry, uint32_t geomSize,
ref_ptr<void> joinsGeometry, uint32_t joinsGeomSize,
dp::BindingInfo const & bindingInfo, RouteRenderProperty & property);
};
diff --git a/drape_frontend/rule_drawer.cpp b/drape_frontend/rule_drawer.cpp
index 57493c4e41..0192754614 100644
--- a/drape_frontend/rule_drawer.cpp
+++ b/drape_frontend/rule_drawer.cpp
@@ -441,9 +441,9 @@ void RuleDrawer::ProcessPointStyle(FeatureType & f, Stylist const & s,
if (isSpeedCamera && !GetStyleReader().IsCarNavigationStyle())
return;
- RenderState::DepthLayer depthLayer = RenderState::OverlayLayer;
+ DepthLayer depthLayer = DepthLayer::OverlayLayer;
if (isSpeedCamera)
- depthLayer = RenderState::NavigationLayer;
+ depthLayer = DepthLayer::NavigationLayer;
minVisibleScale = feature::GetMinDrawableScale(f);
ApplyPointFeature apply(m_context->GetTileKey(), insertShape, f.GetID(), minVisibleScale, f.GetRank(),
@@ -553,7 +553,7 @@ void RuleDrawer::DrawTileNet(TInsertShapeFn const & insertShape)
p.m_cap = dp::ButtCap;
p.m_color = dp::Color::Red();
p.m_depth = 20000;
- p.m_depthLayer = RenderState::GeometryLayer;
+ p.m_depthLayer = DepthLayer::GeometryLayer;
p.m_width = 5;
p.m_join = dp::RoundJoin;
@@ -563,7 +563,7 @@ void RuleDrawer::DrawTileNet(TInsertShapeFn const & insertShape)
tp.m_tileCenter = m_globalRect.Center();
tp.m_titleDecl.m_anchor = dp::Center;
tp.m_depth = 20000;
- tp.m_depthLayer = RenderState::OverlayLayer;
+ tp.m_depthLayer = DepthLayer::OverlayLayer;
tp.m_titleDecl.m_primaryText = strings::to_string(key.m_x) + " " +
strings::to_string(key.m_y) + " " +
strings::to_string(key.m_zoomLevel);
diff --git a/drape_frontend/screen_quad_renderer.cpp b/drape_frontend/screen_quad_renderer.cpp
index 836309e6d0..80cfff7e9a 100644
--- a/drape_frontend/screen_quad_renderer.cpp
+++ b/drape_frontend/screen_quad_renderer.cpp
@@ -1,5 +1,5 @@
#include "drape_frontend/screen_quad_renderer.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "shaders/program_manager.hpp"
diff --git a/drape_frontend/selection_shape.cpp b/drape_frontend/selection_shape.cpp
index deb55c7cab..7bbb7fb379 100644
--- a/drape_frontend/selection_shape.cpp
+++ b/drape_frontend/selection_shape.cpp
@@ -83,13 +83,13 @@ SelectionShape::SelectionShape(ref_ptr<dp::TextureManager> mng)
buffer.emplace_back(nextNormal, colorCoord);
}
- auto state = CreateGLState(gpu::Program::Accuracy, RenderState::OverlayLayer);
+ auto state = CreateRenderState(gpu::Program::Accuracy, DepthLayer::OverlayLayer);
state.SetColorTexture(color.GetTexture());
state.SetDepthTestEnabled(false);
{
dp::Batcher batcher(kTriangleCount * dp::Batcher::IndexPerTriangle, kVertexCount);
- dp::SessionGuard guard(batcher, [this](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [this](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
drape_ptr<dp::RenderBucket> bucket = std::move(b);
ASSERT(bucket->GetOverlayHandlesCount() == 0, ());
diff --git a/drape_frontend/shape_view_params.hpp b/drape_frontend/shape_view_params.hpp
index 0fc2156805..77db25a0df 100644
--- a/drape_frontend/shape_view_params.hpp
+++ b/drape_frontend/shape_view_params.hpp
@@ -1,6 +1,6 @@
#pragma once
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape/color.hpp"
#include "drape/drape_global.hpp"
@@ -21,7 +21,7 @@ uint32_t constexpr kStartUserMarkOverlayIndex = 1000;
struct CommonViewParams
{
- RenderState::DepthLayer m_depthLayer = RenderState::GeometryLayer;
+ DepthLayer m_depthLayer = DepthLayer::GeometryLayer;
float m_depth = 0.0f;
bool m_depthTestEnabled = true;
int m_minVisibleScale = 0;
diff --git a/drape_frontend/text_shape.cpp b/drape_frontend/text_shape.cpp
index 2df3ce6b42..c7d24eba04 100644
--- a/drape_frontend/text_shape.cpp
+++ b/drape_frontend/text_shape.cpp
@@ -1,5 +1,5 @@
#include "drape_frontend/text_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/text_handle.hpp"
#include "drape_frontend/text_layout.hpp"
#include "drape_frontend/visual_params.hpp"
@@ -315,7 +315,7 @@ void TextShape::DrawSubStringPlain(StraightTextLayout const & layout, dp::FontDe
layout.CacheStaticGeometry(color, staticBuffer);
bool const isNonSdfText = layout.GetFixedHeight() > 0;
- auto state = CreateGLState(isNonSdfText ? gpu::Program::TextFixed : gpu::Program::Text, m_params.m_depthLayer);
+ auto state = CreateRenderState(isNonSdfText ? gpu::Program::TextFixed : gpu::Program::Text, m_params.m_depthLayer);
state.SetProgram3d(isNonSdfText ? gpu::Program::TextFixedBillboard : gpu::Program::TextBillboard);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
@@ -381,7 +381,7 @@ void TextShape::DrawSubStringOutlined(StraightTextLayout const & layout, dp::Fon
layout.CacheDynamicGeometry(finalOffset, dynamicBuffer);
layout.CacheStaticGeometry(color, outline, staticBuffer);
- auto state = CreateGLState(gpu::Program::TextOutlined, m_params.m_depthLayer);
+ auto state = CreateRenderState(gpu::Program::TextOutlined, m_params.m_depthLayer);
state.SetProgram3d(gpu::Program::TextOutlinedBillboard);
state.SetDepthTestEnabled(m_params.m_depthTestEnabled);
ASSERT(color.GetTexture() == outline.GetTexture(), ());
diff --git a/drape_frontend/traffic_generator.cpp b/drape_frontend/traffic_generator.cpp
index 4d6b691c04..02f9918c74 100644
--- a/drape_frontend/traffic_generator.cpp
+++ b/drape_frontend/traffic_generator.cpp
@@ -147,15 +147,15 @@ void TrafficGenerator::GenerateSegmentsGeometry(MwmSet::MwmId const & mwmId, Til
ASSERT(m_colorsCacheValid, ());
auto const colorTexture = m_colorsCache[static_cast<size_t>(traffic::SpeedGroup::G0)].GetTexture();
- auto state = CreateGLState(gpu::Program::Traffic, RenderState::GeometryLayer);
+ auto state = CreateRenderState(gpu::Program::Traffic, DepthLayer::GeometryLayer);
state.SetColorTexture(colorTexture);
state.SetMaskTexture(texturesMgr->GetTrafficArrowTexture());
- auto lineState = CreateGLState(gpu::Program::TrafficLine, RenderState::GeometryLayer);
+ auto lineState = CreateRenderState(gpu::Program::TrafficLine, DepthLayer::GeometryLayer);
lineState.SetColorTexture(colorTexture);
lineState.SetDrawAsLine(true);
- auto circleState = CreateGLState(gpu::Program::TrafficCircle, RenderState::GeometryLayer);
+ auto circleState = CreateRenderState(gpu::Program::TrafficCircle, DepthLayer::GeometryLayer);
circleState.SetColorTexture(colorTexture);
bool isLeftHand = false;
@@ -196,7 +196,7 @@ void TrafficGenerator::GenerateSegmentsGeometry(MwmSet::MwmId const & mwmId, Til
m_providerLines.Reset(static_cast<uint32_t>(staticGeometry.size()));
m_providerLines.UpdateStream(0 /* stream index */, make_ref(staticGeometry.data()));
- dp::GLState curLineState = lineState;
+ dp::RenderState curLineState = lineState;
curLineState.SetLineWidth(width);
batcher->InsertLineStrip(curLineState, make_ref(&m_providerLines));
}
@@ -244,7 +244,7 @@ void TrafficGenerator::FlushSegmentsGeometry(TileKey const & tileKey, TrafficSeg
for (auto const & roadClass : kRoadClasses)
m_batchersPool->ReserveBatcher(TrafficBatcherKey(mwmId, tileKey, roadClass));
- m_circlesBatcher->StartSession([this, mwmId, tileKey](dp::GLState const & state,
+ m_circlesBatcher->StartSession([this, mwmId, tileKey](dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && renderBucket)
{
FlushGeometry(TrafficBatcherKey(mwmId, tileKey, RoadClass::Class0), state,
@@ -284,7 +284,7 @@ void TrafficGenerator::InvalidateTexturesCache()
m_colorsCacheValid = false;
}
-void TrafficGenerator::FlushGeometry(TrafficBatcherKey const & key, dp::GLState const & state,
+void TrafficGenerator::FlushGeometry(TrafficBatcherKey const & key, dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && buffer)
{
TrafficRenderData renderData(state);
diff --git a/drape_frontend/traffic_generator.hpp b/drape_frontend/traffic_generator.hpp
index 5e5dea5a07..01c2336070 100644
--- a/drape_frontend/traffic_generator.hpp
+++ b/drape_frontend/traffic_generator.hpp
@@ -2,7 +2,7 @@
#include "drape_frontend/batchers_pool.hpp"
#include "drape_frontend/color_constants.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/tile_key.hpp"
#include "drape/color.hpp"
@@ -84,13 +84,13 @@ using TrafficSegmentsColoring = std::map<MwmSet::MwmId, traffic::TrafficInfo::Co
struct TrafficRenderData
{
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::RenderBucket> m_bucket;
TileKey m_tileKey;
MwmSet::MwmId m_mwmId;
RoadClass m_roadClass = RoadClass::Class0;
- explicit TrafficRenderData(dp::GLState const & state) : m_state(state) {}
+ explicit TrafficRenderData(dp::RenderState const & state) : m_state(state) {}
bool operator<(TrafficRenderData const & renderData) const
{
@@ -221,7 +221,7 @@ private:
std::vector<TrafficLineStaticVertex> & staticGeometry);
void FillColorsCache(ref_ptr<dp::TextureManager> textures);
- void FlushGeometry(TrafficBatcherKey const & key, dp::GLState const & state,
+ void FlushGeometry(TrafficBatcherKey const & key, dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && buffer);
void GenerateSegmentsGeometry(MwmSet::MwmId const & mwmId, TileKey const & tileKey,
TrafficSegmentsGeometryValue const & geometry,
diff --git a/drape_frontend/transit_scheme_builder.cpp b/drape_frontend/transit_scheme_builder.cpp
index 1c6c7b4898..6d1be76933 100644
--- a/drape_frontend/transit_scheme_builder.cpp
+++ b/drape_frontend/transit_scheme_builder.cpp
@@ -4,7 +4,7 @@
#include "drape_frontend/colored_symbol_shape.hpp"
#include "drape_frontend/line_shape_helper.hpp"
#include "drape_frontend/map_shape.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/shape_view_params.hpp"
#include "drape_frontend/text_layout.hpp"
#include "drape_frontend/text_shape.hpp"
@@ -123,7 +123,7 @@ void GenerateLineCaps(std::vector<SchemeSegment> const & segments, glsl::vec4 co
dp::AttributeProvider provider(1 /* stream count */, static_cast<uint32_t>(geometry.size()));
provider.InitStream(0 /* stream index */, GetTransitStaticBindingInfo(), make_ref(geometry.data()));
- auto state = CreateGLState(gpu::Program::TransitCircle, RenderState::TransitSchemeLayer);
+ auto state = CreateRenderState(gpu::Program::TransitCircle, DepthLayer::TransitSchemeLayer);
batcher.InsertTriangleList(state, make_ref(&provider));
}
@@ -540,7 +540,7 @@ void TransitSchemeBuilder::GenerateShapes(MwmSet::MwmId const & mwmId)
uint32_t const kBatchSize = 5000;
dp::Batcher batcher(kBatchSize, kBatchSize);
{
- dp::SessionGuard guard(batcher, [this, &mwmId, &scheme](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ dp::SessionGuard guard(batcher, [this, &mwmId, &scheme](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
TransitRenderData::Type type = TransitRenderData::Type::Lines;
if (state.GetProgram<gpu::Program>() == gpu::Program::TransitCircle)
@@ -587,7 +587,7 @@ void TransitSchemeBuilder::GenerateStops(MwmSet::MwmId const & mwmId, ref_ptr<dp
{
MwmSchemeData const & scheme = m_schemes[mwmId];
- auto const flusher = [this, &mwmId, &scheme](dp::GLState const & state, drape_ptr<dp::RenderBucket> && b)
+ auto const flusher = [this, &mwmId, &scheme](dp::RenderState const & state, drape_ptr<dp::RenderBucket> && b)
{
TransitRenderData::Type type = TransitRenderData::Type::Stubs;
if (state.GetProgram<gpu::Program>() == gpu::Program::TransitMarker)
@@ -730,7 +730,7 @@ void TransitSchemeBuilder::GenerateTitles(StopNodeParams const & stopParams, m2:
textParams.m_titleDecl.m_primaryText = title.m_text;
textParams.m_titleDecl.m_anchor = title.m_anchor;
textParams.m_depthTestEnabled = false;
- textParams.m_depthLayer = RenderState::TransitSchemeLayer;
+ textParams.m_depthLayer = DepthLayer::TransitSchemeLayer;
textParams.m_specialDisplacement = SpecialDisplacement::TransitScheme;
textParams.m_specialPriority = priority;
textParams.m_startOverlayRank = dp::OverlayRank0;
@@ -746,7 +746,7 @@ void TransitSchemeBuilder::GenerateTitles(StopNodeParams const & stopParams, m2:
colorParams.m_featureID = featureId;
colorParams.m_tileCenter = pivot;
colorParams.m_depthTestEnabled = false;
- colorParams.m_depthLayer = RenderState::TransitSchemeLayer;
+ colorParams.m_depthLayer = DepthLayer::TransitSchemeLayer;
colorParams.m_specialDisplacement = SpecialDisplacement::TransitScheme;
colorParams.m_specialPriority = static_cast<uint16_t>(Priority::Stub);
colorParams.m_startOverlayRank = dp::OverlayRank0;
@@ -787,7 +787,7 @@ void TransitSchemeBuilder::GenerateMarker(m2::PointD const & pt, m2::PointD widt
dp::AttributeProvider provider(1 /* stream count */, static_cast<uint32_t>(geometry.size()));
provider.InitStream(0 /* stream index */, GetTransitStaticBindingInfo(), make_ref(geometry.data()));
- auto state = CreateGLState(gpu::Program::TransitMarker, RenderState::TransitSchemeLayer);
+ auto state = CreateRenderState(gpu::Program::TransitMarker, DepthLayer::TransitSchemeLayer);
batcher.InsertTriangleList(state, make_ref(&provider));
}
@@ -833,7 +833,7 @@ void TransitSchemeBuilder::GenerateLine(std::vector<m2::PointD> const & path, m2
dp::AttributeProvider provider(1 /* stream count */, static_cast<uint32_t>(geometry.size()));
provider.InitStream(0 /* stream index */, GetTransitStaticBindingInfo(), make_ref(geometry.data()));
- auto state = CreateGLState(gpu::Program::Transit, RenderState::TransitSchemeLayer);
+ auto state = CreateRenderState(gpu::Program::Transit, DepthLayer::TransitSchemeLayer);
batcher.InsertTriangleList(state, make_ref(&provider));
GenerateLineCaps(segments, color, lineOffset, halfWidth, depth, batcher);
diff --git a/drape_frontend/transit_scheme_builder.hpp b/drape_frontend/transit_scheme_builder.hpp
index 3cb42aa630..0d09b3d9e1 100644
--- a/drape_frontend/transit_scheme_builder.hpp
+++ b/drape_frontend/transit_scheme_builder.hpp
@@ -1,8 +1,8 @@
#pragma once
#include "drape/batcher.hpp"
-#include "drape/glstate.hpp"
#include "drape/render_bucket.hpp"
+#include "drape/render_state.hpp"
#include "drape/texture_manager.hpp"
#include "transit/transit_display_info.hpp"
@@ -30,13 +30,13 @@ struct TransitRenderData
};
Type m_type;
- dp::GLState m_state;
+ dp::RenderState m_state;
uint32_t m_recacheId;
MwmSet::MwmId m_mwmId;
m2::PointD m_pivot;
drape_ptr<dp::RenderBucket> m_bucket;
- TransitRenderData(Type type, dp::GLState const & state, uint32_t recacheId, MwmSet::MwmId const & mwmId,
+ TransitRenderData(Type type, dp::RenderState const & state, uint32_t recacheId, MwmSet::MwmId const & mwmId,
m2::PointD const pivot, drape_ptr<dp::RenderBucket> && bucket)
: m_type(type)
, m_state(state)
diff --git a/drape_frontend/user_mark_generator.cpp b/drape_frontend/user_mark_generator.cpp
index c84bf19ebd..4d930b9dad 100644
--- a/drape_frontend/user_mark_generator.cpp
+++ b/drape_frontend/user_mark_generator.cpp
@@ -230,7 +230,7 @@ void UserMarkGenerator::GenerateUserMarksGeometry(TileKey const & tileKey, ref_p
dp::Batcher batcher(kMaxSize, kMaxSize);
TUserMarksRenderData renderData;
{
- dp::SessionGuard guard(batcher, [&tileKey, &renderData](dp::GLState const & state,
+ dp::SessionGuard guard(batcher, [&tileKey, &renderData](dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && b)
{
renderData.emplace_back(state, std::move(b), tileKey);
diff --git a/drape_frontend/user_mark_shapes.cpp b/drape_frontend/user_mark_shapes.cpp
index f667a1fa5b..91b04ed6bf 100644
--- a/drape_frontend/user_mark_shapes.cpp
+++ b/drape_frontend/user_mark_shapes.cpp
@@ -300,7 +300,7 @@ void CacheUserMarks(TileKey const & tileKey, ref_ptr<dp::TextureManager> texture
dp::TextureManager::SymbolRegion region;
dp::TextureManager::SymbolRegion backgroundRegion;
- RenderState::DepthLayer depthLayer = RenderState::UserMarkLayer;
+ DepthLayer depthLayer = DepthLayer::UserMarkLayer;
bool depthTestEnabled = true;
for (auto const id : marksId)
{
@@ -409,8 +409,8 @@ void CacheUserMarks(TileKey const & tileKey, ref_ptr<dp::TextureManager> texture
if (!buffer.empty())
{
- auto state = CreateGLState(isAnimated ? gpu::Program::BookmarkAnim
- : gpu::Program::Bookmark, depthLayer);
+ auto state = CreateRenderState(isAnimated ? gpu::Program::BookmarkAnim
+ : gpu::Program::Bookmark, depthLayer);
state.SetProgram3d(isAnimated ? gpu::Program::BookmarkAnimBillboard
: gpu::Program::BookmarkBillboard);
state.SetColorTexture(region.GetTexture());
diff --git a/drape_frontend/user_mark_shapes.hpp b/drape_frontend/user_mark_shapes.hpp
index 716e2f7145..05881cf678 100644
--- a/drape_frontend/user_mark_shapes.hpp
+++ b/drape_frontend/user_mark_shapes.hpp
@@ -33,7 +33,7 @@ struct UserMarkRenderParams
uint32_t m_index = 0;
bool m_depthTestEnabled = true;
float m_depth = 0.0;
- RenderState::DepthLayer m_depthLayer = RenderState::UserMarkLayer;
+ DepthLayer m_depthLayer = DepthLayer::UserMarkLayer;
bool m_hasCreationAnimation = false;
bool m_justCreated = false;
bool m_isVisible = true;
@@ -57,7 +57,7 @@ struct LineLayer
struct UserLineRenderParams
{
int m_minZoom = 1;
- RenderState::DepthLayer m_depthLayer = RenderState::UserLineLayer;
+ DepthLayer m_depthLayer = DepthLayer::UserLineLayer;
std::vector<LineLayer> m_layers;
m2::SharedSpline m_spline;
};
@@ -67,13 +67,13 @@ using UserLinesRenderCollection = std::unordered_map<kml::MarkId, drape_ptr<User
struct UserMarkRenderData
{
- UserMarkRenderData(dp::GLState const & state,
+ UserMarkRenderData(dp::RenderState const & state,
drape_ptr<dp::RenderBucket> && bucket,
TileKey const & tileKey)
: m_state(state), m_bucket(move(bucket)), m_tileKey(tileKey)
{}
- dp::GLState m_state;
+ dp::RenderState m_state;
drape_ptr<dp::RenderBucket> m_bucket;
TileKey m_tileKey;
};
diff --git a/drape_frontend/user_marks_provider.hpp b/drape_frontend/user_marks_provider.hpp
index b4933a4baf..857dc7a725 100644
--- a/drape_frontend/user_marks_provider.hpp
+++ b/drape_frontend/user_marks_provider.hpp
@@ -1,7 +1,7 @@
#pragma once
#include "drape_frontend/color_constants.hpp"
-#include "drape_frontend/render_state.hpp"
+#include "drape_frontend/render_state_extension.hpp"
#include "drape_frontend/shape_view_params.hpp"
#include "drape/drape_global.hpp"
@@ -57,7 +57,7 @@ public:
virtual dp::Anchor GetAnchor() const = 0;
virtual bool GetDepthTestEnabled() const = 0;
virtual float GetDepth() const = 0;
- virtual RenderState::DepthLayer GetDepthLayer() const = 0;
+ virtual DepthLayer GetDepthLayer() const = 0;
virtual bool IsVisible() const = 0;
virtual drape_ptr<TitlesInfo> GetTitleDecl() const = 0;
virtual drape_ptr<SymbolNameZoomInfo> GetSymbolNames() const = 0;
@@ -91,7 +91,7 @@ public:
virtual kml::TrackId GetId() const { return m_id; }
virtual int GetMinZoom() const = 0;
- virtual RenderState::DepthLayer GetDepthLayer() const = 0;
+ virtual DepthLayer GetDepthLayer() const = 0;
virtual size_t GetLayerCount() const = 0;
virtual dp::Color GetColor(size_t layerIndex) const = 0;
virtual float GetWidth(size_t layerIndex) const = 0;
diff --git a/map/local_ads_mark.cpp b/map/local_ads_mark.cpp
index b01ea95197..40d111ec56 100644
--- a/map/local_ads_mark.cpp
+++ b/map/local_ads_mark.cpp
@@ -36,9 +36,9 @@ drape_ptr<df::UserPointMark::SymbolNameZoomInfo> LocalAdsMark::GetSymbolNames()
return symbol;
}
-df::RenderState::DepthLayer LocalAdsMark::GetDepthLayer() const
+df::DepthLayer LocalAdsMark::GetDepthLayer() const
{
- return df::RenderState::LocalAdsMarkLayer;
+ return df::DepthLayer::LocalAdsMarkLayer;
}
drape_ptr<df::UserPointMark::TitlesInfo> LocalAdsMark::GetTitleDecl() const
diff --git a/map/local_ads_mark.hpp b/map/local_ads_mark.hpp
index ecaf0b0f60..9739edefcf 100644
--- a/map/local_ads_mark.hpp
+++ b/map/local_ads_mark.hpp
@@ -19,10 +19,9 @@ struct LocalAdsMarkData
class LocalAdsMark : public UserMark
{
public:
- LocalAdsMark(m2::PointD const & ptOrg);
- virtual ~LocalAdsMark() {}
+ explicit LocalAdsMark(m2::PointD const & ptOrg);
- df::RenderState::DepthLayer GetDepthLayer() const override;
+ df::DepthLayer GetDepthLayer() const override;
drape_ptr<SymbolNameZoomInfo> GetSymbolNames() const override;
diff --git a/map/routing_mark.cpp b/map/routing_mark.cpp
index 8a8fceefba..bbd38ba020 100644
--- a/map/routing_mark.cpp
+++ b/map/routing_mark.cpp
@@ -44,9 +44,9 @@ dp::Anchor RouteMarkPoint::GetAnchor() const
return dp::Center;
}
-df::RenderState::DepthLayer RouteMarkPoint::GetDepthLayer() const
+df::DepthLayer RouteMarkPoint::GetDepthLayer() const
{
- return df::RenderState::RoutingMarkLayer;
+ return df::DepthLayer::RoutingMarkLayer;
}
void RouteMarkPoint::SetRoutePointType(RouteMarkType type)
diff --git a/map/routing_mark.hpp b/map/routing_mark.hpp
index 35ae42dd02..d23dd2f9d2 100644
--- a/map/routing_mark.hpp
+++ b/map/routing_mark.hpp
@@ -34,7 +34,7 @@ public:
void SetIsVisible(bool isVisible) { m_markData.m_isVisible = isVisible; }
dp::Anchor GetAnchor() const override;
- df::RenderState::DepthLayer GetDepthLayer() const override;
+ df::DepthLayer GetDepthLayer() const override;
drape_ptr<SymbolNameZoomInfo> GetSymbolNames() const override;
bool IsAvailableForSearch() const override { return !IsPassed(); }
@@ -105,10 +105,9 @@ private:
class TransitMark : public UserMark
{
public:
- TransitMark(m2::PointD const & ptOrg);
- virtual ~TransitMark() {}
+ explicit TransitMark(m2::PointD const & ptOrg);
- df::RenderState::DepthLayer GetDepthLayer() const override { return df::RenderState::TransitMarkLayer; }
+ df::DepthLayer GetDepthLayer() const override { return df::DepthLayer::TransitMarkLayer; }
bool HasSymbolPriority() const override { return !m_symbolNames.empty() || !m_coloredSymbols.empty(); }
bool HasTitlePriority() const override { return true; }
diff --git a/map/search_mark.cpp b/map/search_mark.cpp
index d3deb4f609..9e7f16800e 100644
--- a/map/search_mark.cpp
+++ b/map/search_mark.cpp
@@ -198,9 +198,9 @@ int SearchMarkPoint::GetMinTitleZoom() const
return 1;
}
-df::RenderState::DepthLayer SearchMarkPoint::GetDepthLayer() const
+df::DepthLayer SearchMarkPoint::GetDepthLayer() const
{
- return df::RenderState::SearchMarkLayer;
+ return df::DepthLayer::SearchMarkLayer;
}
void SearchMarkPoint::SetFoundFeature(FeatureID const & feature)
diff --git a/map/search_mark.hpp b/map/search_mark.hpp
index 8d28513630..f31f368b0e 100644
--- a/map/search_mark.hpp
+++ b/map/search_mark.hpp
@@ -39,7 +39,7 @@ public:
df::ColorConstant GetColorConstant() const override;
drape_ptr<TitlesInfo> GetTitleDecl() const override;
int GetMinTitleZoom() const override;
- df::RenderState::DepthLayer GetDepthLayer() const override;
+ df::DepthLayer GetDepthLayer() const override;
drape_ptr<SymbolNameZoomInfo> GetBadgeNames() const override;
drape_ptr<SymbolOffsets> GetSymbolOffsets() const override;
bool GetDepthTestEnabled() const override { return false; }
diff --git a/map/track.cpp b/map/track.cpp
index 4e82b019dd..89e22471d0 100644
--- a/map/track.cpp
+++ b/map/track.cpp
@@ -46,9 +46,9 @@ double Track::GetLengthMeters() const
return res;
}
-df::RenderState::DepthLayer Track::GetDepthLayer() const
+df::DepthLayer Track::GetDepthLayer() const
{
- return df::RenderState::UserLineLayer;
+ return df::DepthLayer::UserLineLayer;
}
size_t Track::GetLayerCount() const
diff --git a/map/track.hpp b/map/track.hpp
index f4fcfd986d..f1953a2405 100644
--- a/map/track.hpp
+++ b/map/track.hpp
@@ -20,7 +20,7 @@ public:
double GetLengthMeters() const;
int GetMinZoom() const override { return 1; }
- df::RenderState::DepthLayer GetDepthLayer() const override;
+ df::DepthLayer GetDepthLayer() const override;
size_t GetLayerCount() const override;
dp::Color GetColor(size_t layerIndex) const override;
float GetWidth(size_t layerIndex) const override;
diff --git a/map/user_mark.cpp b/map/user_mark.cpp
index 60d97a8947..b47d5ccc3d 100644
--- a/map/user_mark.cpp
+++ b/map/user_mark.cpp
@@ -36,9 +36,9 @@ dp::Anchor UserMark::GetAnchor() const
return dp::Center;
}
-df::RenderState::DepthLayer UserMark::GetDepthLayer() const
+df::DepthLayer UserMark::GetDepthLayer() const
{
- return df::RenderState::UserMarkLayer;
+ return df::DepthLayer::UserMarkLayer;
}
ms::LatLon UserMark::GetLatLon() const
diff --git a/map/user_mark.hpp b/map/user_mark.hpp
index f4dced339f..bbd954a8cc 100644
--- a/map/user_mark.hpp
+++ b/map/user_mark.hpp
@@ -61,7 +61,7 @@ public:
dp::Anchor GetAnchor() const override;
bool GetDepthTestEnabled() const override { return true; }
float GetDepth() const override { return 0.0f; }
- df::RenderState::DepthLayer GetDepthLayer() const override;
+ df::DepthLayer GetDepthLayer() const override;
drape_ptr<TitlesInfo> GetTitleDecl() const override { return nullptr; }
drape_ptr<ColoredSymbolZoomInfo> GetColoredSymbols() const override { return nullptr; }
drape_ptr<SymbolNameZoomInfo> GetBadgeNames() const override { return nullptr; }
diff --git a/xcode/drape/drape.xcodeproj/project.pbxproj b/xcode/drape/drape.xcodeproj/project.pbxproj
index 8a4d634632..4b9ce35e0b 100644
--- a/xcode/drape/drape.xcodeproj/project.pbxproj
+++ b/xcode/drape/drape.xcodeproj/project.pbxproj
@@ -20,6 +20,8 @@
457B536620358F7E00E4E752 /* drape_routine.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 457B536320358F7D00E4E752 /* drape_routine.hpp */; };
457B536720358F7E00E4E752 /* glyph_generator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 457B536420358F7D00E4E752 /* glyph_generator.cpp */; };
457B536820358F7E00E4E752 /* glyph_generator.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 457B536520358F7E00E4E752 /* glyph_generator.hpp */; };
+ 45D7ADE22113535600160DE3 /* render_state.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45D7ADE02113535500160DE3 /* render_state.hpp */; };
+ 45D7ADE32113535600160DE3 /* render_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45D7ADE12113535600160DE3 /* render_state.cpp */; };
670947231BDF9A4F005014C0 /* data_buffer_impl.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670947151BDF9A4F005014C0 /* data_buffer_impl.hpp */; };
670947251BDF9A4F005014C0 /* bidi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670947171BDF9A4F005014C0 /* bidi.cpp */; };
670947261BDF9A4F005014C0 /* bidi.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670947181BDF9A4F005014C0 /* bidi.hpp */; };
@@ -62,8 +64,6 @@
6729A57F1A69213A007D5872 /* glIncludes.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6729A51B1A69213A007D5872 /* glIncludes.hpp */; };
6729A5801A69213A007D5872 /* glsl_func.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6729A51C1A69213A007D5872 /* glsl_func.hpp */; };
6729A5811A69213A007D5872 /* glsl_types.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6729A51D1A69213A007D5872 /* glsl_types.hpp */; };
- 6729A5821A69213A007D5872 /* glstate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6729A51E1A69213A007D5872 /* glstate.cpp */; };
- 6729A5831A69213A007D5872 /* glstate.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6729A51F1A69213A007D5872 /* glstate.hpp */; };
6729A5861A69213A007D5872 /* gpu_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6729A5221A69213A007D5872 /* gpu_buffer.cpp */; };
6729A5871A69213A007D5872 /* gpu_buffer.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6729A5231A69213A007D5872 /* gpu_buffer.hpp */; };
6729A58A1A69213A007D5872 /* gpu_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6729A5261A69213A007D5872 /* gpu_program.cpp */; };
@@ -127,6 +127,8 @@
457B536320358F7D00E4E752 /* drape_routine.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = drape_routine.hpp; sourceTree = "<group>"; };
457B536420358F7D00E4E752 /* glyph_generator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = glyph_generator.cpp; sourceTree = "<group>"; };
457B536520358F7E00E4E752 /* glyph_generator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = glyph_generator.hpp; sourceTree = "<group>"; };
+ 45D7ADE02113535500160DE3 /* render_state.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = render_state.hpp; sourceTree = "<group>"; };
+ 45D7ADE12113535600160DE3 /* render_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_state.cpp; sourceTree = "<group>"; };
670947151BDF9A4F005014C0 /* data_buffer_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = data_buffer_impl.hpp; sourceTree = "<group>"; };
670947171BDF9A4F005014C0 /* bidi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bidi.cpp; sourceTree = "<group>"; };
670947181BDF9A4F005014C0 /* bidi.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = bidi.hpp; sourceTree = "<group>"; };
@@ -170,8 +172,6 @@
6729A51B1A69213A007D5872 /* glIncludes.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = glIncludes.hpp; sourceTree = "<group>"; };
6729A51C1A69213A007D5872 /* glsl_func.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = glsl_func.hpp; sourceTree = "<group>"; };
6729A51D1A69213A007D5872 /* glsl_types.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = glsl_types.hpp; sourceTree = "<group>"; };
- 6729A51E1A69213A007D5872 /* glstate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = glstate.cpp; sourceTree = "<group>"; };
- 6729A51F1A69213A007D5872 /* glstate.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = glstate.hpp; sourceTree = "<group>"; };
6729A5221A69213A007D5872 /* gpu_buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gpu_buffer.cpp; sourceTree = "<group>"; };
6729A5231A69213A007D5872 /* gpu_buffer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = gpu_buffer.hpp; sourceTree = "<group>"; };
6729A5261A69213A007D5872 /* gpu_program.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gpu_program.cpp; sourceTree = "<group>"; };
@@ -292,8 +292,6 @@
6729A51B1A69213A007D5872 /* glIncludes.hpp */,
6729A51C1A69213A007D5872 /* glsl_func.hpp */,
6729A51D1A69213A007D5872 /* glsl_types.hpp */,
- 6729A51E1A69213A007D5872 /* glstate.cpp */,
- 6729A51F1A69213A007D5872 /* glstate.hpp */,
457B536420358F7D00E4E752 /* glyph_generator.cpp */,
457B536520358F7E00E4E752 /* glyph_generator.hpp */,
670947191BDF9A4F005014C0 /* glyph_manager.cpp */,
@@ -302,9 +300,9 @@
6729A5231A69213A007D5872 /* gpu_buffer.hpp */,
6729A5261A69213A007D5872 /* gpu_program.cpp */,
6729A5271A69213A007D5872 /* gpu_program.hpp */,
- BBB72E972111CE9100249D4F /* graphics_context.hpp */,
BBB72E992111CE9100249D4F /* graphics_context_factory.cpp */,
BBB72E982111CE9100249D4F /* graphics_context_factory.hpp */,
+ BBB72E972111CE9100249D4F /* graphics_context.hpp */,
6709471B1BDF9A4F005014C0 /* hw_texture_ios.hpp */,
6709471C1BDF9A4F005014C0 /* hw_texture_ios.mm */,
6709471D1BDF9A4F005014C0 /* hw_texture.cpp */,
@@ -316,8 +314,8 @@
6709471F1BDF9A4F005014C0 /* index_storage.cpp */,
670947201BDF9A4F005014C0 /* index_storage.hpp */,
6729A52C1A69213A007D5872 /* object_pool.hpp */,
- 6729A52D1A69213A007D5872 /* oglcontext.hpp */,
BBB72E8F2110AF0F00249D4F /* oglcontext.cpp */,
+ 6729A52D1A69213A007D5872 /* oglcontext.hpp */,
6729A5301A69213A007D5872 /* overlay_handle.cpp */,
6729A5311A69213A007D5872 /* overlay_handle.hpp */,
6729A5321A69213A007D5872 /* overlay_tree.cpp */,
@@ -326,6 +324,8 @@
6729A5351A69213A007D5872 /* pointers.hpp */,
6729A5361A69213A007D5872 /* render_bucket.cpp */,
6729A5371A69213A007D5872 /* render_bucket.hpp */,
+ 45D7ADE12113535600160DE3 /* render_state.cpp */,
+ 45D7ADE02113535500160DE3 /* render_state.hpp */,
6729A53C1A69213A007D5872 /* shader.cpp */,
6729A53D1A69213A007D5872 /* shader.hpp */,
34C624C71DABDB2000510300 /* static_texture.cpp */,
@@ -388,6 +388,7 @@
6729A5701A69213A007D5872 /* color.hpp in Headers */,
6729A5801A69213A007D5872 /* glsl_func.hpp in Headers */,
6729A5761A69213A007D5872 /* dynamic_texture.hpp in Headers */,
+ 45D7ADE22113535600160DE3 /* render_state.hpp in Headers */,
6729A5681A69213A007D5872 /* batcher_helpers.hpp in Headers */,
6729A56A1A69213A007D5872 /* batcher.hpp in Headers */,
675D219A1BFB876E00717E4F /* projection.hpp in Headers */,
@@ -396,7 +397,6 @@
6729A5991A69213A007D5872 /* pointers.hpp in Headers */,
6729A5A51A69213A007D5872 /* symbols_texture.hpp in Headers */,
BBB72E9B2111CE9100249D4F /* graphics_context_factory.hpp in Headers */,
- 6729A5831A69213A007D5872 /* glstate.hpp in Headers */,
BBB72E9A2111CE9100249D4F /* graphics_context.hpp in Headers */,
6729A5741A69213A007D5872 /* data_buffer.hpp in Headers */,
6729A58B1A69213A007D5872 /* gpu_program.hpp in Headers */,
@@ -521,10 +521,10 @@
6729A5AA1A69213A007D5872 /* texture.cpp in Sources */,
BBB72E9C2111CE9100249D4F /* graphics_context_factory.cpp in Sources */,
6729A5771A69213A007D5872 /* font_texture.cpp in Sources */,
+ 45D7ADE32113535600160DE3 /* render_state.cpp in Sources */,
347F32F91C45383E009758CC /* debug_rect_renderer.cpp in Sources */,
6729A58E1A69213A007D5872 /* index_buffer.cpp in Sources */,
6729A5A61A69213A007D5872 /* texture_manager.cpp in Sources */,
- 6729A5821A69213A007D5872 /* glstate.cpp in Sources */,
670947271BDF9A4F005014C0 /* glyph_manager.cpp in Sources */,
6729A56F1A69213A007D5872 /* color.cpp in Sources */,
6729A5671A69213A007D5872 /* batcher_helpers.cpp in Sources */,
diff --git a/xcode/drape_frontend/drape_frontend.xcodeproj/project.pbxproj b/xcode/drape_frontend/drape_frontend.xcodeproj/project.pbxproj
index d765365911..cf604bb14f 100644
--- a/xcode/drape_frontend/drape_frontend.xcodeproj/project.pbxproj
+++ b/xcode/drape_frontend/drape_frontend.xcodeproj/project.pbxproj
@@ -41,8 +41,6 @@
452FE5C41EB2004F00EE470C /* screen_quad_renderer.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 452FE5C21EB2004F00EE470C /* screen_quad_renderer.hpp */; };
453EEA6D1E3A28F400505E09 /* colored_symbol_shape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 453EEA6B1E3A28F400505E09 /* colored_symbol_shape.cpp */; };
453EEA6E1E3A28F400505E09 /* colored_symbol_shape.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 453EEA6C1E3A28F400505E09 /* colored_symbol_shape.hpp */; };
- 453FEDAC1F34C257005C1BB4 /* render_state.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 453FEDAA1F34C257005C1BB4 /* render_state.cpp */; };
- 453FEDAD1F34C257005C1BB4 /* render_state.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 453FEDAB1F34C257005C1BB4 /* render_state.hpp */; };
454B9A3A1F4591AD003FAE7A /* drape_engine_safe_ptr.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 454B9A391F4591AC003FAE7A /* drape_engine_safe_ptr.hpp */; };
454C19BB1CCE3EC0002A2C86 /* animation_constants.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 454C19B81CCE3EC0002A2C86 /* animation_constants.hpp */; };
454C19BC1CCE3EC0002A2C86 /* animation_system.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 454C19B91CCE3EC0002A2C86 /* animation_system.cpp */; };
@@ -61,6 +59,8 @@
45B4B8CD1CF5C16B00A54761 /* screen_operations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45B4B8C91CF5C16B00A54761 /* screen_operations.cpp */; };
45B4B8CE1CF5C16B00A54761 /* screen_operations.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45B4B8CA1CF5C16B00A54761 /* screen_operations.hpp */; };
45BE604E20E504FC00A456AE /* frame_values.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45BE604D20E504FC00A456AE /* frame_values.hpp */; };
+ 45D7ADDE2113532700160DE3 /* render_state_extension.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45D7ADDC2113532700160DE3 /* render_state_extension.hpp */; };
+ 45D7ADDF2113532700160DE3 /* render_state_extension.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45D7ADDD2113532700160DE3 /* render_state_extension.cpp */; };
45F1DA8420F3B274006E8CB3 /* drape_notifier.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45F1DA8220F3B274006E8CB3 /* drape_notifier.hpp */; };
45F1DA8520F3B274006E8CB3 /* drape_notifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45F1DA8320F3B274006E8CB3 /* drape_notifier.cpp */; };
56BF56DA1C7608C0006DD7CB /* choose_position_mark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 56BF56D81C7608C0006DD7CB /* choose_position_mark.cpp */; };
@@ -250,8 +250,6 @@
453C5E8A2065599D00C78952 /* route_marker.fsh.glsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = route_marker.fsh.glsl; path = shaders/route_marker.fsh.glsl; sourceTree = "<group>"; };
453EEA6B1E3A28F400505E09 /* colored_symbol_shape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = colored_symbol_shape.cpp; sourceTree = "<group>"; };
453EEA6C1E3A28F400505E09 /* colored_symbol_shape.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = colored_symbol_shape.hpp; sourceTree = "<group>"; };
- 453FEDAA1F34C257005C1BB4 /* render_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_state.cpp; sourceTree = "<group>"; };
- 453FEDAB1F34C257005C1BB4 /* render_state.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = render_state.hpp; sourceTree = "<group>"; };
454B9A391F4591AC003FAE7A /* drape_engine_safe_ptr.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = drape_engine_safe_ptr.hpp; sourceTree = "<group>"; };
454C19B81CCE3EC0002A2C86 /* animation_constants.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = animation_constants.hpp; sourceTree = "<group>"; };
454C19B91CCE3EC0002A2C86 /* animation_system.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = animation_system.cpp; sourceTree = "<group>"; };
@@ -331,6 +329,8 @@
45BB02591EB8BE2B00FE5C0C /* user_mark_billboard.vsh.glsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = user_mark_billboard.vsh.glsl; path = shaders/user_mark_billboard.vsh.glsl; sourceTree = "<group>"; };
45BB025A1EB8BE2B00FE5C0C /* user_mark.vsh.glsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = user_mark.vsh.glsl; path = shaders/user_mark.vsh.glsl; sourceTree = "<group>"; };
45BE604D20E504FC00A456AE /* frame_values.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = frame_values.hpp; sourceTree = "<group>"; };
+ 45D7ADDC2113532700160DE3 /* render_state_extension.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = render_state_extension.hpp; sourceTree = "<group>"; };
+ 45D7ADDD2113532700160DE3 /* render_state_extension.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_state_extension.cpp; sourceTree = "<group>"; };
45F1DA8220F3B274006E8CB3 /* drape_notifier.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = drape_notifier.hpp; sourceTree = "<group>"; };
45F1DA8320F3B274006E8CB3 /* drape_notifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = drape_notifier.cpp; sourceTree = "<group>"; };
56BF56D81C7608C0006DD7CB /* choose_position_mark.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = choose_position_mark.cpp; sourceTree = "<group>"; };
@@ -678,8 +678,8 @@
670947641BDF9BE0005014C0 /* render_group.cpp */,
670947651BDF9BE0005014C0 /* render_group.hpp */,
670947671BDF9BE0005014C0 /* render_node.hpp */,
- 453FEDAA1F34C257005C1BB4 /* render_state.cpp */,
- 453FEDAB1F34C257005C1BB4 /* render_state.hpp */,
+ 45D7ADDD2113532700160DE3 /* render_state_extension.cpp */,
+ 45D7ADDC2113532700160DE3 /* render_state_extension.hpp */,
677A2DE31C0DD55D00635A00 /* requested_tiles.cpp */,
677A2DE41C0DD55D00635A00 /* requested_tiles.hpp */,
670947681BDF9BE0005014C0 /* route_builder.cpp */,
@@ -844,6 +844,7 @@
670E393D1C46C59000E9C0A6 /* color_constants.hpp in Headers */,
34C624C41DABDB0400510300 /* traffic_generator.hpp in Headers */,
347F520E1DC2334A0064B273 /* drape_api_builder.hpp in Headers */,
+ 45D7ADDE2113532700160DE3 /* render_state_extension.hpp in Headers */,
6709484E1BDF9C48005014C0 /* shape.hpp in Headers */,
452C9EE31CEDCF3200A55E57 /* scale_animation.hpp in Headers */,
F6B283101C1B04680081957A /* gps_track_point.hpp in Headers */,
@@ -909,7 +910,6 @@
670947D71BDF9BE1005014C0 /* user_event_stream.hpp in Headers */,
6709479E1BDF9BE1005014C0 /* message_acceptor.hpp in Headers */,
6709484A1BDF9C48005014C0 /* ruler_helper.hpp in Headers */,
- 453FEDAD1F34C257005C1BB4 /* render_state.hpp in Headers */,
6743D36E1C3A9F090095054B /* arrow3d.hpp in Headers */,
670947B81BDF9BE1005014C0 /* route_builder.hpp in Headers */,
45BE604E20E504FC00A456AE /* frame_values.hpp in Headers */,
@@ -1006,6 +1006,7 @@
6709483B1BDF9C48005014C0 /* compass.cpp in Sources */,
453EEA6D1E3A28F400505E09 /* colored_symbol_shape.cpp in Sources */,
670947921BDF9BE1005014C0 /* kinetic_scroller.cpp in Sources */,
+ 45D7ADDF2113532700160DE3 /* render_state_extension.cpp in Sources */,
6709484D1BDF9C48005014C0 /* shape.cpp in Sources */,
670948431BDF9C48005014C0 /* drape_gui.cpp in Sources */,
670947D61BDF9BE1005014C0 /* user_event_stream.cpp in Sources */,
@@ -1048,7 +1049,6 @@
670947B91BDF9BE1005014C0 /* route_renderer.cpp in Sources */,
670E393C1C46C59000E9C0A6 /* color_constants.cpp in Sources */,
677A2DE51C0DD55D00635A00 /* requested_tiles.cpp in Sources */,
- 453FEDAC1F34C257005C1BB4 /* render_state.cpp in Sources */,
45B4B8CD1CF5C16B00A54761 /* screen_operations.cpp in Sources */,
670947B31BDF9BE1005014C0 /* render_group.cpp in Sources */,
347F52111DC2334A0064B273 /* drape_api.cpp in Sources */,