将所有平台可用的格式抽离出来复制一套定义,用于在纹理转换器中使用支持
This commit is contained in:
parent
fd02d2f4ee
commit
14f4846695
@ -285,6 +285,34 @@ constexpr size_t FMT_YUV_RANGE_SIZE=FMT_YUV_END_RANGE-FMT_YUV_BEGIN_RANGE+1;
|
||||
#define FMT_PVRTC_END_RANGE FMT_PVRTC2_4s
|
||||
constexpr size_t FMT_PVRTC_RANGE_SIZE=FMT_PVRTC_END_RANGE-FMT_PVRTC_BEGIN_RANGE+1;
|
||||
|
||||
//以下为AMD/NVIDIA/INTEL/QUALCOMM/ARM/POWERVR全部可用的通用格式
|
||||
#define UFMT_BGRA4 FMT_BGRA4
|
||||
#define UFMT_RGB565 FMT_RGB565
|
||||
#define UFMT_A4RGB5 FMT_A1RGB5
|
||||
#define UFMT_R8 FMT_R8UN
|
||||
#define UFMT_RG8 FMT_RG8UN
|
||||
#define UFMT_RGBA8 FMT_RGBA8UN
|
||||
#define UFMT_ABGR8 FMT_ABGR8UN
|
||||
#define UFMT_A2BGR10 FMT_A2BGR10UN
|
||||
#define UFMT_R16 FMT_R16UN
|
||||
#define UFMT_R16F FMT_R16F
|
||||
#define UFMT_RG16 FMT_RG16UN
|
||||
#define UFMT_RG16F FMT_RG16F
|
||||
#define UFMT_RGBA16 FMT_RGBA16UN
|
||||
#define UFMT_RGBA16F FMT_RGBA16F
|
||||
#define UFMT_R32U FMT_R32U
|
||||
#define UFMT_R32I FMT_R32I
|
||||
#define UFMT_R32F FMT_R32F
|
||||
#define UFMT_RG32U FMT_RG32U
|
||||
#define UFMT_RG32I FMT_RG32I
|
||||
#define UFMT_RG32F FMT_RG32F
|
||||
#define UFMT_RGB32U FMT_RGB32U
|
||||
#define UFMT_RGB32I FMT_RGB32I
|
||||
#define UFMT_RGB32F FMT_RGB32F
|
||||
#define UFMT_RGBA32U FMT_RGBA32U
|
||||
#define UFMT_RGBA32I FMT_RGBA32I
|
||||
#define UFMT_RGBA32F FMT_RGBA32F
|
||||
|
||||
enum class TextureCompressType
|
||||
{
|
||||
NONE=0,
|
||||
@ -347,5 +375,7 @@ inline const char *GetVulkanFormatName(const VkFormat &format)
|
||||
|
||||
return (vcf?vcf->name:nullptr);
|
||||
}
|
||||
|
||||
const VulkanFormat *GetVulkanFormat(const char *fmt_name);
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_FORMAT_INCLUDE
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include<hgl/graph/vulkan/VKFormat.h>
|
||||
#include<hgl/type/StrChar.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
namespace
|
||||
@ -267,4 +268,21 @@ const VulkanFormat *GetVulkanFormat(const VkFormat &format)
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const VulkanFormat *GetVulkanFormat(const char *fmt_name)
|
||||
{
|
||||
if(!fmt_name||!*fmt_name)return(nullptr);
|
||||
|
||||
const VulkanFormat *vcf=vulkan_color_format_list;
|
||||
|
||||
for(uint32_t i=VK_FORMAT_BEGIN_RANGE;i<=VK_FORMAT_END_RANGE;i++)
|
||||
{
|
||||
if(hgl::strcmp(fmt_name,vcf->name)==0)
|
||||
return vcf;
|
||||
|
||||
++vcf;
|
||||
}
|
||||
|
||||
return(nullptr);
|
||||
}
|
||||
VK_NAMESPACE_END
|
||||
|
@ -62,6 +62,8 @@ void PipelineCreater::InitDynamicState()
|
||||
dynamicStateEnables[dynamicState.dynamicStateCount++] = VK_DYNAMIC_STATE_VIEWPORT;
|
||||
dynamicStateEnables[dynamicState.dynamicStateCount++] = VK_DYNAMIC_STATE_SCISSOR;
|
||||
|
||||
//如果窗口大小不变,可以不设置这两个。能不能提升效能未知
|
||||
|
||||
pipelineInfo.pDynamicState=&dynamicState;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user