use AnsiString in shader
This commit is contained in:
parent
416b7bfcb3
commit
8f0cd9f35b
@ -28,11 +28,11 @@ public:
|
||||
bool End(){return(vkEndCommandBuffer(cmd_buf)==VK_SUCCESS);}
|
||||
|
||||
#ifdef _DEBUG
|
||||
void SetDebugName(const UTF8String &);
|
||||
void BeginRegion(const UTF8String &,const Color4f &);
|
||||
void SetDebugName(const AnsiString &);
|
||||
void BeginRegion(const AnsiString &,const Color4f &);
|
||||
void EndRegion();
|
||||
#else
|
||||
void BeginRegion(const UTF8String &,const Color4f &){}
|
||||
void BeginRegion(const AnsiString &,const Color4f &){}
|
||||
void EndRegion(){}
|
||||
#endif//_DEBUG
|
||||
};//class GPUCmdBuffer
|
||||
|
@ -90,11 +90,11 @@ VK_NAMESPACE_BEGIN
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
T *GetDeviceProc(const char *name)
|
||||
T *GetDeviceProc(VkDevice *dev,const char *name)
|
||||
{
|
||||
if(!GetDeviceProcAddr)return(nullptr);
|
||||
|
||||
return reinterpret_cast<T>(GetDeviceProcAddr(name));
|
||||
return reinterpret_cast<T>(GetDeviceProcAddr(dev,name));
|
||||
}
|
||||
|
||||
void DestroySurface(VkSurfaceKHR);
|
||||
|
@ -7,7 +7,7 @@
|
||||
VK_NAMESPACE_BEGIN
|
||||
class MaterialDescriptorManager
|
||||
{
|
||||
UTF8String mtl_name;
|
||||
AnsiString mtl_name;
|
||||
|
||||
BindingMapArray binding_map[DESCRIPTOR_SET_TYPE_COUNT];
|
||||
|
||||
@ -19,11 +19,11 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
MaterialDescriptorManager(const UTF8String &,ShaderDescriptor *,const uint);
|
||||
MaterialDescriptorManager(const UTF8String &,const ShaderDescriptorSetArray &);
|
||||
MaterialDescriptorManager(const AnsiString &,ShaderDescriptor *,const uint);
|
||||
MaterialDescriptorManager(const AnsiString &,const ShaderDescriptorSetArray &);
|
||||
~MaterialDescriptorManager();
|
||||
|
||||
const UTF8String &GetMaterialName()const{return mtl_name;}
|
||||
const AnsiString &GetMaterialName()const{return mtl_name;}
|
||||
|
||||
const uint GetBindCount(const DescriptorSetType &set_type)const
|
||||
{
|
||||
|
@ -171,7 +171,7 @@ namespace hgl
|
||||
|
||||
AABB GetAABB()const
|
||||
{
|
||||
vec min_point,max_point;
|
||||
glm::vec4 min_point,max_point;
|
||||
|
||||
GetBoundingBox(min_point,max_point);
|
||||
|
||||
@ -264,7 +264,7 @@ namespace hgl
|
||||
|
||||
AABB GetAABB()const
|
||||
{
|
||||
vec min_point,max_point;
|
||||
glm::vec4 min_point,max_point;
|
||||
|
||||
GetBoundingBox(min_point,max_point);
|
||||
|
||||
@ -462,10 +462,10 @@ namespace hgl
|
||||
template<typename V>
|
||||
bool WriteRect(const T left,const T top,const T width,const T height)
|
||||
{
|
||||
const vec2<V> lt(left ,top);
|
||||
const vec2<V> rt(left+width,top);
|
||||
const vec2<V> rb(left+width,top+height);
|
||||
const vec2<V> lb(left ,top+height);
|
||||
const glm::vec<2,V,glm::defaultp> lt(left ,top);
|
||||
const glm::vec<2,V,glm::defaultp> rt(left+width,top);
|
||||
const glm::vec<2,V,glm::defaultp> rb(left+width,top+height);
|
||||
const glm::vec<2,V,glm::defaultp> lb(left ,top+height);
|
||||
|
||||
return WriteQuad(lt,rt,rb,lb);
|
||||
}
|
||||
@ -580,7 +580,7 @@ namespace hgl
|
||||
|
||||
AABB GetAABB()const
|
||||
{
|
||||
vec min_point,max_point;
|
||||
glm::vec4 min_point,max_point;
|
||||
|
||||
GetBoundingBox(min_point,max_point);
|
||||
|
||||
@ -850,7 +850,7 @@ namespace hgl
|
||||
|
||||
AABB GetAABB()const
|
||||
{
|
||||
vec min_point,max_point;
|
||||
glm::vec4 min_point,max_point;
|
||||
|
||||
GetBoundingBox(min_point,max_point);
|
||||
|
||||
|
@ -58,7 +58,7 @@ public:
|
||||
|
||||
bool AddConstValue(ConstValueDescriptor *sd);
|
||||
|
||||
void SetPushConstant(const AnsiString name,uint8_t offset,uint8_t size);
|
||||
void SetPushConstant(const AnsiString &name,uint8_t offset,uint8_t size);
|
||||
};//class ShaderDescriptorInfo
|
||||
|
||||
template<VkShaderStageFlagBits SS,typename IArray,typename I,typename OArray,typename O> class CustomShaderDescriptorInfo:public ShaderDescriptorInfo
|
||||
@ -98,7 +98,7 @@ public:
|
||||
using CustomShaderDescriptorInfo<VK_SHADER_STAGE_VERTEX_BIT,VIAArray,VIA,SVArray,ShaderVariable>::CustomShaderDescriptorInfo;
|
||||
~VertexShaderDescriptorInfo()override=default;
|
||||
|
||||
bool AddSubpassInput(const AnsiString name,uint8_t index);
|
||||
bool AddSubpassInput(const AnsiString &name,uint8_t index);
|
||||
};//class VertexShaderDescriptorInfo
|
||||
|
||||
using TessCtrlShaderDescriptorInfo=CustomShaderDescriptorInfo<VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, SVArray, ShaderVariable, SVArray, ShaderVariable >;
|
||||
|
@ -77,7 +77,7 @@ namespace hgl
|
||||
|
||||
DataChain::UserNode *un=ibo_data_chain.Acquire(hgl_align<int>(count,4));
|
||||
|
||||
if(!un)return(false);
|
||||
if(!un)return(nullptr);
|
||||
|
||||
ibo_cur_size+=un->GetCount();
|
||||
|
||||
|
@ -21,7 +21,7 @@ bool LoadTexture2DLayerFromFile(GPUDevice *device,Texture2DArray *ta,const uint3
|
||||
VkTextureLoader<Texture2D,Texture2DLoader> loader(device,auto_mipmaps);
|
||||
|
||||
if(!loader.Load(filename))
|
||||
return(nullptr);
|
||||
return(false);
|
||||
|
||||
DeviceBuffer *buf=loader.GetBuffer();
|
||||
|
||||
|
@ -26,13 +26,13 @@ bool GPUCmdBuffer::Begin()
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
void GPUCmdBuffer::SetDebugName(const UTF8String &object_name)
|
||||
void GPUCmdBuffer::SetDebugName(const AnsiString &object_name)
|
||||
{
|
||||
if(dev_attr->debug_utils)
|
||||
dev_attr->debug_utils->SetCommandBuffer(cmd_buf,object_name);
|
||||
}
|
||||
|
||||
void GPUCmdBuffer::BeginRegion(const UTF8String ®ion_name,const Color4f &color)
|
||||
void GPUCmdBuffer::BeginRegion(const AnsiString ®ion_name,const Color4f &color)
|
||||
{
|
||||
if(dev_attr->debug_utils)
|
||||
dev_attr->debug_utils->CmdBegin(cmd_buf,region_name,color);
|
||||
|
@ -51,7 +51,7 @@ namespace
|
||||
{
|
||||
ext_list->Add(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
|
||||
|
||||
constexpr char *require_ext_list[]=
|
||||
constexpr const char *require_ext_list[]=
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
|
||||
|
@ -48,9 +48,9 @@ MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorManager *desc_ma
|
||||
if(!ds)return(nullptr);
|
||||
|
||||
#ifdef _DEBUG
|
||||
const UTF8String addr_string=HexToString<char,uint64_t>((uint64_t)(ds->GetDescriptorSet()));
|
||||
const UTF8String addr_string=HexToString<u8char,uint64_t>((uint64_t)(ds->GetDescriptorSet()));
|
||||
|
||||
LOG_INFO(U8_TEXT("Create [DescriptSets:")+addr_string+("] OK! Material Name: \"")+desc_manager->GetMaterialName()+U8_TEXT("\" Type: ")+GetDescriptorSetTypeName(desc_set_type));
|
||||
LOG_INFO(U8_TEXT("Create [DescriptSets:")+addr_string+U8_TEXT("] OK! Material Name: \"")+(const UTF8String &)(desc_manager->GetMaterialName())+U8_TEXT("\" Type: ")+(u8char *)(GetDescriptorSetTypeName(desc_set_type)));
|
||||
#endif//_DEBUG
|
||||
|
||||
return(new MaterialParameters(desc_manager,desc_set_type,ds));
|
||||
|
@ -62,7 +62,7 @@ RTSwapchain *GPUDevice::CreateSwapchainRenderTarget()
|
||||
Swapchain *sc=CreateSwapchain(attr->surface_caps.currentExtent);
|
||||
|
||||
if(!sc)
|
||||
return(false);
|
||||
return(nullptr);
|
||||
|
||||
DeviceQueue *q=CreateQueue(sc->color_count,false);
|
||||
Semaphore *render_complete_semaphore=CreateGPUSemaphore();
|
||||
|
@ -25,7 +25,7 @@ VulkanInstance *CreateInstance(const AnsiString &app_name,VKDebugOut *out,Create
|
||||
ext_list.Add(VK_KHR_SURFACE_EXTENSION_NAME);
|
||||
ext_list.Add(HGL_VK_SURFACE_EXTENSION_NAME); //此宏在VKSurfaceExtensionName.h中定义
|
||||
|
||||
constexpr char *require_ext_list[]=
|
||||
constexpr const char *require_ext_list[]=
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
|
||||
|
@ -12,7 +12,7 @@ void WriteDescriptorSetLayoutBinding(VkDescriptorSetLayoutBinding *dslb,ShaderDe
|
||||
dslb->pImmutableSamplers=nullptr;
|
||||
}
|
||||
|
||||
MaterialDescriptorManager::MaterialDescriptorManager(const UTF8String &name,ShaderDescriptor *sd_list,const uint sd_count)
|
||||
MaterialDescriptorManager::MaterialDescriptorManager(const AnsiString &name,ShaderDescriptor *sd_list,const uint sd_count)
|
||||
{
|
||||
mtl_name=name;
|
||||
|
||||
@ -66,7 +66,7 @@ MaterialDescriptorManager::MaterialDescriptorManager(const UTF8String &name,Shad
|
||||
}
|
||||
}
|
||||
|
||||
MaterialDescriptorManager::MaterialDescriptorManager(const UTF8String &name,const ShaderDescriptorSetArray &sds_array)
|
||||
MaterialDescriptorManager::MaterialDescriptorManager(const AnsiString &name,const ShaderDescriptorSetArray &sds_array)
|
||||
{
|
||||
mtl_name=name;
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace
|
||||
{
|
||||
void debug_queue_family_properties_out(const char *front,const List<VkQueueFamilyProperties> &qfp_list)
|
||||
{
|
||||
constexpr char *queue_bit_name[]=
|
||||
constexpr const char *queue_bit_name[]=
|
||||
{
|
||||
"Graphics",
|
||||
"Compute",
|
||||
|
@ -158,9 +158,9 @@ Texture2D *RenderResource::LoadTexture2D(const OSString &filename,bool auto_mipm
|
||||
|
||||
if(du)
|
||||
{
|
||||
const UTF8String name=ToUTF8String(filename);
|
||||
const UTF8String name=U8_TEXT("Tex2D:")+ToUTF8String(filename);
|
||||
|
||||
du->SetImage(tex->GetImage(),"Tex2D:"+name);
|
||||
du->SetImage(tex->GetImage(),(char *)(name.c_str()));
|
||||
}
|
||||
#endif//_DEBUG
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
||||
return(nullptr);
|
||||
|
||||
const uint32_t input_count=vil->GetVertexAttribCount(VertexInputGroup::Basic); //不统计Bone/LocalToWorld组的
|
||||
const UTF8String &mtl_name=mi->GetMaterial()->GetName();
|
||||
const AnsiString &mtl_name=mi->GetMaterial()->GetName();
|
||||
|
||||
if(prim->GetVABCount()<input_count) //小于材质要求的数量?那自然是不行的
|
||||
{
|
||||
@ -96,20 +96,20 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
||||
|
||||
if(vab->GetFormat()!=vif->format)
|
||||
{
|
||||
LOG_ERROR( "[FATAL ERROR] VAB \""+UTF8String(vif->name)+
|
||||
UTF8String("\" format can't match Renderable, Material(")+mtl_name+
|
||||
UTF8String(") Format(")+GetVulkanFormatName(vif->format)+
|
||||
UTF8String("), VAB Format(")+GetVulkanFormatName(vab->GetFormat())+
|
||||
LOG_ERROR( "[FATAL ERROR] VAB \""+AnsiString(vif->name)+
|
||||
AnsiString("\" format can't match Renderable, Material(")+mtl_name+
|
||||
AnsiString(") Format(")+GetVulkanFormatName(vif->format)+
|
||||
AnsiString("), VAB Format(")+GetVulkanFormatName(vab->GetFormat())+
|
||||
")");
|
||||
return(nullptr);
|
||||
}
|
||||
|
||||
if(vab->GetStride()!=vif->stride)
|
||||
{
|
||||
LOG_ERROR( "[FATAL ERROR] VAB \""+UTF8String(vif->name)+
|
||||
UTF8String("\" stride can't match Renderable, Material(")+mtl_name+
|
||||
UTF8String(") stride(")+UTF8String::numberOf(vif->stride)+
|
||||
UTF8String("), VAB stride(")+UTF8String::numberOf(vab->GetStride())+
|
||||
LOG_ERROR( "[FATAL ERROR] VAB \""+AnsiString(vif->name)+
|
||||
AnsiString("\" stride can't match Renderable, Material(")+mtl_name+
|
||||
AnsiString(") stride(")+AnsiString::numberOf(vif->stride)+
|
||||
AnsiString("), VAB stride(")+AnsiString::numberOf(vab->GetStride())+
|
||||
")");
|
||||
return(nullptr);
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
// µÈͬÓÚEShTargetLanguageVersion
|
||||
// <EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>EShTargetLanguageVersion
|
||||
constexpr const uint32_t SPV_VERSION_1_0 = (1 << 16); // SPIR-V 1.0
|
||||
constexpr const uint32_t SPV_VERSION_1_1 = (1 << 16) | (1 << 8); // SPIR-V 1.1
|
||||
constexpr const uint32_t SPV_VERSION_1_2 = (1 << 16) | (2 << 8); // SPIR-V 1.2
|
||||
@ -172,7 +172,7 @@ namespace hgl
|
||||
|
||||
if(!result)
|
||||
{
|
||||
LOG_ERROR(U8_TEXT("Compile shader failed, error info: ")+UTF8String(spv->log));
|
||||
LOG_ERROR("Compile shader failed, error info: "+AnsiString(spv->log));
|
||||
|
||||
FreeSPVData(spv);
|
||||
return(nullptr);
|
||||
|
@ -67,6 +67,8 @@ namespace material_file
|
||||
code_length=0;
|
||||
}
|
||||
|
||||
virtual ~ShaderData()=default;
|
||||
|
||||
const VkShaderStageFlagBits GetShaderStage()const{return shader_stage;}
|
||||
};
|
||||
|
||||
|
@ -37,7 +37,7 @@ namespace
|
||||
|
||||
struct MaterialFileBlockInfo
|
||||
{
|
||||
char *name;
|
||||
const char *name;
|
||||
int len;
|
||||
MaterialFileBlock state;
|
||||
};
|
||||
|
@ -45,7 +45,7 @@ bool ShaderDescriptorInfo::AddConstValue(ConstValueDescriptor *sd)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool VertexShaderDescriptorInfo::AddSubpassInput(const UTF8String name,uint8_t index)
|
||||
bool VertexShaderDescriptorInfo::AddSubpassInput(const AnsiString &name,uint8_t index)
|
||||
{
|
||||
for(auto *si:subpass_input)
|
||||
{
|
||||
@ -62,7 +62,7 @@ bool VertexShaderDescriptorInfo::AddSubpassInput(const UTF8String name,uint8_t i
|
||||
return(true);
|
||||
}
|
||||
|
||||
void ShaderDescriptorInfo::SetPushConstant(const UTF8String name,uint8_t offset,uint8_t size)
|
||||
void ShaderDescriptorInfo::SetPushConstant(const AnsiString &name,uint8_t offset,uint8_t size)
|
||||
{
|
||||
push_constant.name =name;
|
||||
push_constant.offset=offset;
|
||||
|
@ -9,7 +9,7 @@ STD_MTL_NAMESPACE_BEGIN
|
||||
|
||||
namespace
|
||||
{
|
||||
ObjectMap<AnsiString,UTF8String> shader_library;
|
||||
ObjectMap<AnsiString,AnsiString> shader_library;
|
||||
}
|
||||
|
||||
// 因为是Debug阶段,所以现在直接从文件系统加载
|
||||
@ -19,7 +19,7 @@ const AnsiString *LoadShader(const AnsiString &shader_name)
|
||||
if(shader_name.IsEmpty())
|
||||
return(nullptr);
|
||||
|
||||
UTF8String *shader;
|
||||
AnsiString *shader;
|
||||
|
||||
if(shader_library.Get(shader_name,shader))
|
||||
return shader;
|
||||
@ -33,9 +33,9 @@ const AnsiString *LoadShader(const AnsiString &shader_name)
|
||||
if(!filesystem::FileExist(os_fn))
|
||||
return(nullptr);
|
||||
|
||||
shader=new UTF8String;
|
||||
shader=new AnsiString;
|
||||
|
||||
if(LoadStringFromTextFile(*shader,os_fn)<=0)
|
||||
if(LoadStringFromTextFile((UTF8String &)*shader,os_fn)<=0)
|
||||
{
|
||||
delete shader;
|
||||
shader=nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user