summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsTools
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-04-26 05:50:28 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-04-26 05:50:28 +0000
commite10187feeb735c3b450d95976740a6214151e298 (patch)
tree00592afe05be7445fdba73603ac1e054e09e7ced /Graphics/GraphicsTools
parentImproved error messages about incorrect resource states specified in the barrier (diff)
downloadDiligentCore-e10187feeb735c3b450d95976740a6214151e298.tar.gz
DiligentCore-e10187feeb735c3b450d95976740a6214151e298.zip
Few minor updates
Diffstat (limited to 'Graphics/GraphicsTools')
-rw-r--r--Graphics/GraphicsTools/include/GraphicsUtilities.h5
-rw-r--r--Graphics/GraphicsTools/src/GraphicsUtilities.cpp32
2 files changed, 26 insertions, 11 deletions
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<class TConverter>
-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)