From e10187feeb735c3b450d95976740a6214151e298 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 25 Apr 2019 22:50:28 -0700 Subject: Few minor updates --- Graphics/GraphicsTools/include/GraphicsUtilities.h | 5 ++-- Graphics/GraphicsTools/src/GraphicsUtilities.cpp | 32 ++++++++++++++++------ 2 files changed, 26 insertions(+), 11 deletions(-) (limited to 'Graphics/GraphicsTools') diff --git a/Graphics/GraphicsTools/include/GraphicsUtilities.h b/Graphics/GraphicsTools/include/GraphicsUtilities.h index 544a4c45..1c400a4d 100644 --- a/Graphics/GraphicsTools/include/GraphicsUtilities.h +++ b/Graphics/GraphicsTools/include/GraphicsUtilities.h @@ -37,8 +37,9 @@ void CreateUniformBuffer(IRenderDevice* pDevice, const Char* Name, IBuffer** ppBuffer, USAGE Usage = USAGE_DYNAMIC, - BIND_FLAGS BindFlag = BIND_UNIFORM_BUFFER, - CPU_ACCESS_FLAGS CPUAccessFlags = CPU_ACCESS_WRITE); + BIND_FLAGS BindFlags = BIND_UNIFORM_BUFFER, + CPU_ACCESS_FLAGS CPUAccessFlags = CPU_ACCESS_WRITE, + void* pInitialData = nullptr); void GenerateCheckerBoardPattern(Uint32 Width, Uint32 Height, diff --git a/Graphics/GraphicsTools/src/GraphicsUtilities.cpp b/Graphics/GraphicsTools/src/GraphicsUtilities.cpp index f1f85aa6..15e09155 100644 --- a/Graphics/GraphicsTools/src/GraphicsUtilities.cpp +++ b/Graphics/GraphicsTools/src/GraphicsUtilities.cpp @@ -35,19 +35,33 @@ namespace Diligent { -void CreateUniformBuffer( IRenderDevice *pDevice, Uint32 Size, const Char *Name, IBuffer **ppBuffer, USAGE Usage, BIND_FLAGS BindFlags, CPU_ACCESS_FLAGS CPUAccessFlags) +void CreateUniformBuffer(IRenderDevice* pDevice, + Uint32 Size, + const Char* Name, + IBuffer** ppBuffer, + USAGE Usage, + BIND_FLAGS BindFlags, + CPU_ACCESS_FLAGS CPUAccessFlags, + void* pInitialData) { BufferDesc CBDesc; - CBDesc.Name = Name; - CBDesc.uiSizeInBytes = Size; - CBDesc.Usage = Usage; - CBDesc.BindFlags = BindFlags; - CBDesc.CPUAccessFlags = CPUAccessFlags; - pDevice->CreateBuffer( CBDesc, nullptr, ppBuffer ); + CBDesc.Name = Name; + CBDesc.uiSizeInBytes = Size; + CBDesc.Usage = Usage; + CBDesc.BindFlags = BindFlags; + CBDesc.CPUAccessFlags = CPUAccessFlags; + + BufferData InitialData; + if (pInitialData != nullptr) + { + InitialData.pData = pInitialData; + InitialData.DataSize = Size; + } + pDevice->CreateBuffer( CBDesc, pInitialData != nullptr ? &InitialData : nullptr, ppBuffer ); } template -void GenerateCheckerBoardPatternInternal(Uint32 Width, Uint32 Height, TEXTURE_FORMAT Fmt, Uint32 HorzCells, Uint32 VertCells, Uint8 *pData, Uint32 StrideInBytes, TConverter Converter) +void GenerateCheckerBoardPatternInternal(Uint32 Width, Uint32 Height, TEXTURE_FORMAT Fmt, Uint32 HorzCells, Uint32 VertCells, Uint8* pData, Uint32 StrideInBytes, TConverter Converter) { const auto& FmtAttribs = GetTextureFormatAttribs(Fmt); for (Uint32 y = 0; y < Height; ++y) @@ -66,7 +80,7 @@ void GenerateCheckerBoardPatternInternal(Uint32 Width, Uint32 Height, TEXTURE_FO } } -void GenerateCheckerBoardPattern(Uint32 Width, Uint32 Height, TEXTURE_FORMAT Fmt, Uint32 HorzCells, Uint32 VertCells, Uint8 *pData, Uint32 StrideInBytes) +void GenerateCheckerBoardPattern(Uint32 Width, Uint32 Height, TEXTURE_FORMAT Fmt, Uint32 HorzCells, Uint32 VertCells, Uint8* pData, Uint32 StrideInBytes) { const auto& FmtAttribs = GetTextureFormatAttribs(Fmt); switch (FmtAttribs.ComponentType) -- cgit v1.2.3