summaryrefslogtreecommitdiffstats
path: root/Tests/TestApp/src/TestCopyTexData.cpp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-06-04 03:38:17 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-06-04 03:38:17 +0000
commit8851654997a413c24ec789d7ea8675f7c89769dd (patch)
treec2f9af9a60316ec79e3707dbf1190f5a20dbc4d2 /Tests/TestApp/src/TestCopyTexData.cpp
parentUpdated lua test in test app to use (0,0,0,1) as border color (diff)
downloadDiligentEngine-8851654997a413c24ec789d7ea8675f7c89769dd.tar.gz
DiligentEngine-8851654997a413c24ec789d7ea8675f7c89769dd.zip
Updated tests
Diffstat (limited to 'Tests/TestApp/src/TestCopyTexData.cpp')
-rw-r--r--Tests/TestApp/src/TestCopyTexData.cpp45
1 files changed, 42 insertions, 3 deletions
diff --git a/Tests/TestApp/src/TestCopyTexData.cpp b/Tests/TestApp/src/TestCopyTexData.cpp
index d34f10e..63dd2b9 100644
--- a/Tests/TestApp/src/TestCopyTexData.cpp
+++ b/Tests/TestApp/src/TestCopyTexData.cpp
@@ -94,7 +94,18 @@ void TestCopyTexData::Test2DTexture( TEXTURE_FORMAT Format )
TexDesc.Usage = USAGE_DEFAULT;
Diligent::RefCntAutoPtr<ITexture> pSrcTex, pDstTex;
- m_pDevice->CreateTexture( TexDesc, TextureData(), &pSrcTex );
+ auto FmtAttribs = m_pDevice->GetTextureFormatInfo(Format);
+ auto TexelSize = FmtAttribs.ComponentSize * FmtAttribs.NumComponents;
+ std::vector<uint8_t> DummyData(TexDesc.Width * TexDesc.Height * TexelSize);
+ TextureData InitData;
+ InitData.NumSubresources = TexDesc.MipLevels;
+ std::vector<TextureSubResData> SubResData(InitData.NumSubresources);
+ for(Uint32 mip=0; mip < TexDesc.MipLevels; ++mip)
+ {
+ SubResData[mip] = TextureSubResData{DummyData.data(), (TexDesc.Width >> mip) * TexelSize, 0};
+ }
+ InitData.pSubResources = SubResData.data();
+ m_pDevice->CreateTexture( TexDesc, InitData, &pSrcTex );
m_pDevice->CreateTexture( TexDesc, TextureData(), &pDstTex );
pDstTex->CopyData(m_pContext, pSrcTex,
@@ -135,7 +146,24 @@ void TestCopyTexData::Test2DTexArray( TEXTURE_FORMAT Format )
TexDesc.Usage = USAGE_DEFAULT;
Diligent::RefCntAutoPtr<ITexture> pSrcTex, pDstTex;
- m_pDevice->CreateTexture( TexDesc, TextureData(), &pSrcTex );
+ auto FmtAttribs = m_pDevice->GetTextureFormatInfo(Format);
+ auto TexelSize = FmtAttribs.ComponentSize * FmtAttribs.NumComponents;
+ std::vector<uint8_t> DummyData(TexDesc.Width * TexDesc.Height * TexelSize);
+ TextureData InitData;
+ InitData.NumSubresources = TexDesc.MipLevels * TexDesc.ArraySize;
+ std::vector<TextureSubResData> SubResData(InitData.NumSubresources);
+ Uint32 subres = 0;
+ for(Uint32 slice=0; slice < TexDesc.ArraySize; ++slice)
+ {
+ for(Uint32 mip=0; mip < TexDesc.MipLevels; ++mip)
+ {
+ SubResData[subres++] = TextureSubResData{DummyData.data(), (TexDesc.Width >> mip) * TexelSize, 0};
+ }
+ }
+ VERIFY_EXPR(subres == InitData.NumSubresources);
+ InitData.pSubResources = SubResData.data();
+
+ m_pDevice->CreateTexture( TexDesc, InitData, &pSrcTex );
m_pDevice->CreateTexture( TexDesc, TextureData(), &pDstTex );
pDstTex->CopyData(m_pContext, pSrcTex,
@@ -175,7 +203,18 @@ void TestCopyTexData::Test3DTexture( TEXTURE_FORMAT Format )
TexDesc.Usage = USAGE_DEFAULT;
Diligent::RefCntAutoPtr<ITexture> pSrcTex, pDstTex;
- m_pDevice->CreateTexture( TexDesc, TextureData(), &pSrcTex );
+ auto FmtAttribs = m_pDevice->GetTextureFormatInfo(Format);
+ auto TexelSize = FmtAttribs.ComponentSize * FmtAttribs.NumComponents;
+ std::vector<uint8_t> DummyData(TexDesc.Width * TexDesc.Height * TexDesc.Depth * TexelSize);
+ TextureData InitData;
+ InitData.NumSubresources = TexDesc.MipLevels;
+ std::vector<TextureSubResData> SubResData(InitData.NumSubresources);
+ for(Uint32 mip=0; mip < TexDesc.MipLevels; ++mip)
+ {
+ SubResData[mip] = TextureSubResData{DummyData.data(), (TexDesc.Width >> mip) * TexelSize, (TexDesc.Width >> mip) * (TexDesc.Height >> mip) * TexelSize};
+ }
+ InitData.pSubResources = SubResData.data();
+ m_pDevice->CreateTexture( TexDesc, InitData, &pSrcTex );
m_pDevice->CreateTexture( TexDesc, TextureData(), &pDstTex );
pDstTex->CopyData(m_pContext, pSrcTex,