From 3eaa4fa4d5a27ec36b557333178d71013b10db69 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Thu, 15 Aug 2019 11:00:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=89=A9=E7=90=86=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=88=9D=E5=A7=8B=E5=8C=96=EF=BC=8C=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E8=AF=A5=E8=AE=BE=E5=A4=87=E6=98=AF=E5=90=A6=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E7=BA=B9=E7=90=86=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/TextureFormat.cpp | 47 +++++++++++++++++++++++++++++-- inc/hgl/graph/vulkan/VKFormat.h | 2 ++ inc/hgl/graph/vulkan/VKInstance.h | 2 +- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/example/Vulkan/TextureFormat.cpp b/example/Vulkan/TextureFormat.cpp index 046cdeea..1e9d2882 100644 --- a/example/Vulkan/TextureFormat.cpp +++ b/example/Vulkan/TextureFormat.cpp @@ -1,5 +1,10 @@ -#include -#include +#include +#include +#include +#include + +using namespace hgl; +using namespace hgl::graph; VK_NAMESPACE_USING; @@ -32,6 +37,11 @@ constexpr char *data_type_name[] int main(int,char **) { + Window * win =nullptr; + vulkan::Instance * inst =nullptr; + vulkan::Device * device =nullptr; + const vulkan::PhysicalDevice *physical_device =nullptr; + #ifdef _DEBUG if(!CheckStrideBytesByFormat()) { @@ -40,6 +50,24 @@ int main(int,char **) } #endif//_DEBUG + InitNativeWindowSystem(); + + win=CreateRenderWindow(OS_TEXT("VulkanTest")); + if(!win) + return(false); + + if(!win->Create(128,128)) + return(false); + + inst=vulkan::CreateInstance(U8_TEXT("VulkanTest")); + + if(!inst) + return(false); + + device=win->CreateRenderDevice(inst); + + physical_device=device->GetPhysicalDevice(); + uint32_t count; const VulkanFormat *vf=GetVulkanFormatList(count); @@ -65,11 +93,26 @@ int main(int,char **) if((vf->depth==VulkanDataType::NONE) &&(vf->stencil==VulkanDataType::NONE)) std::cout<<"[Color:"<color)]<<"]"; + + { + const VkFormatProperties fp=physical_device->GetFormatProperties(vf->format); + + if(fp.optimalTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) + std::cout<<"[Optimal]"; + if(fp.linearTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) + std::cout<<"[Linear]"; + if(fp.bufferFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) + std::cout<<"[Buffer]"; + } std::cout<CloseRenderDevice(); + delete inst; + delete win; + return 0; } \ No newline at end of file diff --git a/inc/hgl/graph/vulkan/VKFormat.h b/inc/hgl/graph/vulkan/VKFormat.h index 583e009b..eda179c0 100644 --- a/inc/hgl/graph/vulkan/VKFormat.h +++ b/inc/hgl/graph/vulkan/VKFormat.h @@ -278,6 +278,7 @@ VK_NAMESPACE_BEGIN enum class TextureCompressType { NONE=0, + S3TC, PVRTC, ETC1, @@ -291,6 +292,7 @@ enum class TextureCompressType enum class VulkanDataType { NONE=0, + UNORM, SNORM, USCALED, diff --git a/inc/hgl/graph/vulkan/VKInstance.h b/inc/hgl/graph/vulkan/VKInstance.h index 38be4468..0a98a5bf 100644 --- a/inc/hgl/graph/vulkan/VKInstance.h +++ b/inc/hgl/graph/vulkan/VKInstance.h @@ -4,7 +4,7 @@ #include #include #include -#include +#include VK_NAMESPACE_BEGIN class Instance