summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineMetal
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-02-09 01:49:11 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-02-09 01:49:11 +0000
commitf64567afcea98382bac5e2a8a5ac1d41bcf1f918 (patch)
treef46b7b39c485f25d7dbf9b3d379b2b87cbab8b87 /Graphics/GraphicsEngineMetal
parentUpdated IRenderDevice::CreateTexture and IRenderDevice::CreateBuffer to take ... (diff)
downloadDiligentCore-f64567afcea98382bac5e2a8a5ac1d41bcf1f918.tar.gz
DiligentCore-f64567afcea98382bac5e2a8a5ac1d41bcf1f918.zip
Fixed Metal backend
Diffstat (limited to 'Graphics/GraphicsEngineMetal')
-rw-r--r--Graphics/GraphicsEngineMetal/include/BufferMtlImpl.h2
-rw-r--r--Graphics/GraphicsEngineMetal/include/RenderDeviceMtlImpl.h8
-rw-r--r--Graphics/GraphicsEngineMetal/include/TextureMtlImpl.h6
-rw-r--r--Graphics/GraphicsEngineMetal/src/BufferMtlImpl.mm2
-rw-r--r--Graphics/GraphicsEngineMetal/src/RenderDeviceMtlImpl.mm8
-rw-r--r--Graphics/GraphicsEngineMetal/src/TextureMtlImpl.mm4
6 files changed, 15 insertions, 15 deletions
diff --git a/Graphics/GraphicsEngineMetal/include/BufferMtlImpl.h b/Graphics/GraphicsEngineMetal/include/BufferMtlImpl.h
index ca4c524c..779be0fa 100644
--- a/Graphics/GraphicsEngineMetal/include/BufferMtlImpl.h
+++ b/Graphics/GraphicsEngineMetal/include/BufferMtlImpl.h
@@ -47,7 +47,7 @@ public:
FixedBlockMemoryAllocator& BuffViewObjMemAllocator,
class RenderDeviceMtlImpl* pDeviceMtl,
const BufferDesc& BuffDesc,
- const BufferData& BuffData = BufferData());
+ const BufferData* pBuffData = nullptr);
BufferMtlImpl(IReferenceCounters* pRefCounters,
FixedBlockMemoryAllocator& BuffViewObjMemAllocator,
diff --git a/Graphics/GraphicsEngineMetal/include/RenderDeviceMtlImpl.h b/Graphics/GraphicsEngineMetal/include/RenderDeviceMtlImpl.h
index 0d7008d9..05a3e8d4 100644
--- a/Graphics/GraphicsEngineMetal/include/RenderDeviceMtlImpl.h
+++ b/Graphics/GraphicsEngineMetal/include/RenderDeviceMtlImpl.h
@@ -44,14 +44,14 @@ public:
IMemoryAllocator& RawMemAllocator,
const EngineMtlAttribs& EngineAttribs,
void* pMtlDevice,
- Uint32 NumDeferredContexts );
- virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
+ Uint32 NumDeferredContexts );
+ virtual void QueryInterface( const INTERFACE_ID& IID, IObject **ppInterface )override final;
- virtual void CreateBuffer(const BufferDesc& BuffDesc, const BufferData& BuffData, IBuffer** ppBuffer)override final;
+ virtual void CreateBuffer(const BufferDesc& BuffDesc, const BufferData* pBuffData, IBuffer** ppBuffer)override final;
virtual void CreateShader(const ShaderCreationAttribs& ShaderCreationAttribs, IShader** ppShader)override final;
- virtual void CreateTexture(const TextureDesc& TexDesc, const TextureData& Data, ITexture** ppTexture)override final;
+ virtual void CreateTexture(const TextureDesc& TexDesc, const TextureData* pData, ITexture** ppTexture)override final;
virtual void CreateSampler(const SamplerDesc& SamplerDesc, ISampler** ppSampler)override final;
diff --git a/Graphics/GraphicsEngineMetal/include/TextureMtlImpl.h b/Graphics/GraphicsEngineMetal/include/TextureMtlImpl.h
index 925604ad..d54f4a7d 100644
--- a/Graphics/GraphicsEngineMetal/include/TextureMtlImpl.h
+++ b/Graphics/GraphicsEngineMetal/include/TextureMtlImpl.h
@@ -44,11 +44,11 @@ public:
using TTextureBase = TextureBase<ITextureMtl, RenderDeviceMtlImpl, TextureViewMtlImpl, FixedBlockMemoryAllocator>;
using ViewImplType = TextureViewMtlImpl;
- TextureMtlImpl(IReferenceCounters* pRefCounters,
+ TextureMtlImpl(IReferenceCounters* pRefCounters,
FixedBlockMemoryAllocator& TexViewObjAllocator,
- class RenderDeviceMtlImpl* pDeviceMtl,
+ class RenderDeviceMtlImpl* pDeviceMtl,
const TextureDesc& TexDesc,
- const TextureData& InitData = TextureData());
+ const TextureData* pInitData = nullptr);
~TextureMtlImpl();
virtual void QueryInterface( const Diligent::INTERFACE_ID &IID, IObject **ppInterface )override final;
diff --git a/Graphics/GraphicsEngineMetal/src/BufferMtlImpl.mm b/Graphics/GraphicsEngineMetal/src/BufferMtlImpl.mm
index 1b200616..924c258c 100644
--- a/Graphics/GraphicsEngineMetal/src/BufferMtlImpl.mm
+++ b/Graphics/GraphicsEngineMetal/src/BufferMtlImpl.mm
@@ -36,7 +36,7 @@ BufferMtlImpl :: BufferMtlImpl(IReferenceCounters* pRefCounters,
FixedBlockMemoryAllocator& BuffViewObjMemAllocator,
RenderDeviceMtlImpl* pRenderDeviceMtl,
const BufferDesc& BuffDesc,
- const BufferData& BuffData /*= BufferData()*/) :
+ const BufferData* pBuffData /*= nullptr*/) :
TBufferBase(pRefCounters, BuffViewObjMemAllocator, pRenderDeviceMtl, BuffDesc, false)
{
LOG_ERROR_AND_THROW("Buffers are not implemented in Metal backend");
diff --git a/Graphics/GraphicsEngineMetal/src/RenderDeviceMtlImpl.mm b/Graphics/GraphicsEngineMetal/src/RenderDeviceMtlImpl.mm
index 7624dd5d..df94eb0f 100644
--- a/Graphics/GraphicsEngineMetal/src/RenderDeviceMtlImpl.mm
+++ b/Graphics/GraphicsEngineMetal/src/RenderDeviceMtlImpl.mm
@@ -78,13 +78,13 @@ void RenderDeviceMtlImpl::TestTextureFormat( TEXTURE_FORMAT TexFormat )
IMPLEMENT_QUERY_INTERFACE( RenderDeviceMtlImpl, IID_RenderDeviceMtl, TRenderDeviceBase )
-void RenderDeviceMtlImpl :: CreateBuffer(const BufferDesc& BuffDesc, const BufferData& BuffData, IBuffer** ppBuffer)
+void RenderDeviceMtlImpl :: CreateBuffer(const BufferDesc& BuffDesc, const BufferData* pBuffData, IBuffer** ppBuffer)
{
CreateDeviceObject("buffer", BuffDesc, ppBuffer,
[&]()
{
BufferMtlImpl* pBufferMtl( NEW_RC_OBJ(m_BufObjAllocator, "BufferMtlImpl instance", BufferMtlImpl)
- (m_BuffViewObjAllocator, this, BuffDesc, BuffData ) );
+ (m_BuffViewObjAllocator, this, BuffDesc, pBuffData ) );
pBufferMtl->QueryInterface( IID_Buffer, reinterpret_cast<IObject**>(ppBuffer) );
pBufferMtl->CreateDefaultViews();
OnCreateDeviceObject( pBufferMtl );
@@ -108,12 +108,12 @@ void RenderDeviceMtlImpl :: CreateShader(const ShaderCreationAttribs& ShaderCrea
-void RenderDeviceMtlImpl :: CreateTexture(const TextureDesc& TexDesc, const TextureData& Data, ITexture** ppTexture)
+void RenderDeviceMtlImpl :: CreateTexture(const TextureDesc& TexDesc, const TextureData* pData, ITexture** ppTexture)
{
CreateDeviceObject( "texture", TexDesc, ppTexture,
[&]()
{
- TextureMtlImpl *pTextureMtl = NEW_RC_OBJ(m_TexObjAllocator, "TextureMtlImpl instance", TextureMtlImpl)(m_TexViewObjAllocator, this, TexDesc, Data );
+ TextureMtlImpl *pTextureMtl = NEW_RC_OBJ(m_TexObjAllocator, "TextureMtlImpl instance", TextureMtlImpl)(m_TexViewObjAllocator, this, TexDesc, pData );
pTextureMtl->QueryInterface( IID_Texture, reinterpret_cast<IObject**>(ppTexture) );
pTextureMtl->CreateDefaultViews();
diff --git a/Graphics/GraphicsEngineMetal/src/TextureMtlImpl.mm b/Graphics/GraphicsEngineMetal/src/TextureMtlImpl.mm
index 542665b6..70f54ac8 100644
--- a/Graphics/GraphicsEngineMetal/src/TextureMtlImpl.mm
+++ b/Graphics/GraphicsEngineMetal/src/TextureMtlImpl.mm
@@ -35,12 +35,12 @@ TextureMtlImpl :: TextureMtlImpl(IReferenceCounters* pRefCounters,
FixedBlockMemoryAllocator& TexViewObjAllocator,
RenderDeviceMtlImpl* pRenderDeviceMtl,
const TextureDesc& TexDesc,
- const TextureData& InitData /*= TextureData()*/) :
+ const TextureData* pInitData /*= nullptr*/) :
TTextureBase(pRefCounters, TexViewObjAllocator, pRenderDeviceMtl, TexDesc)
{
LOG_ERROR_AND_THROW("Textures are not implemented in Metal backend");
- if( TexDesc.Usage == USAGE_STATIC && InitData.pSubResources == nullptr )
+ if( TexDesc.Usage == USAGE_STATIC && pInitData == nullptr || pInitData->pSubResources == nullptr )
LOG_ERROR_AND_THROW("Static Texture must be initialized with data at creation time");
SetState(RESOURCE_STATE_UNDEFINED);
}