From 9a8b1ce5926ba32be80cc3a2a308b9e054c1f781 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 5 Jul 2018 15:27:39 -0700 Subject: Updated test app --- Tests/TestApp/src/TestCreateObjFromNativeResVK.cpp | 90 +++++++++++----------- 1 file changed, 44 insertions(+), 46 deletions(-) (limited to 'Tests/TestApp/src/TestCreateObjFromNativeResVK.cpp') diff --git a/Tests/TestApp/src/TestCreateObjFromNativeResVK.cpp b/Tests/TestApp/src/TestCreateObjFromNativeResVK.cpp index 548286c..37d295a 100644 --- a/Tests/TestApp/src/TestCreateObjFromNativeResVK.cpp +++ b/Tests/TestApp/src/TestCreateObjFromNativeResVK.cpp @@ -10,9 +10,9 @@ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. * - * In no event and under no legal theory, whether in tort (including negligence), + * In no event and under no legal theory, whether in tort (including neVkigence), * contract, or otherwise, unless required by applicable law (such as deliberate - * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * and grossly neVkigent acts) or agreed to in writing, shall any Contributor be * liable for any damages, including any direct, indirect, special, incidental, * or consequential damages of any character arising as a result of this License or * out of the use or inability to use the software (including but not limited to damages @@ -23,9 +23,13 @@ #include "pch.h" -//#include "RenderDeviceGL.h" -//#include "TextureGL.h" -//#include "BufferGL.h" +#if VULKAN_SUPPORTED +#include "vulkan.h" +#endif + +#include "RenderDeviceVk.h" +#include "TextureVk.h" +#include "BufferVk.h" #include "Errors.h" #include "TestCreateObjFromNativeResVK.h" @@ -34,49 +38,43 @@ using namespace Diligent; void TestCreateObjFromNativeResVK::CreateTexture(Diligent::ITexture *pTexture) { -//#if PLATFORM_WIN32 || PLATFORM_LINUX || PLATFORM_ANDROID -// RefCntAutoPtr pDeviceGL(m_pDevice, IID_RenderDeviceGL); -// const auto &SrcTexDesc = pTexture->GetDesc(); -// if (SrcTexDesc.Type == RESOURCE_DIM_TEX_CUBE_ARRAY) -// return; -// -// RefCntAutoPtr pTextureGL(pTexture, IID_TextureGL); -// auto GLHandle = pTextureGL->GetGLTextureHandle(); -// RefCntAutoPtr pAttachedTexture; -// auto TmpTexDesc = SrcTexDesc; -// TmpTexDesc.Width = 0; -// TmpTexDesc.Height = 0; -// TmpTexDesc.MipLevels = 0; -// TmpTexDesc.Format = TEX_FORMAT_UNKNOWN; -// pDeviceGL->CreateTextureFromGLHandle(GLHandle, TmpTexDesc, &pAttachedTexture); -// ++m_NumTexturesCreated; -// -// const auto &TestTexDesc = pAttachedTexture->GetDesc(); -// VERIFY_EXPR(TestTexDesc == SrcTexDesc); -// RefCntAutoPtr pAttachedTextureGL(pAttachedTexture, IID_TextureGL); -// VERIFY_EXPR(pAttachedTextureGL->GetGLTextureHandle() == GLHandle); -// VERIFY_EXPR(pAttachedTextureGL->GetBindTarget() == pTextureGL->GetBindTarget()); -// VERIFY_EXPR( reinterpret_cast(pAttachedTextureGL->GetNativeHandle()) == GLHandle); -//#endif +#if VULKAN_SUPPORTED + RefCntAutoPtr pDeviceVk(m_pDevice, IID_RenderDeviceVk); + const auto& SrcTexDesc = pTexture->GetDesc(); + if (SrcTexDesc.Type == RESOURCE_DIM_TEX_CUBE_ARRAY) + return; + + RefCntAutoPtr pTextureVk(pTexture, IID_TextureVk); + auto VkHandle = pTextureVk->GetVkImage(); + RefCntAutoPtr pAttachedTexture; + pDeviceVk->CreateTextureFromVulkanImage(VkHandle, SrcTexDesc, &pAttachedTexture); + ++m_NumTexturesCreated; + + const auto& TestTexDesc = pAttachedTexture->GetDesc(); + VERIFY_EXPR(TestTexDesc == SrcTexDesc); + RefCntAutoPtr pAttachedTextureVk(pAttachedTexture, IID_TextureVk); + VERIFY_EXPR(pAttachedTextureVk->GetVkImage() == VkHandle); + VERIFY_EXPR( reinterpret_cast(pAttachedTextureVk->GetNativeHandle()) == VkHandle); +#endif } void TestCreateObjFromNativeResVK::CreateBuffer(Diligent::IBuffer *pBuffer) { -//#if PLATFORM_WIN32 || PLATFORM_LINUX || PLATFORM_ANDROID -// RefCntAutoPtr pDeviceGL(m_pDevice, IID_RenderDeviceGL); -// const auto &SrcBuffDesc = pBuffer->GetDesc(); -// RefCntAutoPtr pBufferGL(pBuffer, IID_BufferGL); -// auto GLBufferHandle = pBufferGL->GetGLBufferHandle(); -// -// RefCntAutoPtr pBufferFromNativeGLHandle; -// pDeviceGL->CreateBufferFromGLHandle(GLBufferHandle, SrcBuffDesc, &pBufferFromNativeGLHandle); -// ++m_NumBuffersCreated; -// -// const auto &TestBufferDesc = pBufferFromNativeGLHandle->GetDesc(); -// VERIFY_EXPR(TestBufferDesc == SrcBuffDesc); -// -// RefCntAutoPtr pTestBufferGL(pBufferFromNativeGLHandle, IID_BufferGL); -// VERIFY_EXPR(pTestBufferGL->GetGLBufferHandle() == GLBufferHandle); -// VERIFY_EXPR( reinterpret_cast(pTestBufferGL->GetNativeHandle()) == GLBufferHandle); -//#endif +#if VULKAN_SUPPORTED + RefCntAutoPtr pDeviceVk(m_pDevice, IID_RenderDeviceVk); + const auto &SrcBuffDesc = pBuffer->GetDesc(); + RefCntAutoPtr pBufferVk(pBuffer, IID_BufferVk); + auto VkBufferHandle = pBufferVk->GetVkBuffer(); + + RefCntAutoPtr pBufferFromNativeVkHandle; + pDeviceVk->CreateBufferFromVulkanResource(VkBufferHandle, SrcBuffDesc, &pBufferFromNativeVkHandle); + ++m_NumBuffersCreated; + + const auto &TestBufferDesc = pBufferFromNativeVkHandle->GetDesc(); + VERIFY_EXPR(TestBufferDesc == SrcBuffDesc); + + RefCntAutoPtr pTestBufferVk(pBufferFromNativeVkHandle, IID_BufferVk); + VERIFY_EXPR(pTestBufferVk->GetVkBuffer() == VkBufferHandle); + VERIFY_EXPR( reinterpret_cast(pTestBufferVk->GetNativeHandle()) == VkBufferHandle); +#endif } -- cgit v1.2.3