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>2019-01-18 17:03:07 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2019-03-01 10:45:24 +0300
commitf53013310a9ce31e976e7bae78461e57b12cc0d2 (patch)
treec4534e4209e7411771401542ccc82db631349190
parentc1375c8dac6c5d027d62f010042056b5cddd8c08 (diff)
[drape] Refactored context access in textures, fixed iOS compilation
-rw-r--r--drape/drape_tests/font_texture_tests.cpp4
-rw-r--r--drape/drape_tests/texture_of_colors_tests.cpp14
-rw-r--r--drape/dynamic_texture.hpp8
-rw-r--r--drape/font_texture.cpp4
-rw-r--r--drape/font_texture.hpp2
-rw-r--r--drape/hw_texture.cpp9
-rw-r--r--drape/hw_texture.hpp12
-rw-r--r--drape/hw_texture_ios.hpp5
-rw-r--r--drape/hw_texture_ios.mm6
-rw-r--r--drape/metal/metal_texture.hpp5
-rw-r--r--drape/metal/metal_texture.mm4
-rw-r--r--drape/render_state.cpp4
-rw-r--r--drape/stipple_pen_resource.cpp4
-rw-r--r--drape/stipple_pen_resource.hpp2
-rw-r--r--drape/texture.cpp10
-rw-r--r--drape/texture.hpp6
-rw-r--r--drape/texture_of_colors.cpp4
-rw-r--r--drape/texture_of_colors.hpp2
-rw-r--r--drape/vulkan/vulkan_texture.cpp12
-rw-r--r--drape/vulkan/vulkan_texture.hpp8
-rw-r--r--drape_frontend/backend_renderer.cpp6
-rwxr-xr-xdrape_frontend/frontend_renderer.cpp11
-rw-r--r--iphone/Maps/Maps.xcodeproj/project.pbxproj4
-rw-r--r--xcode/drape/drape.xcodeproj/project.pbxproj78
-rw-r--r--xcode/omim.xcworkspace/contents.xcworkspacedata9
-rw-r--r--xcode/shaders/shaders.xcodeproj/project.pbxproj21
-rw-r--r--xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.pbxproj218
-rw-r--r--xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.xcworkspace/contents.xcworkspacedata7
28 files changed, 411 insertions, 68 deletions
diff --git a/drape/drape_tests/font_texture_tests.cpp b/drape/drape_tests/font_texture_tests.cpp
index 3bbdfb34c7..b6f9eca021 100644
--- a/drape/drape_tests/font_texture_tests.cpp
+++ b/drape/drape_tests/font_texture_tests.cpp
@@ -114,7 +114,7 @@ UNIT_TEST(UploadingGlyphs)
tex.Create(make_ref(&context), p);
EXPECTGL(glTexSubImage2D(_, _, _, _, _, _, _))
.WillRepeatedly(Invoke(&r, &UploadedRender::glMemoryToQImage));
- index.UploadResources(make_ref(&tex));
+ index.UploadResources(make_ref(&context), make_ref(&tex));
count = 0;
count += (index.MapResource(GlyphKey(0x68, GlyphManager::kDynamicGlyphSize)) != nullptr) ? 1 : 0;
@@ -128,7 +128,7 @@ UNIT_TEST(UploadingGlyphs)
EXPECTGL(glTexSubImage2D(_, _, _, _, _, _, _))
.WillRepeatedly(Invoke(&r, &UploadedRender::glMemoryToQImage));
- index.UploadResources(make_ref(&tex));
+ index.UploadResources(make_ref(&context), make_ref(&tex));
RunTestLoop("UploadingGlyphs", std::bind(&UploadedRender::Render, &r, _1));
DrapeRoutine::Shutdown();
diff --git a/drape/drape_tests/texture_of_colors_tests.cpp b/drape/drape_tests/texture_of_colors_tests.cpp
index 40667db35d..bf581f564e 100644
--- a/drape/drape_tests/texture_of_colors_tests.cpp
+++ b/drape/drape_tests/texture_of_colors_tests.cpp
@@ -104,7 +104,7 @@ UNIT_TEST(ColorPalleteUploadingSingleRow)
DummyTexture texture;
texture.Create(make_ref(&context), p);
DummyColorPallete cp(m2::PointU(width, height));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
{
cp.MapResource(dp::ColorKey(dp::Color(0xFF, 0, 0, 0)));
@@ -142,7 +142,7 @@ UNIT_TEST(ColorPalleteUploadingSingleRow)
EXPECTGL(glTexSubImage2D(0, 0, 10, 2, AnyOf(gl_const::GLRGBA, gl_const::GLRGBA8), gl_const::GL8BitOnChannel, _))
.WillOnce(Invoke(&cmp, &MemoryComparer::cmpSubImage));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
}
{
@@ -181,7 +181,7 @@ UNIT_TEST(ColorPalleteUploadingSingleRow)
EXPECTGL(glTexSubImage2D(10, 0, 10, 2, AnyOf(gl_const::GLRGBA, gl_const::GLRGBA8), gl_const::GL8BitOnChannel, _))
.WillOnce(Invoke(&cmp, &MemoryComparer::cmpSubImage));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
}
EXPECTGL(glDeleteTexture(1));
@@ -226,7 +226,7 @@ UNIT_TEST(ColorPalleteUploadingPartialyRow)
EXPECTGL(glTexSubImage2D(0, 0, 4, 2, AnyOf(gl_const::GLRGBA, gl_const::GLRGBA8), gl_const::GL8BitOnChannel, _))
.WillOnce(Invoke(&cmp, &MemoryComparer::cmpSubImage));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
}
{
@@ -269,7 +269,7 @@ UNIT_TEST(ColorPalleteUploadingPartialyRow)
EXPECTGL(glTexSubImage2D(0, 2, 4, 2, AnyOf(gl_const::GLRGBA, gl_const::GLRGBA8), gl_const::GL8BitOnChannel, _))
.WillOnce(Invoke(&cmp2, &MemoryComparer::cmpSubImage));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
}
@@ -316,7 +316,7 @@ UNIT_TEST(ColorPalleteUploadingMultiplyRow)
EXPECTGL(glTexSubImage2D(0, 0, 4, 2, AnyOf(gl_const::GLRGBA, gl_const::GLRGBA8), gl_const::GL8BitOnChannel, _))
.WillOnce(Invoke(&cmp, &MemoryComparer::cmpSubImage));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
}
{
@@ -352,7 +352,7 @@ UNIT_TEST(ColorPalleteUploadingMultiplyRow)
EXPECTGL(glTexSubImage2D(0, 2, 4, 4, AnyOf(gl_const::GLRGBA, gl_const::GLRGBA8), gl_const::GL8BitOnChannel, _))
.WillOnce(Invoke(&cmp1, &MemoryComparer::cmpSubImage));
- cp.UploadResources(make_ref(&texture));
+ cp.UploadResources(make_ref(&context), make_ref(&texture));
}
EXPECTGL(glDeleteTexture(1));
diff --git a/drape/dynamic_texture.hpp b/drape/dynamic_texture.hpp
index 3ae46646d2..e19dd00c83 100644
--- a/drape/dynamic_texture.hpp
+++ b/drape/dynamic_texture.hpp
@@ -51,8 +51,8 @@ public:
}
ASSERT(m_indexer != nullptr, ());
- Bind();
- m_indexer->UploadResources(make_ref(this));
+ Bind(context);
+ m_indexer->UploadResources(context, make_ref(this));
}
TextureFormat GetFormat() const override
@@ -85,10 +85,10 @@ public:
return m_isInitialized ? Texture::GetID() : 0;
}
- void Bind() const override
+ void Bind(ref_ptr<dp::GraphicsContext> context) const override
{
if (m_isInitialized)
- Texture::Bind();
+ Texture::Bind(context);
}
void SetFilter(TextureFilter filter) override
diff --git a/drape/font_texture.cpp b/drape/font_texture.cpp
index 5f623056c7..17a5fb9bf4 100644
--- a/drape/font_texture.cpp
+++ b/drape/font_texture.cpp
@@ -214,7 +214,7 @@ void GlyphIndex::OnCompleteGlyphGeneration(GlyphGenerator::GlyphGenerationDataAr
m_pendingNodes.emplace_back(g.m_rect, g.m_glyph);
}
-void GlyphIndex::UploadResources(ref_ptr<Texture> texture)
+void GlyphIndex::UploadResources(ref_ptr<dp::GraphicsContext> context, ref_ptr<Texture> texture)
{
PendingNodes pendingNodes;
{
@@ -251,7 +251,7 @@ void GlyphIndex::UploadResources(ref_ptr<Texture> texture)
ASSERT_EQUAL(glyph.m_image.m_height, rect.SizeY(), ());
uint8_t * srcMemory = SharedBufferManager::GetRawPointer(glyph.m_image.m_data);
- texture->UploadData(zeroPoint.x, zeroPoint.y, rect.SizeX(), rect.SizeY(), make_ref(srcMemory));
+ texture->UploadData(context, zeroPoint.x, zeroPoint.y, rect.SizeX(), rect.SizeY(), make_ref(srcMemory));
glyph.m_image.Destroy();
}
diff --git a/drape/font_texture.hpp b/drape/font_texture.hpp
index e5aac49c89..adda3040da 100644
--- a/drape/font_texture.hpp
+++ b/drape/font_texture.hpp
@@ -84,7 +84,7 @@ public:
ref_ptr<Texture::ResourceInfo> MapResource(GlyphKey const & key, bool & newResource);
std::vector<ref_ptr<Texture::ResourceInfo>> MapResources(std::vector<GlyphKey> const & keys,
bool & hasNewResources);
- void UploadResources(ref_ptr<Texture> texture);
+ void UploadResources(ref_ptr<dp::GraphicsContext> context, ref_ptr<Texture> texture);
bool CanBeGlyphPacked(uint32_t glyphsCount) const;
diff --git a/drape/hw_texture.cpp b/drape/hw_texture.cpp
index 241f1413a7..ea4fd5734d 100644
--- a/drape/hw_texture.cpp
+++ b/drape/hw_texture.cpp
@@ -174,7 +174,7 @@ void OpenGLHWTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const
Base::Create(context, params, data);
m_textureID = GLFunctions::glGenTexture();
- Bind();
+ Bind(context);
UnpackFormat(context, m_params.m_format, m_unpackedLayout, m_unpackedPixelType);
@@ -199,8 +199,8 @@ void OpenGLHWTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const
GLFunctions::glFlush();
}
-void OpenGLHWTexture::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height,
- ref_ptr<void> data)
+void OpenGLHWTexture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data)
{
ASSERT(Validate(), ());
uint32_t const mappingSize = height * width * m_pixelBufferElementSize;
@@ -218,8 +218,9 @@ void OpenGLHWTexture::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_
}
}
-void OpenGLHWTexture::Bind() const
+void OpenGLHWTexture::Bind(ref_ptr<dp::GraphicsContext> context) const
{
+ UNUSED_VALUE(context);
ASSERT(Validate(), ());
if (m_textureID != 0)
GLFunctions::glBindTexture(GetID());
diff --git a/drape/hw_texture.hpp b/drape/hw_texture.hpp
index f780550897..09287a23b0 100644
--- a/drape/hw_texture.hpp
+++ b/drape/hw_texture.hpp
@@ -35,10 +35,10 @@ public:
virtual void Create(ref_ptr<dp::GraphicsContext> context, Params const & params,
ref_ptr<void> data) = 0;
- virtual void UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height,
- ref_ptr<void> data) = 0;
+ virtual void UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data) = 0;
- virtual void Bind() const = 0;
+ virtual void Bind(ref_ptr<dp::GraphicsContext> context) const = 0;
// For OpenGL the texture must be bound before calling this method.
virtual void SetFilter(TextureFilter filter) = 0;
@@ -80,9 +80,9 @@ public:
~OpenGLHWTexture() override;
void Create(ref_ptr<dp::GraphicsContext> context, Params const & params,
ref_ptr<void> data) override;
- void UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height,
- ref_ptr<void> data) override;
- void Bind() const override;
+ void UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data) override;
+ void Bind(ref_ptr<dp::GraphicsContext> context) const override;
void SetFilter(TextureFilter filter) override;
bool Validate() const override;
diff --git a/drape/hw_texture_ios.hpp b/drape/hw_texture_ios.hpp
index b6d52d6441..8d76be2524 100644
--- a/drape/hw_texture_ios.hpp
+++ b/drape/hw_texture_ios.hpp
@@ -47,8 +47,9 @@ public:
~HWTextureApple();
void Create(ref_ptr<dp::GraphicsContext> context, Params const & params, ref_ptr<void> data) override;
- void UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height, ref_ptr<void> data) override;
- void Bind() const override;
+ void UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data) override;
+ void Bind(ref_ptr<dp::GraphicsContext> context) const override;
void SetFilter(TextureFilter filter) override;
bool Validate() const override;
diff --git a/drape/hw_texture_ios.mm b/drape/hw_texture_ios.mm
index 17a9526f80..fb992423c2 100644
--- a/drape/hw_texture_ios.mm
+++ b/drape/hw_texture_ios.mm
@@ -171,7 +171,8 @@ void HWTextureApple::Create(ref_ptr<dp::GraphicsContext> context, Params const &
Unlock();
}
-void HWTextureApple::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height, ref_ptr<void> data)
+void HWTextureApple::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data)
{
uint8_t bytesPerPixel = GetBytesPerPixel(GetFormat());
Lock();
@@ -197,8 +198,9 @@ void HWTextureApple::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t
Unlock();
}
-void HWTextureApple::Bind() const
+void HWTextureApple::Bind(ref_ptr<dp::GraphicsContext> context) const
{
+ UNUSED_VALUE(context);
ASSERT(Validate(), ());
if (m_textureID != 0)
GLFunctions::glBindTexture(GetID());
diff --git a/drape/metal/metal_texture.hpp b/drape/metal/metal_texture.hpp
index d2771f2334..4ca3435e8e 100644
--- a/drape/metal/metal_texture.hpp
+++ b/drape/metal/metal_texture.hpp
@@ -22,8 +22,9 @@ public:
explicit MetalTexture(ref_ptr<MetalTextureAllocator> allocator);
void Create(ref_ptr<dp::GraphicsContext> context, Params const & params, ref_ptr<void> data) override;
- void UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height, ref_ptr<void> data) override;
- void Bind() const override {}
+ void UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data) override;
+ void Bind(ref_ptr<dp::GraphicsContext> context) const override {}
void SetFilter(TextureFilter filter) override;
bool Validate() const override;
diff --git a/drape/metal/metal_texture.mm b/drape/metal/metal_texture.mm
index 7f63646af6..7cb06e393f 100644
--- a/drape/metal/metal_texture.mm
+++ b/drape/metal/metal_texture.mm
@@ -76,8 +76,10 @@ void MetalTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const & p
}
}
-void MetalTexture::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height, ref_ptr<void> data)
+void MetalTexture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data)
{
+ UNUSED_VALUE(context);
CHECK(m_isMutable, ("Upload data is avaivable only for mutable textures."));
MTLRegion region = MTLRegionMake2D(x, y, width, height);
auto const rowBytes = width * GetBytesPerPixel(m_params.m_format);
diff --git a/drape/render_state.cpp b/drape/render_state.cpp
index 93ab82baa8..77055cb9d2 100644
--- a/drape/render_state.cpp
+++ b/drape/render_state.cpp
@@ -210,7 +210,7 @@ void TextureState::ApplyTextures(ref_ptr<GraphicsContext> context, RenderState c
if (tex != nullptr && (texLoc = p->GetUniformLocation(texture.first)) >= 0)
{
GLFunctions::glActiveTexture(gl_const::GLTexture0 + m_usedSlots);
- tex->Bind();
+ tex->Bind(context);
GLFunctions::glUniformValuei(texLoc, m_usedSlots);
tex->SetFilter(state.GetTextureFilter());
m_usedSlots++;
@@ -225,7 +225,7 @@ void TextureState::ApplyTextures(ref_ptr<GraphicsContext> context, RenderState c
}
else if (apiVersion == dp::ApiVersion::Vulkan)
{
- //TODO(@rokuz, @darina): Implement.
+ //TODO(@rokuz, @darina): Implement. Use Bind!
}
else
{
diff --git a/drape/stipple_pen_resource.cpp b/drape/stipple_pen_resource.cpp
index 0e6d67f6da..68d4b18b7c 100644
--- a/drape/stipple_pen_resource.cpp
+++ b/drape/stipple_pen_resource.cpp
@@ -164,7 +164,7 @@ ref_ptr<Texture::ResourceInfo> StipplePenIndex::MapResource(StipplePenKey const
return ReserveResource(false /* predefined */, key, newResource);
}
-void StipplePenIndex::UploadResources(ref_ptr<Texture> texture)
+void StipplePenIndex::UploadResources(ref_ptr<dp::GraphicsContext> context, ref_ptr<Texture> texture)
{
ASSERT(texture->GetFormat() == dp::TextureFormat::Alpha, ());
TPendingNodes pendingNodes;
@@ -184,7 +184,7 @@ void StipplePenIndex::UploadResources(ref_ptr<Texture> texture)
for (size_t i = 0; i < pendingNodes.size(); ++i)
pendingNodes[i].second.Rasterize(rawBuffer + i * bytesPerNode);
- texture->UploadData(0, pendingNodes.front().first.minY(), kMaxStipplePenLength,
+ texture->UploadData(context, 0, pendingNodes.front().first.minY(), kMaxStipplePenLength,
static_cast<uint32_t>(pendingNodes.size()) * kStippleHeight, make_ref(rawBuffer));
mng.freeSharedBuffer(reserveBufferSize, ptr);
diff --git a/drape/stipple_pen_resource.hpp b/drape/stipple_pen_resource.hpp
index 31ef3c846f..230d64f499 100644
--- a/drape/stipple_pen_resource.hpp
+++ b/drape/stipple_pen_resource.hpp
@@ -101,7 +101,7 @@ public:
ref_ptr<Texture::ResourceInfo> ReserveResource(bool predefined, StipplePenKey const & key,
bool & newResource);
ref_ptr<Texture::ResourceInfo> MapResource(StipplePenKey const & key, bool & newResource);
- void UploadResources(ref_ptr<Texture> texture);
+ void UploadResources(ref_ptr<dp::GraphicsContext> context, ref_ptr<Texture> texture);
private:
typedef std::map<StipplePenHandle, StipplePenResourceInfo> TResourceMapping;
diff --git a/drape/texture.cpp b/drape/texture.cpp
index a74c15b5fb..5bf19c87f8 100644
--- a/drape/texture.cpp
+++ b/drape/texture.cpp
@@ -29,11 +29,11 @@ void Texture::Create(ref_ptr<dp::GraphicsContext> context, Params const & params
m_hwTexture->Create(context, params, data);
}
-void Texture::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height,
- ref_ptr<void> data)
+void Texture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data)
{
ASSERT(m_hwTexture != nullptr, ());
- m_hwTexture->UploadData(x, y, width, height, data);
+ m_hwTexture->UploadData(context, x, y, width, height, data);
}
TextureFormat Texture::GetFormat() const
@@ -72,10 +72,10 @@ uint32_t Texture::GetID() const
return m_hwTexture->GetID();
}
-void Texture::Bind() const
+void Texture::Bind(ref_ptr<dp::GraphicsContext> context) const
{
ASSERT(m_hwTexture != nullptr, ());
- m_hwTexture->Bind();
+ m_hwTexture->Bind(context);
}
void Texture::SetFilter(TextureFilter filter)
diff --git a/drape/texture.hpp b/drape/texture.hpp
index aede9bbfcb..fd6ecff9b4 100644
--- a/drape/texture.hpp
+++ b/drape/texture.hpp
@@ -59,7 +59,7 @@ public:
virtual float GetT(uint32_t y) const;
virtual uint32_t GetID() const;
- virtual void Bind() const;
+ virtual void Bind(ref_ptr<dp::GraphicsContext> context) const;
// Texture must be bound before calling this method.
virtual void SetFilter(TextureFilter filter);
@@ -67,8 +67,8 @@ public:
virtual void Create(ref_ptr<dp::GraphicsContext> context, Params const & params);
virtual void Create(ref_ptr<dp::GraphicsContext> context, Params const & params,
ref_ptr<void> data);
- void UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height,
- ref_ptr<void> data);
+ void UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data);
ref_ptr<HWTexture> GetHardwareTexture() const;
diff --git a/drape/texture_of_colors.cpp b/drape/texture_of_colors.cpp
index 124afacc03..09e3081dd7 100644
--- a/drape/texture_of_colors.cpp
+++ b/drape/texture_of_colors.cpp
@@ -70,7 +70,7 @@ ref_ptr<Texture::ResourceInfo> ColorPalette::MapResource(ColorKey const & key, b
return ReserveResource(false /* predefined */, key, newResource);
}
-void ColorPalette::UploadResources(ref_ptr<Texture> texture)
+void ColorPalette::UploadResources(ref_ptr<dp::GraphicsContext> context, ref_ptr<Texture> texture)
{
ASSERT(texture->GetFormat() == dp::TextureFormat::RGBA8, ());
buffer_vector<PendingColor, 16> pendingNodes;
@@ -159,7 +159,7 @@ void ColorPalette::UploadResources(ref_ptr<Texture> texture)
}
pointer = SharedBufferManager::GetRawPointer(buffer);
- texture->UploadData(uploadRect.minX(), uploadRect.minY(),
+ texture->UploadData(context, uploadRect.minX(), uploadRect.minY(),
uploadRect.SizeX(), uploadRect.SizeY(), make_ref(pointer));
}
}
diff --git a/drape/texture_of_colors.hpp b/drape/texture_of_colors.hpp
index 01c4b8f4ec..e1269bebbc 100644
--- a/drape/texture_of_colors.hpp
+++ b/drape/texture_of_colors.hpp
@@ -34,7 +34,7 @@ public:
ref_ptr<Texture::ResourceInfo> ReserveResource(bool predefined, ColorKey const & key, bool & newResource);
ref_ptr<Texture::ResourceInfo> MapResource(ColorKey const & key, bool & newResource);
- void UploadResources(ref_ptr<Texture> texture);
+ void UploadResources(ref_ptr<dp::GraphicsContext> context, ref_ptr<Texture> texture);
void SetIsDebug(bool isDebug) { m_isDebug = isDebug; }
diff --git a/drape/vulkan/vulkan_texture.cpp b/drape/vulkan/vulkan_texture.cpp
index 6a3b79aaf7..de2eae2283 100644
--- a/drape/vulkan/vulkan_texture.cpp
+++ b/drape/vulkan/vulkan_texture.cpp
@@ -64,7 +64,7 @@ void VulkanTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const &
auto const format = UnpackFormat(params.m_format);
VkFormatProperties formatProperties;
vkGetPhysicalDeviceFormatProperties(vulkanContext->GetPhysicalDevice(), format, &formatProperties);
- CHECK(formatProperties.linearTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, ());
+ CHECK(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, ());
m_isMutable = params.m_isMutable;
if (params.m_isRenderTarget)
@@ -86,7 +86,8 @@ void VulkanTexture::Create(ref_ptr<dp::GraphicsContext> context, Params const &
}
}
-void VulkanTexture::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height, ref_ptr<void> data)
+void VulkanTexture::UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y,
+ uint32_t width, uint32_t height, ref_ptr<void> data)
{
CHECK(m_isMutable, ("Upload data is avaivable only for mutable textures."));
CHECK(false, ());
@@ -95,6 +96,11 @@ void VulkanTexture::UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t
// [m_texture replaceRegion:region mipmapLevel:0 withBytes:data.get() bytesPerRow:rowBytes];
}
+void VulkanTexture::Bind(ref_ptr<dp::GraphicsContext> context) const
+{
+
+}
+
void VulkanTexture::SetFilter(TextureFilter filter)
{
m_params.m_filter = filter;
@@ -102,7 +108,7 @@ void VulkanTexture::SetFilter(TextureFilter filter)
bool VulkanTexture::Validate() const
{
- return m_texture != nullptr && m_textureView != nullptr;
+ return m_texture != 0 && m_textureView != 0;
}
} // namespace vulkan
} // namespace dp
diff --git a/drape/vulkan/vulkan_texture.hpp b/drape/vulkan/vulkan_texture.hpp
index 493c370609..280f7e9dac 100644
--- a/drape/vulkan/vulkan_texture.hpp
+++ b/drape/vulkan/vulkan_texture.hpp
@@ -27,9 +27,11 @@ public:
explicit VulkanTexture(ref_ptr<VulkanTextureAllocator> allocator);
~VulkanTexture() override;
- void Create(ref_ptr<dp::GraphicsContext> context, Params const & params, ref_ptr<void> data) override;
- void UploadData(uint32_t x, uint32_t y, uint32_t width, uint32_t height, ref_ptr<void> data) override;
- void Bind() const override {}
+ void Create(ref_ptr<dp::GraphicsContext> context, Params const & params,
+ ref_ptr<void> data) override;
+ void UploadData(ref_ptr<dp::GraphicsContext> context, uint32_t x, uint32_t y, uint32_t width,
+ uint32_t height, ref_ptr<void> data) override;
+ void Bind(ref_ptr<dp::GraphicsContext> context) const override;
void SetFilter(TextureFilter filter) override;
bool Validate() const override;
diff --git a/drape_frontend/backend_renderer.cpp b/drape_frontend/backend_renderer.cpp
index b4343f460c..0ce242b18c 100644
--- a/drape_frontend/backend_renderer.cpp
+++ b/drape_frontend/backend_renderer.cpp
@@ -119,9 +119,6 @@ void BackendRenderer::RecacheChoosePositionMark()
void BackendRenderer::AcceptMessage(ref_ptr<Message> message)
{
- //TODO(@rokuz, @darina): TEMPORARY
- return;
-
switch (message->GetType())
{
case Message::Type::UpdateReadManager:
@@ -620,9 +617,6 @@ void BackendRenderer::OnContextCreate()
m_context->Init(m_apiVersion);
dp::SupportManager::Instance().Init(m_context);
- //TODO(@rokuz, @darina): TEMPORARY
- return;
-
m_readManager->Start();
InitContextDependentResources();
}
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index dddcc66eea..3c36d6eeee 100755
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -53,8 +53,8 @@ namespace
{
float constexpr kIsometryAngle = static_cast<float>(math::pi) * 76.0f / 180.0f;
double constexpr kVSyncInterval = 0.06;
-// Metal rendering is fast, so we can decrease sync inverval.
-double constexpr kVSyncIntervalMetal = 0.03;
+// Metal/Vulkan rendering is fast, so we can decrease sync inverval.
+double constexpr kVSyncIntervalMetalVulkan = 0.03;
std::string const kTransitBackgroundColor = "TransitBackground";
@@ -1689,8 +1689,11 @@ void FrontendRenderer::RenderFrame()
}
else
{
- auto const syncInverval = (m_apiVersion == dp::ApiVersion::Metal) ? kVSyncIntervalMetal : kVSyncInterval;
-
+ auto const syncInverval = (m_apiVersion == dp::ApiVersion::Metal ||
+ m_apiVersion == dp::ApiVersion::Vulkan)
+ ? kVSyncIntervalMetalVulkan
+ : kVSyncInterval;
+
auto availableTime = syncInverval - m_frameData.m_timer.ElapsedSeconds();
do
{
diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj
index faf027c0a3..132ef969bf 100644
--- a/iphone/Maps/Maps.xcodeproj/project.pbxproj
+++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj
@@ -360,6 +360,7 @@
4554B6EE1E55F0F30084017F /* drules_proto_vehicle_dark.bin in Resources */ = {isa = PBXBuildFile; fileRef = 4554B6E91E55F02B0084017F /* drules_proto_vehicle_dark.bin */; };
4560F585213D53C100CC736C /* shaders_metal.metallib in Resources */ = {isa = PBXBuildFile; fileRef = 4598438921394D7700F8CAB2 /* shaders_metal.metallib */; };
4563158920E264C20076E9DB /* libshaders.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4563158820E264C20076E9DB /* libshaders.a */; };
+ 4577B28121F2066A00864FAC /* libvulkan_wrapper.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4577B28021F2066A00864FAC /* libvulkan_wrapper.a */; };
4586D0C41F48121A00DF9CE5 /* libbsdiff.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4586D0C31F48121A00DF9CE5 /* libbsdiff.a */; };
4586D0E71F4813AB00DF9CE5 /* libmwm_diff.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4586D0E61F4813AB00DF9CE5 /* libmwm_diff.a */; };
4598438621394CFD00F8CAB2 /* MetalPerformanceShaders.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4598438521394CFD00F8CAB2 /* MetalPerformanceShaders.framework */; };
@@ -1388,6 +1389,7 @@
4554B6E81E55F02B0084017F /* drules_proto_vehicle_clear.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; name = drules_proto_vehicle_clear.bin; path = ../../data/drules_proto_vehicle_clear.bin; sourceTree = "<group>"; };
4554B6E91E55F02B0084017F /* drules_proto_vehicle_dark.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; name = drules_proto_vehicle_dark.bin; path = ../../data/drules_proto_vehicle_dark.bin; sourceTree = "<group>"; };
4563158820E264C20076E9DB /* libshaders.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libshaders.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4577B28021F2066A00864FAC /* libvulkan_wrapper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libvulkan_wrapper.a; sourceTree = BUILT_PRODUCTS_DIR; };
458287C21AD3BE2000BA8940 /* DownloadIndicatorProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DownloadIndicatorProtocol.h; sourceTree = "<group>"; };
4586D0C31F48121A00DF9CE5 /* libbsdiff.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbsdiff.a; path = ../../xcode/bsdiff/build/Debug/libbsdiff.a; sourceTree = "<group>"; };
4586D0E61F4813AB00DF9CE5 /* libmwm_diff.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmwm_diff.a; path = ../../xcode/mwm_diff/build/Debug/libmwm_diff.a; sourceTree = "<group>"; };
@@ -1981,6 +1983,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 4577B28121F2066A00864FAC /* libvulkan_wrapper.a in Frameworks */,
BB2C99B021B6AB4500F7371C /* libdescriptions.a in Frameworks */,
3D1958EB213804B6009A83EC /* libmetrics.a in Frameworks */,
4598438621394CFD00F8CAB2 /* MetalPerformanceShaders.framework in Frameworks */,
@@ -2155,6 +2158,7 @@
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 4577B28021F2066A00864FAC /* libvulkan_wrapper.a */,
BB2C99AF21B6AB4500F7371C /* libdescriptions.a */,
474C9F59213FF75800369009 /* StoreKit.framework */,
3D1958EA213804B6009A83EC /* libmetrics.a */,
diff --git a/xcode/drape/drape.xcodeproj/project.pbxproj b/xcode/drape/drape.xcodeproj/project.pbxproj
index df8dbfd1bf..fd2a47df83 100644
--- a/xcode/drape/drape.xcodeproj/project.pbxproj
+++ b/xcode/drape/drape.xcodeproj/project.pbxproj
@@ -22,6 +22,22 @@
4560F5A52142890600CC736C /* metal_gpu_buffer_impl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4560F5A42142890600CC736C /* metal_gpu_buffer_impl.mm */; };
4560F5A7214297D800CC736C /* metal_vertex_array_buffer_impl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4560F5A6214297D800CC736C /* metal_vertex_array_buffer_impl.mm */; };
4560F5A92142A17B00CC736C /* metal_gpu_buffer_impl.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4560F5A82142A17B00CC736C /* metal_gpu_buffer_impl.hpp */; };
+ 4577B25421F2035D00864FAC /* vulkan_gpu_buffer_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B24421F2035C00864FAC /* vulkan_gpu_buffer_impl.cpp */; };
+ 4577B25521F2035D00864FAC /* vulkan_texture.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24521F2035C00864FAC /* vulkan_texture.hpp */; };
+ 4577B25621F2035D00864FAC /* vulkan_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B24621F2035C00864FAC /* vulkan_utils.cpp */; };
+ 4577B25721F2035D00864FAC /* vulkan_vertex_array_buffer_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B24721F2035C00864FAC /* vulkan_vertex_array_buffer_impl.cpp */; };
+ 4577B25821F2035D00864FAC /* vulkan_layers.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24821F2035C00864FAC /* vulkan_layers.hpp */; };
+ 4577B25921F2035D00864FAC /* vulkan_gpu_program.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24921F2035C00864FAC /* vulkan_gpu_program.hpp */; };
+ 4577B25A21F2035D00864FAC /* vulkan_texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B24A21F2035C00864FAC /* vulkan_texture.cpp */; };
+ 4577B25B21F2035D00864FAC /* vulkan_memory_manager.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24B21F2035C00864FAC /* vulkan_memory_manager.hpp */; };
+ 4577B25C21F2035D00864FAC /* vulkan_gpu_buffer_impl.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24C21F2035C00864FAC /* vulkan_gpu_buffer_impl.hpp */; };
+ 4577B25D21F2035D00864FAC /* vulkan_layers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B24D21F2035C00864FAC /* vulkan_layers.cpp */; };
+ 4577B25E21F2035D00864FAC /* vulkan_base_context.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24E21F2035C00864FAC /* vulkan_base_context.hpp */; };
+ 4577B25F21F2035D00864FAC /* vulkan_utils.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B24F21F2035D00864FAC /* vulkan_utils.hpp */; };
+ 4577B26021F2035D00864FAC /* vulkan_mesh_object_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B25021F2035D00864FAC /* vulkan_mesh_object_impl.cpp */; };
+ 4577B26121F2035D00864FAC /* vulkan_base_context.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B25121F2035D00864FAC /* vulkan_base_context.cpp */; };
+ 4577B26221F2035D00864FAC /* vulkan_memory_manager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B25221F2035D00864FAC /* vulkan_memory_manager.cpp */; };
+ 4577B26321F2035D00864FAC /* vulkan_device_holder.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 4577B25321F2035D00864FAC /* vulkan_device_holder.hpp */; };
45789ED72133DFC2009955CC /* metal_base_context.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45789ED52133DFC2009955CC /* metal_base_context.mm */; };
45789EDA2133E14F009955CC /* metal_base_context.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45789ED92133E14F009955CC /* metal_base_context.hpp */; };
45789EF2213557F7009955CC /* gl_constants.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 45789EE9213557F4009955CC /* gl_constants.hpp */; };
@@ -146,6 +162,22 @@
4560F5A42142890600CC736C /* metal_gpu_buffer_impl.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = metal_gpu_buffer_impl.mm; sourceTree = "<group>"; };
4560F5A6214297D800CC736C /* metal_vertex_array_buffer_impl.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = metal_vertex_array_buffer_impl.mm; sourceTree = "<group>"; };
4560F5A82142A17B00CC736C /* metal_gpu_buffer_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = metal_gpu_buffer_impl.hpp; sourceTree = "<group>"; };
+ 4577B24421F2035C00864FAC /* vulkan_gpu_buffer_impl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_gpu_buffer_impl.cpp; path = ../vulkan/vulkan_gpu_buffer_impl.cpp; sourceTree = "<group>"; };
+ 4577B24521F2035C00864FAC /* vulkan_texture.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_texture.hpp; path = ../vulkan/vulkan_texture.hpp; sourceTree = "<group>"; };
+ 4577B24621F2035C00864FAC /* vulkan_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_utils.cpp; path = ../vulkan/vulkan_utils.cpp; sourceTree = "<group>"; };
+ 4577B24721F2035C00864FAC /* vulkan_vertex_array_buffer_impl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_vertex_array_buffer_impl.cpp; path = ../vulkan/vulkan_vertex_array_buffer_impl.cpp; sourceTree = "<group>"; };
+ 4577B24821F2035C00864FAC /* vulkan_layers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_layers.hpp; path = ../vulkan/vulkan_layers.hpp; sourceTree = "<group>"; };
+ 4577B24921F2035C00864FAC /* vulkan_gpu_program.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_gpu_program.hpp; path = ../vulkan/vulkan_gpu_program.hpp; sourceTree = "<group>"; };
+ 4577B24A21F2035C00864FAC /* vulkan_texture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_texture.cpp; path = ../vulkan/vulkan_texture.cpp; sourceTree = "<group>"; };
+ 4577B24B21F2035C00864FAC /* vulkan_memory_manager.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_memory_manager.hpp; path = ../vulkan/vulkan_memory_manager.hpp; sourceTree = "<group>"; };
+ 4577B24C21F2035C00864FAC /* vulkan_gpu_buffer_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_gpu_buffer_impl.hpp; path = ../vulkan/vulkan_gpu_buffer_impl.hpp; sourceTree = "<group>"; };
+ 4577B24D21F2035C00864FAC /* vulkan_layers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_layers.cpp; path = ../vulkan/vulkan_layers.cpp; sourceTree = "<group>"; };
+ 4577B24E21F2035C00864FAC /* vulkan_base_context.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_base_context.hpp; path = ../vulkan/vulkan_base_context.hpp; sourceTree = "<group>"; };
+ 4577B24F21F2035D00864FAC /* vulkan_utils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_utils.hpp; path = ../vulkan/vulkan_utils.hpp; sourceTree = "<group>"; };
+ 4577B25021F2035D00864FAC /* vulkan_mesh_object_impl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_mesh_object_impl.cpp; path = ../vulkan/vulkan_mesh_object_impl.cpp; sourceTree = "<group>"; };
+ 4577B25121F2035D00864FAC /* vulkan_base_context.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_base_context.cpp; path = ../vulkan/vulkan_base_context.cpp; sourceTree = "<group>"; };
+ 4577B25221F2035D00864FAC /* vulkan_memory_manager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vulkan_memory_manager.cpp; path = ../vulkan/vulkan_memory_manager.cpp; sourceTree = "<group>"; };
+ 4577B25321F2035D00864FAC /* vulkan_device_holder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = vulkan_device_holder.hpp; path = ../vulkan/vulkan_device_holder.hpp; sourceTree = "<group>"; };
45789ED52133DFC2009955CC /* metal_base_context.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = metal_base_context.mm; sourceTree = "<group>"; };
45789ED92133E14F009955CC /* metal_base_context.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = metal_base_context.hpp; sourceTree = "<group>"; };
45789EE9213557F4009955CC /* gl_constants.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = gl_constants.hpp; sourceTree = "<group>"; };
@@ -264,6 +296,29 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 4577B24321F2034200864FAC /* vulkan */ = {
+ isa = PBXGroup;
+ children = (
+ 4577B25121F2035D00864FAC /* vulkan_base_context.cpp */,
+ 4577B24E21F2035C00864FAC /* vulkan_base_context.hpp */,
+ 4577B25321F2035D00864FAC /* vulkan_device_holder.hpp */,
+ 4577B24421F2035C00864FAC /* vulkan_gpu_buffer_impl.cpp */,
+ 4577B24C21F2035C00864FAC /* vulkan_gpu_buffer_impl.hpp */,
+ 4577B24921F2035C00864FAC /* vulkan_gpu_program.hpp */,
+ 4577B24D21F2035C00864FAC /* vulkan_layers.cpp */,
+ 4577B24821F2035C00864FAC /* vulkan_layers.hpp */,
+ 4577B25221F2035D00864FAC /* vulkan_memory_manager.cpp */,
+ 4577B24B21F2035C00864FAC /* vulkan_memory_manager.hpp */,
+ 4577B25021F2035D00864FAC /* vulkan_mesh_object_impl.cpp */,
+ 4577B24A21F2035C00864FAC /* vulkan_texture.cpp */,
+ 4577B24521F2035C00864FAC /* vulkan_texture.hpp */,
+ 4577B24621F2035C00864FAC /* vulkan_utils.cpp */,
+ 4577B24F21F2035D00864FAC /* vulkan_utils.hpp */,
+ 4577B24721F2035C00864FAC /* vulkan_vertex_array_buffer_impl.cpp */,
+ );
+ path = vulkan;
+ sourceTree = "<group>";
+ };
45789ED42133DF91009955CC /* metal */ = {
isa = PBXGroup;
children = (
@@ -409,6 +464,7 @@
4513BF091EC2F0760066565C /* viewport.cpp */,
4513BF0A1EC2F0760066565C /* viewport.hpp */,
3492DA0A1CA2D91C00C1F3B3 /* visual_scale.hpp */,
+ 4577B24321F2034200864FAC /* vulkan */,
);
name = drape;
path = ../../drape;
@@ -432,6 +488,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
+ 4577B25F21F2035D00864FAC /* vulkan_utils.hpp in Headers */,
459843902139967F00F8CAB2 /* metal_texture.hpp in Headers */,
6729A5A31A69213A007D5872 /* stipple_pen_resource.hpp in Headers */,
6729A5661A69213A007D5872 /* attribute_provider.hpp in Headers */,
@@ -444,6 +501,7 @@
3492DA0B1CA2D91C00C1F3B3 /* visual_scale.hpp in Headers */,
6729A5971A69213A007D5872 /* overlay_tree.hpp in Headers */,
6729A5751A69213A007D5872 /* drape_global.hpp in Headers */,
+ 4577B25C21F2035D00864FAC /* vulkan_gpu_buffer_impl.hpp in Headers */,
4560F59E213F986E00CC736C /* metal_states.hpp in Headers */,
6729A5701A69213A007D5872 /* color.hpp in Headers */,
6729A5801A69213A007D5872 /* glsl_func.hpp in Headers */,
@@ -475,19 +533,23 @@
6729A5AD1A69213A007D5872 /* uniform_value.hpp in Headers */,
6729A5951A69213A007D5872 /* overlay_handle.hpp in Headers */,
45201E951CE605B1008A4842 /* constants.hpp in Headers */,
+ 4577B25E21F2035D00864FAC /* vulkan_base_context.hpp in Headers */,
6709472E1BDF9A4F005014C0 /* index_storage.hpp in Headers */,
6729A5B51A69213A007D5872 /* vertex_array_buffer.hpp in Headers */,
6729A5A71A69213A007D5872 /* texture_manager.hpp in Headers */,
34C624CA1DABDB2000510300 /* static_texture.hpp in Headers */,
+ 4577B25521F2035D00864FAC /* vulkan_texture.hpp in Headers */,
6729A5901A69213A007D5872 /* object_pool.hpp in Headers */,
670947261BDF9A4F005014C0 /* bidi.hpp in Headers */,
457B536820358F7E00E4E752 /* glyph_generator.hpp in Headers */,
6729A5A11A69213A007D5872 /* shader.hpp in Headers */,
4513BF0C1EC2F0760066565C /* framebuffer.hpp in Headers */,
6729A5641A69213A007D5872 /* attribute_buffer_mutator.hpp in Headers */,
+ 4577B25921F2035D00864FAC /* vulkan_gpu_program.hpp in Headers */,
6729A5811A69213A007D5872 /* glsl_types.hpp in Headers */,
6709472C1BDF9A4F005014C0 /* hw_texture.hpp in Headers */,
6729A5911A69213A007D5872 /* oglcontext.hpp in Headers */,
+ 4577B25B21F2035D00864FAC /* vulkan_memory_manager.hpp in Headers */,
457B536620358F7E00E4E752 /* drape_routine.hpp in Headers */,
45789EF2213557F7009955CC /* gl_constants.hpp in Headers */,
6729A5AB1A69213A007D5872 /* texture.hpp in Headers */,
@@ -497,7 +559,9 @@
BB035F6C1E3A2A5C00519962 /* drape_diagnostics.hpp in Headers */,
45789EF7213557F7009955CC /* gl_gpu_program.hpp in Headers */,
6729A56E1A69213A007D5872 /* buffer_base.hpp in Headers */,
+ 4577B26321F2035D00864FAC /* vulkan_device_holder.hpp in Headers */,
6729A58F1A69213A007D5872 /* index_buffer.hpp in Headers */,
+ 4577B25821F2035D00864FAC /* vulkan_layers.hpp in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -567,8 +631,11 @@
6729A5941A69213A007D5872 /* overlay_handle.cpp in Sources */,
6709472D1BDF9A4F005014C0 /* index_storage.cpp in Sources */,
6729A5861A69213A007D5872 /* gpu_buffer.cpp in Sources */,
+ 4577B25721F2035D00864FAC /* vulkan_vertex_array_buffer_impl.cpp in Sources */,
45789EF8213557F7009955CC /* gl_constants.cpp in Sources */,
+ 4577B25621F2035D00864FAC /* vulkan_utils.cpp in Sources */,
6729A59A1A69213A007D5872 /* render_bucket.cpp in Sources */,
+ 4577B25A21F2035D00864FAC /* vulkan_texture.cpp in Sources */,
4560F59F213F986E00CC736C /* metal_states.mm in Sources */,
4560F5A52142890600CC736C /* metal_gpu_buffer_impl.mm in Sources */,
6709472A1BDF9A4F005014C0 /* hw_texture_ios.mm in Sources */,
@@ -586,6 +653,7 @@
6729A5A21A69213A007D5872 /* stipple_pen_resource.cpp in Sources */,
6729A5691A69213A007D5872 /* batcher.cpp in Sources */,
670947251BDF9A4F005014C0 /* bidi.cpp in Sources */,
+ 4577B25D21F2035D00864FAC /* vulkan_layers.cpp in Sources */,
6729A58C1A69213A007D5872 /* index_buffer_mutator.cpp in Sources */,
4598438F2139967F00F8CAB2 /* metal_texture.mm in Sources */,
BBB72E902110AF0F00249D4F /* oglcontext.cpp in Sources */,
@@ -595,19 +663,23 @@
6709472B1BDF9A4F005014C0 /* hw_texture.cpp in Sources */,
6729A5AA1A69213A007D5872 /* texture.cpp in Sources */,
BBB72E9C2111CE9100249D4F /* graphics_context_factory.cpp in Sources */,
+ 4577B26221F2035D00864FAC /* vulkan_memory_manager.cpp in Sources */,
6729A5771A69213A007D5872 /* font_texture.cpp in Sources */,
4560F591213EC93400CC736C /* render_state_metal.mm in Sources */,
45D7ADE32113535600160DE3 /* render_state.cpp in Sources */,
6729A58E1A69213A007D5872 /* index_buffer.cpp in Sources */,
6729A5A61A69213A007D5872 /* texture_manager.cpp in Sources */,
+ 4577B26121F2035D00864FAC /* vulkan_base_context.cpp in Sources */,
670947271BDF9A4F005014C0 /* glyph_manager.cpp in Sources */,
6729A56F1A69213A007D5872 /* color.cpp in Sources */,
+ 4577B25421F2035D00864FAC /* vulkan_gpu_buffer_impl.cpp in Sources */,
6729A5671A69213A007D5872 /* batcher_helpers.cpp in Sources */,
6729A5B41A69213A007D5872 /* vertex_array_buffer.cpp in Sources */,
6729A5B21A69213A007D5872 /* vertex_decl.cpp in Sources */,
6729A5A81A69213A007D5872 /* texture_of_colors.cpp in Sources */,
6729A5AC1A69213A007D5872 /* uniform_value.cpp in Sources */,
6729A5961A69213A007D5872 /* overlay_tree.cpp in Sources */,
+ 4577B26021F2035D00864FAC /* vulkan_mesh_object_impl.cpp in Sources */,
6729A5651A69213A007D5872 /* attribute_provider.cpp in Sources */,
4560F5A7214297D800CC736C /* metal_vertex_array_buffer_impl.mm in Sources */,
);
@@ -634,6 +706,8 @@
"$(OMIM_ROOT)/3party/expat/lib",
"$(OMIM_ROOT)/3party/icu/common",
"$(OMIM_ROOT)/3party/icu/i18n",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ "$(OMIM_ROOT)/3party/vulkan_wrapper",
);
};
name = Debug;
@@ -653,6 +727,8 @@
"$(OMIM_ROOT)/3party/expat/lib",
"$(OMIM_ROOT)/3party/icu/common",
"$(OMIM_ROOT)/3party/icu/i18n",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ "$(OMIM_ROOT)/3party/vulkan_wrapper",
);
};
name = Release;
@@ -734,6 +810,8 @@
"$(OMIM_ROOT)/3party/expat/lib",
"$(OMIM_ROOT)/3party/icu/common",
"$(OMIM_ROOT)/3party/icu/i18n",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ "$(OMIM_ROOT)/3party/vulkan_wrapper",
);
};
name = "Production Full";
diff --git a/xcode/omim.xcworkspace/contents.xcworkspacedata b/xcode/omim.xcworkspace/contents.xcworkspacedata
index 83993b7d3e..8bba8e809b 100644
--- a/xcode/omim.xcworkspace/contents.xcworkspacedata
+++ b/xcode/omim.xcworkspace/contents.xcworkspacedata
@@ -187,9 +187,6 @@
location = "container:"
name = "3party">
<FileRef
- location = "container:open_location_code/open_location_code.xcodeproj">
- </FileRef>
- <FileRef
location = "container:agg/agg.xcodeproj">
</FileRef>
<FileRef
@@ -220,6 +217,9 @@
location = "container:oauthcpp/oauthcpp.xcodeproj">
</FileRef>
<FileRef
+ location = "container:open_location_code/open_location_code.xcodeproj">
+ </FileRef>
+ <FileRef
location = "container:opening_hours/opening_hours.xcodeproj">
</FileRef>
<FileRef
@@ -243,6 +243,9 @@
<FileRef
location = "container:tess2/tess2.xcodeproj">
</FileRef>
+ <FileRef
+ location = "group:vulkan_wrapper/vulkan_wrapper.xcodeproj">
+ </FileRef>
</Group>
<FileRef
location = "container:api/api.xcodeproj">
diff --git a/xcode/shaders/shaders.xcodeproj/project.pbxproj b/xcode/shaders/shaders.xcodeproj/project.pbxproj
index 9b576d5f5f..285d97d4f8 100644
--- a/xcode/shaders/shaders.xcodeproj/project.pbxproj
+++ b/xcode/shaders/shaders.xcodeproj/project.pbxproj
@@ -35,6 +35,8 @@
4566610520E25EF70085E8C1 /* libplatform.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4566610420E25EF70085E8C1 /* libplatform.a */; };
4566610720E25F560085E8C1 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4566610620E25F560085E8C1 /* libz.tbd */; };
4566610A20E25F790085E8C1 /* test_main_loop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4566610920E25F790085E8C1 /* test_main_loop.cpp */; };
+ 4577B28621F2088800864FAC /* vulkan_program_pool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B28221F2088800864FAC /* vulkan_program_pool.cpp */; };
+ 4577B28721F2088800864FAC /* vulkan_program_params.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B28321F2088800864FAC /* vulkan_program_params.cpp */; };
45789EE021343F70009955CC /* metal_program_pool.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45789EDE21343F70009955CC /* metal_program_pool.mm */; };
45789EE421353CA3009955CC /* program_manager_metal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45789EE321353CA3009955CC /* program_manager_metal.mm */; };
45789EE72135464D009955CC /* metal_program_params.mm in Sources */ = {isa = PBXBuildFile; fileRef = 45789EE62135464D009955CC /* metal_program_params.mm */; };
@@ -177,6 +179,10 @@
4566610620E25F560085E8C1 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
4566610820E25F790085E8C1 /* test_main_loop.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = test_main_loop.hpp; path = ../../qt_tstfrm/test_main_loop.hpp; sourceTree = "<group>"; };
4566610920E25F790085E8C1 /* test_main_loop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test_main_loop.cpp; path = ../../qt_tstfrm/test_main_loop.cpp; sourceTree = "<group>"; };
+ 4577B28221F2088800864FAC /* vulkan_program_pool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vulkan_program_pool.cpp; sourceTree = "<group>"; };
+ 4577B28321F2088800864FAC /* vulkan_program_params.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vulkan_program_params.cpp; sourceTree = "<group>"; };
+ 4577B28421F2088800864FAC /* vulkan_program_params.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vulkan_program_params.hpp; sourceTree = "<group>"; };
+ 4577B28521F2088800864FAC /* vulkan_program_pool.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vulkan_program_pool.hpp; sourceTree = "<group>"; };
45789EDC21342BDE009955CC /* debug_rect.metal */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.metal; path = debug_rect.metal; sourceTree = "<group>"; };
45789EDE21343F70009955CC /* metal_program_pool.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = metal_program_pool.mm; sourceTree = "<group>"; };
45789EDF21343F70009955CC /* metal_program_pool.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = metal_program_pool.hpp; sourceTree = "<group>"; };
@@ -270,6 +276,10 @@
4566608920E256240085E8C1 /* program_params.hpp */,
4566608120E256230085E8C1 /* program_pool.hpp */,
4566608620E256230085E8C1 /* programs.hpp */,
+ 4577B28321F2088800864FAC /* vulkan_program_params.cpp */,
+ 4577B28421F2088800864FAC /* vulkan_program_params.hpp */,
+ 4577B28221F2088800864FAC /* vulkan_program_pool.cpp */,
+ 4577B28521F2088800864FAC /* vulkan_program_pool.hpp */,
);
name = shaders;
path = ../../shaders;
@@ -557,11 +567,13 @@
45789EE72135464D009955CC /* metal_program_params.mm in Sources */,
4566608A20E256240085E8C1 /* program_params.cpp in Sources */,
45789EE021343F70009955CC /* metal_program_pool.mm in Sources */,
+ 4577B28621F2088800864FAC /* vulkan_program_pool.cpp in Sources */,
4566608B20E256240085E8C1 /* gl_shaders.cpp in Sources */,
45789EE421353CA3009955CC /* program_manager_metal.mm in Sources */,
4561ADF520E378CB0096BC12 /* program_manager.cpp in Sources */,
4566608C20E256240085E8C1 /* gl_program_params.cpp in Sources */,
4566608D20E256240085E8C1 /* gl_program_pool.cpp in Sources */,
+ 4577B28721F2088800864FAC /* vulkan_program_params.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -616,6 +628,9 @@
"$(OMIM_ROOT)",
"$(BOOST_ROOT)",
"$(OMIM_ROOT)/3party/glm",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ "$(OMIM_ROOT)/3party/vulkan_wrapper",
+ "$(OMIM_ROOT)/3party/jansson/src",
);
};
name = Debug;
@@ -629,6 +644,9 @@
"$(OMIM_ROOT)",
"$(BOOST_ROOT)",
"$(OMIM_ROOT)/3party/glm",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ "$(OMIM_ROOT)/3party/vulkan_wrapper",
+ "$(OMIM_ROOT)/3party/jansson/src",
);
};
name = Release;
@@ -675,6 +693,9 @@
"$(OMIM_ROOT)",
"$(BOOST_ROOT)",
"$(OMIM_ROOT)/3party/glm",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ "$(OMIM_ROOT)/3party/vulkan_wrapper",
+ "$(OMIM_ROOT)/3party/jansson/src",
);
};
name = "Production Full";
diff --git a/xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.pbxproj b/xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..5026ab9ea0
--- /dev/null
+++ b/xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.pbxproj
@@ -0,0 +1,218 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 50;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4577B27F21F205D800864FAC /* vulkan_wrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4577B27E21F205D800864FAC /* vulkan_wrapper.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 4577B26B21F2044300864FAC /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "include/$(PRODUCT_NAME)";
+ dstSubfolderSpec = 16;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 4577B26D21F2044300864FAC /* libvulkan_wrapper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libvulkan_wrapper.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4577B27921F2053900864FAC /* common-debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "common-debug.xcconfig"; path = "../common-debug.xcconfig"; sourceTree = "<group>"; };
+ 4577B27A21F2053900864FAC /* common-release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "common-release.xcconfig"; path = "../common-release.xcconfig"; sourceTree = "<group>"; };
+ 4577B27D21F205D800864FAC /* vulkan_wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wrapper.h; sourceTree = "<group>"; };
+ 4577B27E21F205D800864FAC /* vulkan_wrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vulkan_wrapper.cpp; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 4577B26A21F2044300864FAC /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 4577B26421F2044300864FAC = {
+ isa = PBXGroup;
+ children = (
+ 4577B27921F2053900864FAC /* common-debug.xcconfig */,
+ 4577B27A21F2053900864FAC /* common-release.xcconfig */,
+ 4577B26F21F2044300864FAC /* vulkan_wrapper */,
+ 4577B26E21F2044300864FAC /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 4577B26E21F2044300864FAC /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 4577B26D21F2044300864FAC /* libvulkan_wrapper.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 4577B26F21F2044300864FAC /* vulkan_wrapper */ = {
+ isa = PBXGroup;
+ children = (
+ 4577B27E21F205D800864FAC /* vulkan_wrapper.cpp */,
+ 4577B27D21F205D800864FAC /* vulkan_wrapper.h */,
+ );
+ name = vulkan_wrapper;
+ path = ../../3party/vulkan_wrapper;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 4577B26C21F2044300864FAC /* vulkan_wrapper */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 4577B27621F2044300864FAC /* Build configuration list for PBXNativeTarget "vulkan_wrapper" */;
+ buildPhases = (
+ 4577B26921F2044300864FAC /* Sources */,
+ 4577B26A21F2044300864FAC /* Frameworks */,
+ 4577B26B21F2044300864FAC /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = vulkan_wrapper;
+ productName = vulkan_wrapper;
+ productReference = 4577B26D21F2044300864FAC /* libvulkan_wrapper.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 4577B26521F2044300864FAC /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1010;
+ ORGANIZATIONNAME = maps.me;
+ TargetAttributes = {
+ 4577B26C21F2044300864FAC = {
+ CreatedOnToolsVersion = 10.1;
+ };
+ };
+ };
+ buildConfigurationList = 4577B26821F2044300864FAC /* Build configuration list for PBXProject "vulkan_wrapper" */;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 4577B26421F2044300864FAC;
+ productRefGroup = 4577B26E21F2044300864FAC /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 4577B26C21F2044300864FAC /* vulkan_wrapper */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 4577B26921F2044300864FAC /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4577B27F21F205D800864FAC /* vulkan_wrapper.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 4577B27421F2044300864FAC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Debug;
+ };
+ 4577B27521F2044300864FAC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = Release;
+ };
+ 4577B27721F2044300864FAC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 4577B27921F2053900864FAC /* common-debug.xcconfig */;
+ buildSettings = {
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(OMIM_ROOT)",
+ "$(BOOST_ROOT)",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ );
+ };
+ name = Debug;
+ };
+ 4577B27821F2044300864FAC /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 4577B27A21F2053900864FAC /* common-release.xcconfig */;
+ buildSettings = {
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(OMIM_ROOT)",
+ "$(BOOST_ROOT)",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ );
+ };
+ name = Release;
+ };
+ 4577B27B21F2057700864FAC /* Production Full */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ };
+ name = "Production Full";
+ };
+ 4577B27C21F2057700864FAC /* Production Full */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 4577B27A21F2053900864FAC /* common-release.xcconfig */;
+ buildSettings = {
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(OMIM_ROOT)",
+ "$(BOOST_ROOT)",
+ "$(OMIM_ROOT)/3party/Vulkan-Headers/include",
+ );
+ };
+ name = "Production Full";
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 4577B26821F2044300864FAC /* Build configuration list for PBXProject "vulkan_wrapper" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4577B27421F2044300864FAC /* Debug */,
+ 4577B27521F2044300864FAC /* Release */,
+ 4577B27B21F2057700864FAC /* Production Full */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4577B27621F2044300864FAC /* Build configuration list for PBXNativeTarget "vulkan_wrapper" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 4577B27721F2044300864FAC /* Debug */,
+ 4577B27821F2044300864FAC /* Release */,
+ 4577B27C21F2057700864FAC /* Production Full */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 4577B26521F2044300864FAC /* Project object */;
+}
diff --git a/xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000000..a1887c94e4
--- /dev/null
+++ b/xcode/vulkan_wrapper/vulkan_wrapper.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:vulkan_wrapper.xcodeproj">
+ </FileRef>
+</Workspace>