upgraded codes based on newly CM... library.
This commit is contained in:
parent
8fc83ba9b3
commit
251d851f65
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit 48abdf2a894ba87d609f9ea4b3c9464467cec797
|
Subproject commit 68d0082e0e2dd2ec2d55fe0756aeb0bfb3c2be69
|
@ -1 +1 @@
|
|||||||
Subproject commit eca08f0ae7aeaf81ab5818572b32051e16dd41a7
|
Subproject commit c91c3780f42df182fdb752b8165ed41a03358949
|
@ -1 +1 @@
|
|||||||
Subproject commit 966025309dba8921bd0ba1c198fbae38620b0aa3
|
Subproject commit c539ce808b9a8a3acf451c3e26d47881631be954
|
2
CMUtil
2
CMUtil
@ -1 +1 @@
|
|||||||
Subproject commit 13b5a7347ea6a2b44f728847c2ce131e844f6d7c
|
Subproject commit b0ca13cfb34175fd90c370ded64e8c0f3586b8ec
|
@ -44,8 +44,8 @@ private:
|
|||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Renderable * render_obj =nullptr;
|
||||||
|
|
||||||
DeviceBuffer * ubo_camera_info =nullptr;
|
DeviceBuffer * ubo_camera_info =nullptr;
|
||||||
DeviceBuffer * ubo_rb_config =nullptr;
|
DeviceBuffer * ubo_rb_config =nullptr;
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
|
@ -60,11 +60,14 @@ private:
|
|||||||
Primitive *primitive=db->CreatePrimitive(VERTEX_COUNT);
|
Primitive *primitive=db->CreatePrimitive(VERTEX_COUNT);
|
||||||
if(!primitive)return(false);
|
if(!primitive)return(false);
|
||||||
|
|
||||||
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data )))return(false);
|
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data )))return(false);
|
||||||
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data )))return(false);
|
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data )))return(false);
|
||||||
|
|
||||||
render_obj=db->CreateRenderable(primitive,material_instance,pipeline);
|
render_obj=db->CreateRenderable(primitive,material_instance,pipeline);
|
||||||
|
|
||||||
|
if(!render_obj)
|
||||||
|
return(false);
|
||||||
|
|
||||||
render_root.CreateSubNode(render_obj);
|
render_root.CreateSubNode(render_obj);
|
||||||
|
|
||||||
render_root.RefreshMatrix();
|
render_root.RefreshMatrix();
|
||||||
|
@ -23,7 +23,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
};//struct ShaderStageBind
|
};//struct ShaderStageBind
|
||||||
|
|
||||||
using ShaderStageBindMap=MapObject<AnsiString,ShaderStageBind>;
|
using ShaderStageBindMap=ObjectMap<AnsiString,ShaderStageBind>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可绘制图元创建器
|
* 可绘制图元创建器
|
||||||
|
@ -40,7 +40,7 @@ namespace hgl
|
|||||||
List<Renderable *> ri_list;
|
List<Renderable *> ri_list;
|
||||||
|
|
||||||
VkDescriptorSet ds_list[(size_t)DescriptorSetsType::RANGE_SIZE];
|
VkDescriptorSet ds_list[(size_t)DescriptorSetsType::RANGE_SIZE];
|
||||||
DescriptorSets *renderable_desc_sets;
|
DescriptorSet *renderable_desc_sets;
|
||||||
|
|
||||||
uint32_t ubo_offset;
|
uint32_t ubo_offset;
|
||||||
uint32_t ubo_align;
|
uint32_t ubo_align;
|
||||||
|
@ -92,13 +92,13 @@ constexpr char *DescriptSetsTypeName[]=
|
|||||||
|
|
||||||
inline const char *GetDescriptorSetsTypeName(const enum class DescriptorSetsType &type)
|
inline const char *GetDescriptorSetsTypeName(const enum class DescriptorSetsType &type)
|
||||||
{
|
{
|
||||||
ENUM_CLASS_RANGE_ERROR_RETURN_NULLPTR(type);
|
RANGE_CHECK_RETURN_NULLPTR(type);
|
||||||
|
|
||||||
return DescriptSetsTypeName[(size_t)type];
|
return DescriptSetsTypeName[(size_t)type];
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PipelineLayoutData;
|
struct PipelineLayoutData;
|
||||||
class DescriptorSets;
|
class DescriptorSet;
|
||||||
|
|
||||||
struct ShaderStage;
|
struct ShaderStage;
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ public:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BindDescriptorSets(DescriptorSets *dsl)
|
bool BindDescriptorSets(DescriptorSet *dsl)
|
||||||
{
|
{
|
||||||
if(!dsl)return(false);
|
if(!dsl)return(false);
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ public:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BindDescriptorSets(DescriptorSets *dsl,const uint32_t offset)
|
bool BindDescriptorSets(DescriptorSet *dsl,const uint32_t offset)
|
||||||
{
|
{
|
||||||
if(!dsl)return(false);
|
if(!dsl)return(false);
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
class DeviceBuffer;
|
class DeviceBuffer;
|
||||||
|
|
||||||
class DescriptorSets
|
class DescriptorSet
|
||||||
{
|
{
|
||||||
VkDevice device;
|
VkDevice device;
|
||||||
int binding_count;
|
int binding_count;
|
||||||
@ -27,7 +27,7 @@ private:
|
|||||||
|
|
||||||
friend class GPUDevice;
|
friend class GPUDevice;
|
||||||
|
|
||||||
DescriptorSets(VkDevice dev,const int bc,VkPipelineLayout pl,VkDescriptorSet ds)
|
DescriptorSet(VkDevice dev,const int bc,VkPipelineLayout pl,VkDescriptorSet ds)
|
||||||
{
|
{
|
||||||
device =dev;
|
device =dev;
|
||||||
binding_count =bc;
|
binding_count =bc;
|
||||||
@ -39,7 +39,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
~DescriptorSets()=default;
|
~DescriptorSet()=default;
|
||||||
|
|
||||||
const uint32_t GetCount ()const{return binding_count;}
|
const uint32_t GetCount ()const{return binding_count;}
|
||||||
const VkDescriptorSet GetDescriptorSet ()const{return desc_set;}
|
const VkDescriptorSet GetDescriptorSet ()const{return desc_set;}
|
||||||
@ -57,6 +57,6 @@ public:
|
|||||||
bool BindSampler(const int binding,Texture *,Sampler *);
|
bool BindSampler(const int binding,Texture *,Sampler *);
|
||||||
bool BindInputAttachment(const int binding,ImageView *);
|
bool BindInputAttachment(const int binding,ImageView *);
|
||||||
void Update();
|
void Update();
|
||||||
};//class DescriptorSets
|
};//class DescriptorSet
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
#endif//HGL_GRAPH_VULKAN_DESCRIPTOR_SETS_LAYOUT_INCLUDE
|
#endif//HGL_GRAPH_VULKAN_DESCRIPTOR_SETS_LAYOUT_INCLUDE
|
||||||
|
@ -120,11 +120,11 @@ private: //Buffer相关
|
|||||||
|
|
||||||
public: //Buffer相关
|
public: //Buffer相关
|
||||||
|
|
||||||
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size,const void *data, SharingMode sm=SharingMode::Exclusive);
|
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size,const void *data, SharingMode sm=SharingMode::Exclusive);
|
||||||
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,range,size,nullptr,sm);}
|
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,range,size,nullptr,sm);}
|
||||||
|
|
||||||
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage, VkDeviceSize size,const void *data, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,size,data,sm);}
|
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage, VkDeviceSize size,const void *data, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,size,data,sm);}
|
||||||
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage, VkDeviceSize size, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,size,nullptr,sm);}
|
DeviceBuffer * CreateBuffer(VkBufferUsageFlags buf_usage, VkDeviceSize size, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,size,nullptr,sm);}
|
||||||
|
|
||||||
VBO * CreateVBO (VkFormat format, uint32_t count,const void *data, SharingMode sm=SharingMode::Exclusive);
|
VBO * CreateVBO (VkFormat format, uint32_t count,const void *data, SharingMode sm=SharingMode::Exclusive);
|
||||||
VBO * CreateVBO (VkFormat format, uint32_t count, SharingMode sm=SharingMode::Exclusive){return CreateVBO(format,count,nullptr,sm);}
|
VBO * CreateVBO (VkFormat format, uint32_t count, SharingMode sm=SharingMode::Exclusive){return CreateVBO(format,count,nullptr,sm);}
|
||||||
@ -219,7 +219,7 @@ public: //shader & material
|
|||||||
PipelineLayoutData *CreatePipelineLayoutData(const MaterialDescriptorSets *);
|
PipelineLayoutData *CreatePipelineLayoutData(const MaterialDescriptorSets *);
|
||||||
void Destroy(PipelineLayoutData *);
|
void Destroy(PipelineLayoutData *);
|
||||||
|
|
||||||
DescriptorSets * CreateDescriptorSets(const PipelineLayoutData *,const DescriptorSetsType &type)const;
|
DescriptorSet * CreateDescriptorSets(const PipelineLayoutData *,const DescriptorSetsType &type)const;
|
||||||
MaterialParameters *CreateMP(const MaterialDescriptorSets *,const PipelineLayoutData *,const DescriptorSetsType &);
|
MaterialParameters *CreateMP(const MaterialDescriptorSets *,const PipelineLayoutData *,const DescriptorSetsType &);
|
||||||
MaterialParameters *CreateMP(Material *,const DescriptorSetsType &);
|
MaterialParameters *CreateMP(Material *,const DescriptorSetsType &);
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ public: //Command Buffer 相关
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
RenderPass * AcquireRenderPass( const RenderbufferInfo *,const uint subpass_count=2);
|
RenderPass * AcquireRenderPass( const RenderbufferInfo *,const uint subpass_count=2);
|
||||||
|
|
||||||
Fence * CreateFence(bool);
|
Fence * CreateFence(bool);
|
||||||
Semaphore * CreateGPUSemaphore();
|
Semaphore * CreateGPUSemaphore();
|
||||||
|
@ -11,18 +11,18 @@ class MaterialParameters
|
|||||||
|
|
||||||
DescriptorSetsType ds_type;
|
DescriptorSetsType ds_type;
|
||||||
|
|
||||||
DescriptorSets *descriptor_sets;
|
DescriptorSet *descriptor_sets;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
friend class GPUDevice;
|
friend class GPUDevice;
|
||||||
|
|
||||||
MaterialParameters(const MaterialDescriptorSets *,const DescriptorSetsType &type,DescriptorSets *);
|
MaterialParameters(const MaterialDescriptorSets *,const DescriptorSetsType &type,DescriptorSet *);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const DescriptorSetsType GetType (){return ds_type;}
|
const DescriptorSetsType GetType (){return ds_type;}
|
||||||
DescriptorSets * GetDescriptorSet (){return descriptor_sets;}
|
DescriptorSet * GetDescriptorSet (){return descriptor_sets;}
|
||||||
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_sets->GetDescriptorSet();}
|
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_sets->GetDescriptorSet();}
|
||||||
|
|
||||||
const uint32_t GetCount ()const{return descriptor_sets->GetCount();}
|
const uint32_t GetCount ()const{return descriptor_sets->GetCount();}
|
||||||
|
@ -18,7 +18,7 @@ VK_NAMESPACE_BEGIN
|
|||||||
using MaterialID =int;
|
using MaterialID =int;
|
||||||
using MaterialInstanceID =int;
|
using MaterialInstanceID =int;
|
||||||
using BufferID =int;
|
using BufferID =int;
|
||||||
using DescriptorSetsID =int;
|
using DescriptorSetID =int;
|
||||||
using PrimitiveID =int;
|
using PrimitiveID =int;
|
||||||
using RenderableID =int;
|
using RenderableID =int;
|
||||||
using SamplerID =int;
|
using SamplerID =int;
|
||||||
@ -33,13 +33,13 @@ class RenderResource
|
|||||||
{
|
{
|
||||||
GPUDevice *device;
|
GPUDevice *device;
|
||||||
|
|
||||||
MapObject<OSString,ShaderModule> shader_module_by_name;
|
ObjectMap<OSString,ShaderModule> shader_module_by_name;
|
||||||
Map<OSString,Material *> material_by_name;
|
Map<OSString,Material *> material_by_name;
|
||||||
Map<OSString,Texture *> texture_by_name;
|
Map<OSString,Texture *> texture_by_name;
|
||||||
|
|
||||||
IDResManage<MaterialID, Material> rm_material; ///<材质合集
|
IDResManage<MaterialID, Material> rm_material; ///<材质合集
|
||||||
IDResManage<MaterialInstanceID, MaterialInstance> rm_material_instance; ///<材质实例合集
|
IDResManage<MaterialInstanceID, MaterialInstance> rm_material_instance; ///<材质实例合集
|
||||||
IDResManage<DescriptorSetsID, DescriptorSets> rm_desc_sets; ///<描述符合集
|
IDResManage<DescriptorSetID, DescriptorSet> rm_desc_sets; ///<描述符合集
|
||||||
IDResManage<PrimitiveID, Primitive> rm_primitives; ///<图元合集
|
IDResManage<PrimitiveID, Primitive> rm_primitives; ///<图元合集
|
||||||
IDResManage<BufferID, DeviceBuffer> rm_buffers; ///<顶点缓冲区合集
|
IDResManage<BufferID, DeviceBuffer> rm_buffers; ///<顶点缓冲区合集
|
||||||
IDResManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
|
IDResManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
|
||||||
@ -55,9 +55,9 @@ public: //Add
|
|||||||
|
|
||||||
MaterialID Add(Material * mtl ){return rm_material.Add(mtl);}
|
MaterialID Add(Material * mtl ){return rm_material.Add(mtl);}
|
||||||
MaterialInstanceID Add(MaterialInstance * mi ){return rm_material_instance.Add(mi);}
|
MaterialInstanceID Add(MaterialInstance * mi ){return rm_material_instance.Add(mi);}
|
||||||
DescriptorSetsID Add(DescriptorSets * ds ){return rm_desc_sets.Add(ds);}
|
DescriptorSetID Add(DescriptorSet * ds ){return rm_desc_sets.Add(ds);}
|
||||||
PrimitiveID Add(Primitive * p ){return rm_primitives.Add(p);}
|
PrimitiveID Add(Primitive * p ){return rm_primitives.Add(p);}
|
||||||
BufferID Add(DeviceBuffer * buf ){return rm_buffers.Add(buf);}
|
BufferID Add(DeviceBuffer * buf ){return rm_buffers.Add(buf);}
|
||||||
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
||||||
TextureID Add(Texture * t ){return rm_textures.Add(t);}
|
TextureID Add(Texture * t ){return rm_textures.Add(t);}
|
||||||
RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
|
RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
|
||||||
@ -109,9 +109,9 @@ public: //Get
|
|||||||
|
|
||||||
Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);}
|
Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);}
|
||||||
MaterialInstance * GetMaterialInstance (const MaterialInstanceID &id){return rm_material_instance.Get(id);}
|
MaterialInstance * GetMaterialInstance (const MaterialInstanceID &id){return rm_material_instance.Get(id);}
|
||||||
DescriptorSets * GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);}
|
DescriptorSet * GetDescSets (const DescriptorSetID &id){return rm_desc_sets.Get(id);}
|
||||||
Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);}
|
Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);}
|
||||||
DeviceBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
|
DeviceBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
|
||||||
Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);}
|
Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);}
|
||||||
Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);}
|
Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);}
|
||||||
Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
||||||
|
@ -16,7 +16,7 @@ struct ShaderStage
|
|||||||
VertexAttribType type; ///<成份数量(如vec4中的4)
|
VertexAttribType type; ///<成份数量(如vec4中的4)
|
||||||
|
|
||||||
bool global; ///<是否全局数据
|
bool global; ///<是否全局数据
|
||||||
bool dynamic; ///<是否动态数量
|
bool dynamic; ///<是否动态数据
|
||||||
};//struct ShaderStage
|
};//struct ShaderStage
|
||||||
|
|
||||||
using ShaderStageList =ObjectList<ShaderStage>;
|
using ShaderStageList =ObjectList<ShaderStage>;
|
||||||
@ -29,7 +29,7 @@ class ShaderResource
|
|||||||
uint32 spv_size;
|
uint32 spv_size;
|
||||||
|
|
||||||
ShaderStageList stage_inputs;
|
ShaderStageList stage_inputs;
|
||||||
ShaderStageList stage_outputs;
|
// ShaderStageList stage_outputs;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -43,10 +43,10 @@ public:
|
|||||||
const uint32_t GetCodeSize ()const {return spv_size;}
|
const uint32_t GetCodeSize ()const {return spv_size;}
|
||||||
|
|
||||||
ShaderStageList & GetStageInputs () {return stage_inputs;}
|
ShaderStageList & GetStageInputs () {return stage_inputs;}
|
||||||
ShaderStageList & GetStageOutputs () {return stage_outputs;}
|
// ShaderStageList & GetStageOutputs () {return stage_outputs;}
|
||||||
|
|
||||||
const uint GetStageInputCount ()const {return stage_inputs.GetCount();}
|
const uint GetStageInputCount ()const {return stage_inputs.GetCount();}
|
||||||
const uint GetStageOutputCount ()const {return stage_outputs.GetCount();}
|
// const uint GetStageOutputCount ()const {return stage_outputs.GetCount();}
|
||||||
|
|
||||||
const ShaderStage * GetStageInput (const AnsiString &)const;
|
const ShaderStage * GetStageInput (const AnsiString &)const;
|
||||||
const int GetStageInputBinding(const AnsiString &)const;
|
const int GetStageInputBinding(const AnsiString &)const;
|
||||||
|
@ -14,9 +14,9 @@ namespace hgl
|
|||||||
*/
|
*/
|
||||||
class FontManage
|
class FontManage
|
||||||
{
|
{
|
||||||
MapObject<Font,FontSource> sources;
|
ObjectMap<Font,FontSource> sources;
|
||||||
|
|
||||||
MapObject<FontConfig,TileFont> tilefonts;
|
ObjectMap<FontConfig,TileFont> tilefonts;
|
||||||
};//class FontManage
|
};//class FontManage
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
@ -73,7 +73,7 @@ namespace hgl
|
|||||||
|
|
||||||
SortedSets<void *> ref_object;
|
SortedSets<void *> ref_object;
|
||||||
|
|
||||||
MapObject<u32char,CLA> cla_cache;
|
ObjectMap<u32char,CLA> cla_cache;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ namespace hgl
|
|||||||
|
|
||||||
Font fnt;
|
Font fnt;
|
||||||
|
|
||||||
MapObject<u32char,FontBitmap> chars_bitmap; ///<字符位图
|
ObjectMap<u32char,FontBitmap> chars_bitmap; ///<字符位图
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ namespace hgl
|
|||||||
|
|
||||||
GPUDevice *device;
|
GPUDevice *device;
|
||||||
|
|
||||||
MapObject<Form *,ThemeForm> form_list;
|
ObjectMap<Form *,ThemeForm> form_list;
|
||||||
|
|
||||||
RenderTarget *CreateRenderTarget(const uint32_t,const uint32_t,const VkFormat);
|
RenderTarget *CreateRenderTarget(const uint32_t,const uint32_t,const VkFormat);
|
||||||
|
|
||||||
|
@ -321,7 +321,7 @@ namespace hgl
|
|||||||
|
|
||||||
if(cci->color_type!=CubeCreateInfo::ColorType::NoColor)
|
if(cci->color_type!=CubeCreateInfo::ColorType::NoColor)
|
||||||
{
|
{
|
||||||
ENUM_CLASS_RANGE_ERROR_RETURN_NULLPTR(cci->color_type);
|
RANGE_CHECK_RETURN_NULLPTR(cci->color_type);
|
||||||
|
|
||||||
AutoDelete<VB4f> color=rc.CreateVADA<VB4f>(VAN::Color);
|
AutoDelete<VB4f> color=rc.CreateVADA<VB4f>(VAN::Color);
|
||||||
|
|
||||||
@ -1203,7 +1203,7 @@ namespace hgl
|
|||||||
|
|
||||||
if(cci->color_type!=BoundingBoxCreateInfo::ColorType::NoColor)
|
if(cci->color_type!=BoundingBoxCreateInfo::ColorType::NoColor)
|
||||||
{
|
{
|
||||||
ENUM_CLASS_RANGE_ERROR_RETURN_NULLPTR(cci->color_type);
|
RANGE_CHECK_RETURN_NULLPTR(cci->color_type);
|
||||||
|
|
||||||
AutoDelete<VB4f> color=rc.CreateVADA<VB4f>(VAN::Color);
|
AutoDelete<VB4f> color=rc.CreateVADA<VB4f>(VAN::Color);
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ namespace
|
|||||||
};//struct DescriptorImageInfo:public VkDescriptorImageInfo
|
};//struct DescriptorImageInfo:public VkDescriptorImageInfo
|
||||||
}//namespace
|
}//namespace
|
||||||
|
|
||||||
void DescriptorSets::Clear()
|
void DescriptorSet::Clear()
|
||||||
{
|
{
|
||||||
buffer_list.ClearData();
|
buffer_list.ClearData();
|
||||||
image_list.ClearData();
|
image_list.ClearData();
|
||||||
@ -76,7 +76,7 @@ void DescriptorSets::Clear()
|
|||||||
is_dirty=true;
|
is_dirty=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DescriptorSets::BindUBO(const int binding,const DeviceBuffer *buf,bool dynamic)
|
bool DescriptorSet::BindUBO(const int binding,const DeviceBuffer *buf,bool dynamic)
|
||||||
{
|
{
|
||||||
if(binding<0||!buf)
|
if(binding<0||!buf)
|
||||||
return(false);
|
return(false);
|
||||||
@ -92,7 +92,7 @@ bool DescriptorSets::BindUBO(const int binding,const DeviceBuffer *buf,bool dyna
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DescriptorSets::BindUBO(const int binding,const DeviceBuffer *buf,const VkDeviceSize offset,const VkDeviceSize range,bool dynamic)
|
bool DescriptorSet::BindUBO(const int binding,const DeviceBuffer *buf,const VkDeviceSize offset,const VkDeviceSize range,bool dynamic)
|
||||||
{
|
{
|
||||||
if(binding<0||!buf)
|
if(binding<0||!buf)
|
||||||
return(false);
|
return(false);
|
||||||
@ -112,7 +112,7 @@ bool DescriptorSets::BindUBO(const int binding,const DeviceBuffer *buf,const VkD
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DescriptorSets::BindSSBO(const int binding,const DeviceBuffer *buf,bool dynamic)
|
bool DescriptorSet::BindSSBO(const int binding,const DeviceBuffer *buf,bool dynamic)
|
||||||
{
|
{
|
||||||
if(binding<0||!buf)
|
if(binding<0||!buf)
|
||||||
return(false);
|
return(false);
|
||||||
@ -128,7 +128,7 @@ bool DescriptorSets::BindSSBO(const int binding,const DeviceBuffer *buf,bool dyn
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DescriptorSets::BindSSBO(const int binding,const DeviceBuffer *buf,const VkDeviceSize offset,const VkDeviceSize range,bool dynamic)
|
bool DescriptorSet::BindSSBO(const int binding,const DeviceBuffer *buf,const VkDeviceSize offset,const VkDeviceSize range,bool dynamic)
|
||||||
{
|
{
|
||||||
if(binding<0||!buf)
|
if(binding<0||!buf)
|
||||||
return(false);
|
return(false);
|
||||||
@ -148,7 +148,7 @@ bool DescriptorSets::BindSSBO(const int binding,const DeviceBuffer *buf,const Vk
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DescriptorSets::BindSampler(const int binding,Texture *tex,Sampler *sampler)
|
bool DescriptorSet::BindSampler(const int binding,Texture *tex,Sampler *sampler)
|
||||||
{
|
{
|
||||||
if(binding<0||!tex||!sampler)
|
if(binding<0||!tex||!sampler)
|
||||||
return(false);
|
return(false);
|
||||||
@ -166,7 +166,7 @@ bool DescriptorSets::BindSampler(const int binding,Texture *tex,Sampler *sampler
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DescriptorSets::BindInputAttachment(const int binding,ImageView *iv)
|
bool DescriptorSet::BindInputAttachment(const int binding,ImageView *iv)
|
||||||
{
|
{
|
||||||
if(binding<0||!iv)
|
if(binding<0||!iv)
|
||||||
return(false);
|
return(false);
|
||||||
@ -184,7 +184,7 @@ bool DescriptorSets::BindInputAttachment(const int binding,ImageView *iv)
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DescriptorSets::Update()
|
void DescriptorSet::Update()
|
||||||
{
|
{
|
||||||
if(!is_dirty)return;
|
if(!is_dirty)return;
|
||||||
|
|
||||||
|
@ -32,8 +32,11 @@ namespace
|
|||||||
VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
|
VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
|
||||||
#endif//_DEBUG
|
#endif//_DEBUG
|
||||||
// VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
|
// VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
|
||||||
|
// VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME,
|
||||||
|
// VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME,
|
||||||
|
// VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME,
|
||||||
VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME,
|
VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME,
|
||||||
VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME,
|
// VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME,
|
||||||
// VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
|
// VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
|
||||||
// VK_EXT_HDR_METADATA_EXTENSION_NAME,
|
// VK_EXT_HDR_METADATA_EXTENSION_NAME,
|
||||||
// VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME,
|
// VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME,
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
#include"VKPipelineLayoutData.h"
|
#include"VKPipelineLayoutData.h"
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
DescriptorSets *GPUDevice::CreateDescriptorSets(const PipelineLayoutData *pld,const DescriptorSetsType &type)const
|
DescriptorSet *GPUDevice::CreateDescriptorSets(const PipelineLayoutData *pld,const DescriptorSetsType &type)const
|
||||||
{
|
{
|
||||||
ENUM_CLASS_RANGE_ERROR_RETURN_NULLPTR(type);
|
RANGE_CHECK_RETURN_NULLPTR(type);
|
||||||
|
|
||||||
const uint32_t binding_count=pld->binding_count[size_t(type)];
|
const uint32_t binding_count=pld->binding_count[size_t(type)];
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ DescriptorSets *GPUDevice::CreateDescriptorSets(const PipelineLayoutData *pld,co
|
|||||||
if(vkAllocateDescriptorSets(attr->device,&alloc_info,&desc_set)!=VK_SUCCESS)
|
if(vkAllocateDescriptorSets(attr->device,&alloc_info,&desc_set)!=VK_SUCCESS)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
return(new DescriptorSets(attr->device,binding_count,pld->pipeline_layout,desc_set));
|
return(new DescriptorSet(attr->device,binding_count,pld->pipeline_layout,desc_set));
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorSets *mds,const PipelineLayoutData *pld,const DescriptorSetsType &desc_set_type)
|
MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorSets *mds,const PipelineLayoutData *pld,const DescriptorSetsType &desc_set_type)
|
||||||
@ -37,7 +37,7 @@ MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorSets *mds,const
|
|||||||
if(!RangeCheck<DescriptorSetsType>(desc_set_type))
|
if(!RangeCheck<DescriptorSetsType>(desc_set_type))
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
DescriptorSets *ds=CreateDescriptorSets(pld,desc_set_type);
|
DescriptorSet *ds=CreateDescriptorSets(pld,desc_set_type);
|
||||||
|
|
||||||
if(!ds)return(nullptr);
|
if(!ds)return(nullptr);
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include<hgl/graph/VKDescriptorSets.h>
|
#include<hgl/graph/VKDescriptorSets.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
MaterialParameters::MaterialParameters(const MaterialDescriptorSets *_mds,const DescriptorSetsType &type,DescriptorSets *ds)
|
MaterialParameters::MaterialParameters(const MaterialDescriptorSets *_mds,const DescriptorSetsType &type,DescriptorSet *ds)
|
||||||
{
|
{
|
||||||
mds=_mds;
|
mds=_mds;
|
||||||
ds_type=type;
|
ds_type=type;
|
||||||
|
@ -40,7 +40,7 @@ PipelineLayoutData *GPUDevice::CreatePipelineLayoutData(const MaterialDescriptor
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//没有任何DescriptorSets的情况也是存在的
|
//没有任何DescriptorSet的情况也是存在的
|
||||||
}
|
}
|
||||||
|
|
||||||
//VkPushConstantRange push_constant_range;
|
//VkPushConstantRange push_constant_range;
|
||||||
|
@ -21,7 +21,7 @@ VK_NAMESPACE_BEGIN
|
|||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
MapObject<OSString,ShaderResource> shader_resource_by_filename;
|
ObjectMap<OSString,ShaderResource> shader_resource_by_filename;
|
||||||
|
|
||||||
const uint8 *LoadShaderStages(ShaderStageList &ss_list,const uint8 *data)
|
const uint8 *LoadShaderStages(ShaderStageList &ss_list,const uint8 *data)
|
||||||
{
|
{
|
||||||
@ -138,7 +138,7 @@ VK_NAMESPACE_BEGIN
|
|||||||
filedata+=spv_size;
|
filedata+=spv_size;
|
||||||
|
|
||||||
filedata=LoadShaderStages(sr->GetStageInputs(),filedata);
|
filedata=LoadShaderStages(sr->GetStageInputs(),filedata);
|
||||||
filedata=LoadShaderStages(sr->GetStageOutputs(),filedata);
|
//filedata=LoadShaderStages(sr->GetStageOutputs(),filedata);
|
||||||
|
|
||||||
return sr;
|
return sr;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ namespace hgl
|
|||||||
constexpr int CurrencySymbolsCount=(sizeof(CurrencySymbols)/sizeof(u32char))-1;
|
constexpr int CurrencySymbolsCount=(sizeof(CurrencySymbols)/sizeof(u32char))-1;
|
||||||
constexpr int VRotateSymbolsCount =(sizeof(VRotateSymbols) /sizeof(u32char))-1;
|
constexpr int VRotateSymbolsCount =(sizeof(VRotateSymbols) /sizeof(u32char))-1;
|
||||||
|
|
||||||
MapObject<u32char,CharAttributes> all_char_attrs;
|
ObjectMap<u32char,CharAttributes> all_char_attrs;
|
||||||
}//namespace
|
}//namespace
|
||||||
|
|
||||||
const CLA *FontSource::GetCLA(const u32char &ch)
|
const CLA *FontSource::GetCLA(const u32char &ch)
|
||||||
|
@ -5,7 +5,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
FontSource *CreateFontSource(const Font &f); //各平台独立提供
|
FontSource *CreateFontSource(const Font &f); //各平台独立提供
|
||||||
|
|
||||||
static MapObject<Font,FontSource> FontStorage;
|
static ObjectMap<Font,FontSource> FontStorage;
|
||||||
|
|
||||||
FontSource *AcquireFontSource(const Font &f)
|
FontSource *AcquireFontSource(const Font &f)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user