Compare commits

...

2 Commits

Author SHA1 Message Date
0e789b6f47 各种类名结构名优化,不再使用GPU开头 2025-05-17 20:26:36 +08:00
29aa76a917 GPUDeviceAttribute更名为VkDevAttr 2025-05-17 20:13:23 +08:00
118 changed files with 316 additions and 322 deletions

View File

@ -46,7 +46,7 @@ private:
bool InitAutoMaterial() bool InitAutoMaterial()
{ {
mtl::Material2DCreateConfig cfg(device->GetDeviceAttribute(),"VertexColor2D",PrimitiveType::Lines); mtl::Material2DCreateConfig cfg(device->GetDevAttr(),"VertexColor2D",PrimitiveType::Lines);
cfg.coordinate_system=CoordinateSystem2D::NDC; cfg.coordinate_system=CoordinateSystem2D::NDC;
cfg.local_to_world=false; cfg.local_to_world=false;

View File

@ -47,7 +47,7 @@ private:
bool InitPlaneGridMP() bool InitPlaneGridMP()
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"VertexLuminance3D",PrimitiveType::Lines); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"VertexLuminance3D",PrimitiveType::Lines);
cfg.local_to_world=true; cfg.local_to_world=true;
@ -73,7 +73,7 @@ private:
bool InitBillboardMP() bool InitBillboardMP()
{ {
mtl::BillboardMaterialCreateConfig cfg(device->GetDeviceAttribute(),"Billboard2D",PrimitiveType::Billboard); mtl::BillboardMaterialCreateConfig cfg(device->GetDevAttr(),"Billboard2D",PrimitiveType::Billboard);
{ {
cfg.fixed_size=true; cfg.fixed_size=true;

View File

@ -47,7 +47,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
{ {
mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2D",PrimitiveType::Triangles); mtl::Material2DCreateConfig cfg(GetDevAttr(),"VertexColor2D",PrimitiveType::Triangles);
cfg.coordinate_system=CoordinateSystem2D::NDC; cfg.coordinate_system=CoordinateSystem2D::NDC;
cfg.local_to_world=true; cfg.local_to_world=true;

View File

@ -48,7 +48,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
{ {
mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"PureColor2D",PrimitiveType::Triangles); mtl::Material2DCreateConfig cfg(GetDevAttr(),"PureColor2D",PrimitiveType::Triangles);
cfg.coordinate_system=CoordinateSystem2D::NDC; cfg.coordinate_system=CoordinateSystem2D::NDC;
cfg.local_to_world=true; cfg.local_to_world=true;

View File

@ -87,7 +87,7 @@ private:
bool InitAutoMaterial() bool InitAutoMaterial()
{ {
mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2d",PrimitiveType::Triangles); mtl::Material2DCreateConfig cfg(GetDevAttr(),"VertexColor2d",PrimitiveType::Triangles);
cfg.coordinate_system=CoordinateSystem2D::NDC; cfg.coordinate_system=CoordinateSystem2D::NDC;
cfg.local_to_world=false; cfg.local_to_world=false;

View File

@ -46,7 +46,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2D",PrimitiveType::Triangles); mtl::Material2DCreateConfig cfg(GetDevAttr(),"VertexColor2D",PrimitiveType::Triangles);
VILConfig vil_config; VILConfig vil_config;

View File

@ -80,7 +80,7 @@ namespace
return(true); return(true);
} }
bool InitGizmoResource2D(GPUDevice *device) bool InitGizmoResource2D(VulkanDevice *device)
{ {
if(!gizmo_rr) if(!gizmo_rr)
return(false); return(false);
@ -88,7 +88,7 @@ namespace
RenderPass *render_pass=device->GetRenderPass(); RenderPass *render_pass=device->GetRenderPass();
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"VertexLuminance3D",PrimitiveType::Lines); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"VertexLuminance3D",PrimitiveType::Lines);
cfg.mtl_name="VertexLuminance3D"; //注意必须用不同名字,未来改名材质文件名+cfg hash名 cfg.mtl_name="VertexLuminance3D"; //注意必须用不同名字,未来改名材质文件名+cfg hash名
cfg.local_to_world=true; cfg.local_to_world=true;
@ -134,7 +134,7 @@ namespace
return(true); return(true);
} }
bool InitGizmoResource3D(GPUDevice *device) bool InitGizmoResource3D(VulkanDevice *device)
{ {
if(!gizmo_rr) if(!gizmo_rr)
return(false); return(false);
@ -142,7 +142,7 @@ namespace
RenderPass *render_pass=device->GetRenderPass(); RenderPass *render_pass=device->GetRenderPass();
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"Gizmo3D",PrimitiveType::Triangles); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"Gizmo3D",PrimitiveType::Triangles);
cfg.local_to_world=true; cfg.local_to_world=true;
cfg.material_instance=true; cfg.material_instance=true;
@ -272,7 +272,7 @@ bool InitGizmoResource(RenderResource *rr)
gizmo_rr=rr; gizmo_rr=rr;
GPUDevice *device=gizmo_rr->GetDevice(); VulkanDevice *device=gizmo_rr->GetDevice();
if(!InitGizmoResource3D(device)) if(!InitGizmoResource3D(device))
return(false); return(false);

View File

@ -49,7 +49,7 @@ private:
bool InitMDP() bool InitMDP()
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"MetricCellsGrid",PrimitiveType::Fan); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"MetricCellsGrid",PrimitiveType::Fan);
cfg.local_to_world=true; cfg.local_to_world=true;

View File

@ -26,7 +26,7 @@ private:
bool InitMDP() bool InitMDP()
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"VertexLuminance3D",PrimitiveType::Lines); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"VertexLuminance3D",PrimitiveType::Lines);
cfg.local_to_world=true; cfg.local_to_world=true;
cfg.position_format=VAT_VEC2; cfg.position_format=VAT_VEC2;

View File

@ -51,7 +51,7 @@ private:
bool InitMaterialAndPipeline() bool InitMaterialAndPipeline()
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"VertexLuminance2D",PrimitiveType::Lines); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"VertexLuminance2D",PrimitiveType::Lines);
cfg.local_to_world=true; cfg.local_to_world=true;

View File

@ -104,7 +104,7 @@ private:
bool InitVertexLumMP() bool InitVertexLumMP()
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"VertexLuminance3D",PrimitiveType::Lines); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"VertexLuminance3D",PrimitiveType::Lines);
cfg.local_to_world=true; cfg.local_to_world=true;
@ -132,7 +132,7 @@ private:
bool InitBlinnPhongSunLightMP() bool InitBlinnPhongSunLightMP()
{ {
mtl::Material3DCreateConfig cfg(device->GetDeviceAttribute(),"BlinnPhong3D",PrimitiveType::Triangles); mtl::Material3DCreateConfig cfg(device->GetDevAttr(),"BlinnPhong3D",PrimitiveType::Triangles);
cfg.local_to_world=true; cfg.local_to_world=true;
cfg.material_instance=true; cfg.material_instance=true;

View File

@ -38,8 +38,8 @@ int main(int,char **)
{ {
Window * win =nullptr; Window * win =nullptr;
VulkanInstance * inst =nullptr; VulkanInstance * inst =nullptr;
GPUDevice * device =nullptr; VulkanDevice * device =nullptr;
const GPUPhysicalDevice * physical_device =nullptr; const VulkanPhyDevice * physical_device =nullptr;
inst=InitVulkanInstance(); inst=InitVulkanInstance();

View File

@ -12,7 +12,7 @@ using namespace hgl;
using namespace hgl::graph; using namespace hgl::graph;
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
Texture2D *CreateTexture2DFromFile(GPUDevice *device,const OSString &filename); Texture2D *CreateTexture2DFromFile(VulkanDevice *device,const OSString &filename);
VK_NAMESPACE_END VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=256; constexpr uint32_t SCREEN_WIDTH=256;
@ -51,7 +51,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
mtl::Material2DCreateConfig cfg(device->GetDeviceAttribute(),"PureTexture2D",PrimitiveType::Fan); mtl::Material2DCreateConfig cfg(device->GetDevAttr(),"PureTexture2D",PrimitiveType::Fan);
cfg.coordinate_system=CoordinateSystem2D::NDC; cfg.coordinate_system=CoordinateSystem2D::NDC;
cfg.local_to_world=false; cfg.local_to_world=false;

View File

@ -12,7 +12,7 @@ using namespace hgl;
using namespace hgl::graph; using namespace hgl::graph;
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
Texture2D *CreateTexture2DFromFile(GPUDevice *device,const OSString &filename); Texture2D *CreateTexture2DFromFile(VulkanDevice *device,const OSString &filename);
VK_NAMESPACE_END VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=256; constexpr uint32_t SCREEN_WIDTH=256;
@ -47,7 +47,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
mtl::Material2DCreateConfig cfg(device->GetDeviceAttribute(),"RectTexture2D",PrimitiveType::SolidRectangles); mtl::Material2DCreateConfig cfg(device->GetDevAttr(),"RectTexture2D",PrimitiveType::SolidRectangles);
cfg.coordinate_system=CoordinateSystem2D::ZeroToOne; cfg.coordinate_system=CoordinateSystem2D::ZeroToOne;
cfg.local_to_world=false; cfg.local_to_world=false;

View File

@ -13,7 +13,7 @@ using namespace hgl;
using namespace hgl::graph; using namespace hgl::graph;
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
//Texture2D *CreateTexture2DFromFile(GPUDevice *device,const OSString &filename); //Texture2D *CreateTexture2DFromFile(VulkanDevice *device,const OSString &filename);
VK_NAMESPACE_END VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=256; constexpr uint32_t SCREEN_WIDTH=256;
@ -91,7 +91,7 @@ private:
bool InitMaterial() bool InitMaterial()
{ {
mtl::Material2DCreateConfig cfg(device->GetDeviceAttribute(),"RectTexture2DArray",PrimitiveType::SolidRectangles); mtl::Material2DCreateConfig cfg(device->GetDevAttr(),"RectTexture2DArray",PrimitiveType::SolidRectangles);
cfg.coordinate_system=CoordinateSystem2D::ZeroToOne; cfg.coordinate_system=CoordinateSystem2D::ZeroToOne;
cfg.local_to_world=true; cfg.local_to_world=true;

View File

@ -103,7 +103,7 @@ private:
const VkFormat GetCandidateFormat(const VkFormat *fmt_list, const uint count) const VkFormat GetCandidateFormat(const VkFormat *fmt_list, const uint count)
{ {
auto pd = device->GetPhysicalDevice(); auto pd = device->GetPhyDevice();
for (uint i = 0; i < count; i++) for (uint i = 0; i < count; i++)
if (pd->IsColorAttachmentOptimal(fmt_list[i])) if (pd->IsColorAttachmentOptimal(fmt_list[i]))
@ -118,7 +118,7 @@ private:
const VkFormat GetDepthCandidateFormat() const VkFormat GetDepthCandidateFormat()
{ {
auto pd = device->GetPhysicalDevice(); auto pd = device->GetPhyDevice();
for (VkFormat fmt : depth_candidate_format) for (VkFormat fmt : depth_candidate_format)
if (pd->IsDepthAttachmentOptimal(fmt)) if (pd->IsDepthAttachmentOptimal(fmt))

View File

@ -16,7 +16,7 @@ using namespace hgl;
using namespace hgl::graph; using namespace hgl::graph;
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
Texture2D *CreateTexture2DFromFile(GPUDevice *device,const OSString &filename); Texture2D *CreateTexture2DFromFile(VulkanDevice *device,const OSString &filename);
VK_NAMESPACE_END VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=1280; constexpr uint32_t SCREEN_WIDTH=1280;
@ -139,7 +139,7 @@ private:
#ifdef _DEBUG #ifdef _DEBUG
{ {
auto da=device->GetDeviceAttribute(); auto da=device->GetDevAttr();
if(da->debug_maker) if(da->debug_maker)
{ {
@ -172,7 +172,7 @@ private:
#ifdef _DEBUG #ifdef _DEBUG
{ {
auto da=device->GetDeviceAttribute(); auto da=device->GetDevAttr();
VkQueue q=*(gbuffer.rt->GetQueue()); VkQueue q=*(gbuffer.rt->GetQueue());
VkFramebuffer fbo= gbuffer.rt->GetFramebuffer()->GetFramebuffer(); VkFramebuffer fbo= gbuffer.rt->GetFramebuffer()->GetFramebuffer();
@ -229,7 +229,7 @@ private:
#ifdef _DEBUG #ifdef _DEBUG
{ {
auto da=device->GetDeviceAttribute(); auto da=device->GetDevAttr();
if(da->debug_maker) if(da->debug_maker)
{ {

View File

@ -109,7 +109,7 @@ private:
VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_ADDRESS_MODE_REPEAT,
0.0f, 0.0f,
VK_TRUE, VK_TRUE,
device->GetPhysicalDevice()->GetMaxSamplerAnisotropy(), device->GetPhyDevice()->GetMaxSamplerAnisotropy(),
false, false,
VK_COMPARE_OP_NEVER, VK_COMPARE_OP_NEVER,
0.0f, 0.0f,

View File

@ -53,7 +53,7 @@ protected:
protected: protected:
GPUDevice * device =nullptr; VulkanDevice * device =nullptr;
RenderPass * device_render_pass =nullptr; RenderPass * device_render_pass =nullptr;
SwapchainRenderTarget * sc_render_target =nullptr; SwapchainRenderTarget * sc_render_target =nullptr;
@ -216,7 +216,7 @@ public:
cmd_buf=hgl_zero_new<RenderCmdBuffer *>(swap_chain_count); cmd_buf=hgl_zero_new<RenderCmdBuffer *>(swap_chain_count);
for(int32_t i=0;i<swap_chain_count;i++) for(int32_t i=0;i<swap_chain_count;i++)
cmd_buf[i]=device->CreateRenderCommandBuffer(device->GetPhysicalDevice()->GetDeviceName()+AnsiString(":RenderCmdBuffer_")+AnsiString::numberOf(i)); cmd_buf[i]=device->CreateRenderCommandBuffer(device->GetPhyDevice()->GetDeviceName()+AnsiString(":RenderCmdBuffer_")+AnsiString::numberOf(i));
} }
} }

View File

@ -36,8 +36,8 @@ namespace hgl
public: public:
graph::RenderFramework * GetRenderFramework (){return render_framework;} graph::RenderFramework * GetRenderFramework (){return render_framework;}
graph::GPUDevice * GetDevice (){return render_framework->GetDevice();} graph::VulkanDevice * GetDevice (){return render_framework->GetDevice();}
graph::GPUDeviceAttribute * GetDeviceAttribute (){return render_framework->GetDeviceAttribute();} graph::VulkanDevAttr * GetDevAttr (){return render_framework->GetDevAttr();}
const VkExtent2D & GetExtent2D (){return cur_render_target->GetExtent();} const VkExtent2D & GetExtent2D (){return cur_render_target->GetExtent();}
@ -82,7 +82,7 @@ namespace hgl
graph::MaterialInstance *CreateMaterialInstance(const AnsiString &mtl_name,graph::mtl::MaterialCreateConfig *mtl_cfg,const graph::VILConfig *vil_cfg=nullptr) graph::MaterialInstance *CreateMaterialInstance(const AnsiString &mtl_name,graph::mtl::MaterialCreateConfig *mtl_cfg,const graph::VILConfig *vil_cfg=nullptr)
{ {
AutoDelete<graph::mtl::MaterialCreateInfo> mci=graph::mtl::CreateMaterialCreateInfo( AutoDelete<graph::mtl::MaterialCreateInfo> mci=graph::mtl::CreateMaterialCreateInfo(
GetDeviceAttribute(), GetDevAttr(),
"VertexColor2D",mtl_cfg); //这个是使用名称创建 "VertexColor2D",mtl_cfg); //这个是使用名称创建
return db->CreateMaterialInstance(mci,vil_cfg); return db->CreateMaterialInstance(mci,vil_cfg);

View File

@ -46,7 +46,7 @@ public:
*/ */
class MaterialRenderList class MaterialRenderList
{ {
GPUDevice *device; VulkanDevice *device;
RenderCmdBuffer *cmd_buf; RenderCmdBuffer *cmd_buf;
RenderPipelineIndex rp_index; RenderPipelineIndex rp_index;
@ -106,7 +106,7 @@ protected:
public: public:
MaterialRenderList(GPUDevice *d,bool l2w,const RenderPipelineIndex &rpi); MaterialRenderList(VulkanDevice *d,bool l2w,const RenderPipelineIndex &rpi);
~MaterialRenderList(); ~MaterialRenderList();
void Add(SceneNode *); void Add(SceneNode *);

View File

@ -13,7 +13,7 @@ class PrimitiveCreater
{ {
protected: protected:
GPUDevice * device; VulkanDevice * device;
VertexDataManager * vdm; VertexDataManager * vdm;
const VIL * vil; const VIL * vil;
@ -36,7 +36,7 @@ protected:
public: public:
PrimitiveCreater(GPUDevice *,const VIL *); PrimitiveCreater(VulkanDevice *,const VIL *);
PrimitiveCreater(VertexDataManager *); PrimitiveCreater(VertexDataManager *);
virtual ~PrimitiveCreater(); virtual ~PrimitiveCreater();

View File

@ -27,7 +27,7 @@ class RenderFramework:public io::WindowEvent
Window * win =nullptr; Window * win =nullptr;
VulkanInstance * inst =nullptr; VulkanInstance * inst =nullptr;
GPUDevice * device =nullptr; VulkanDevice * device =nullptr;
RenderResource * render_resource =nullptr; RenderResource * render_resource =nullptr;
@ -50,10 +50,10 @@ protected:
public: public:
Window * GetWindow ()const{return win;} Window * GetWindow ()const{return win;}
GPUDevice * GetDevice ()const{return device;} VulkanDevice * GetDevice ()const{return device;}
VkDevice GetVkDevice ()const{return device->GetDevice();} VkDevice GetVkDevice ()const{return device->GetDevice();}
const GPUPhysicalDevice * GetPhysicalDevice ()const{return device->GetPhysicalDevice();} const VulkanPhyDevice * GetPhyDevice ()const{return device->GetPhyDevice();}
GPUDeviceAttribute * GetDeviceAttribute ()const{return device->GetDeviceAttribute();} VulkanDevAttr * GetDevAttr ()const{return device->GetDevAttr();}
RenderResource * GetRenderResource ()const{return render_resource;} RenderResource * GetRenderResource ()const{return render_resource;}

View File

@ -18,7 +18,7 @@ namespace hgl
{ {
protected: protected:
GPUDevice * device; VulkanDevice * device;
CameraInfo * camera_info; ///<相机信息 CameraInfo * camera_info; ///<相机信息
@ -31,7 +31,7 @@ namespace hgl
public: public:
RenderList(GPUDevice *); RenderList(VulkanDevice *);
virtual ~RenderList()=default; virtual ~RenderList()=default;
virtual void SetCamera(CameraInfo *ci){camera_info=ci;} ///<设置相机信息 virtual void SetCamera(CameraInfo *ci){camera_info=ci;} ///<设置相机信息

View File

@ -41,9 +41,9 @@ class GraphModule;
class RenderFramework; class RenderFramework;
class VulkanInstance; class VulkanInstance;
class GPUPhysicalDevice; class VulkanPhyDevice;
class GPUDevice; class VulkanDevice;
struct GPUDeviceAttribute; struct VulkanDevAttr;
class DeviceQueue; class DeviceQueue;
class ImageView; class ImageView;
class Framebuffer; class Framebuffer;
@ -84,7 +84,7 @@ class IndexBuffer;
class VABMap; class VABMap;
class IBMap; class IBMap;
class GPUCmdBuffer; class VulkanCmdBuffer;
class RenderCmdBuffer; class RenderCmdBuffer;
class TextureCmdBuffer; class TextureCmdBuffer;

View File

@ -1,5 +1,4 @@
#ifndef HGL_GRAPH_VULKAN_ARRAY_BUFFER_INCLUDE #pragma once
#define HGL_GRAPH_VULKAN_ARRAY_BUFFER_INCLUDE
#include<hgl/graph/VK.h> #include<hgl/graph/VK.h>
#include<hgl/graph/VKDynamicBufferAccess.h> #include<hgl/graph/VKDynamicBufferAccess.h>
@ -15,7 +14,7 @@ namespace hgl
* GPU数据阵列缓冲区<br> * GPU数据阵列缓冲区<br>
* instance等 * instance等
*/ */
class GPUArrayBuffer class VulkanArrayBuffer
{ {
protected: protected:
@ -33,13 +32,13 @@ namespace hgl
private: private:
GPUArrayBuffer(VKMemoryAllocator *,const uint,const uint); VulkanArrayBuffer(VKMemoryAllocator *,const uint,const uint);
friend class GPUDevice; friend class VulkanDevice;
public: public:
virtual ~GPUArrayBuffer(); virtual ~VulkanArrayBuffer();
const uint32_t GetAlignSize()const{return align_size;} ///<数据对齐字节数 const uint32_t GetAlignSize()const{return align_size;} ///<数据对齐字节数
const uint32_t GetRangeSize()const{return range_size;} ///<单次渲染访问最大字节数 const uint32_t GetRangeSize()const{return range_size;} ///<单次渲染访问最大字节数
@ -71,7 +70,6 @@ namespace hgl
dba->Restart(); dba->Restart();
} }
};//class GPUArrayBuffer };//class VulkanArrayBuffer
}//namespace graph }//namespace graph
}//namespace hgl }//namespace hgl
#endif//HGL_GRAPH_VULKAN_ARRAY_BUFFER_INCLUDE

View File

@ -20,7 +20,7 @@ protected:
private: private:
friend class GPUDevice; friend class VulkanDevice;
friend class VertexAttribBuffer; friend class VertexAttribBuffer;
friend class IndexBuffer; friend class IndexBuffer;
template<typename T> friend class IndirectCommandBuffer; template<typename T> friend class IndirectCommandBuffer;

View File

@ -1,5 +1,4 @@
#ifndef HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE #pragma once
#define HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE
#include<hgl/graph/VK.h> #include<hgl/graph/VK.h>
#include<hgl/graph/VKVABList.h> #include<hgl/graph/VKVABList.h>
@ -8,11 +7,11 @@
#include<hgl/graph/VKRenderable.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/color/Color4f.h> #include<hgl/color/Color4f.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
class GPUCmdBuffer class VulkanCmdBuffer
{ {
protected: protected:
const GPUDeviceAttribute *dev_attr; const VulkanDevAttr *dev_attr;
VkCommandBuffer cmd_buf; VkCommandBuffer cmd_buf;
@ -20,8 +19,8 @@ protected:
public: public:
GPUCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb); VulkanCmdBuffer(const VulkanDevAttr *attr,VkCommandBuffer cb);
virtual ~GPUCmdBuffer(); virtual ~VulkanCmdBuffer();
operator VkCommandBuffer(){return cmd_buf;} operator VkCommandBuffer(){return cmd_buf;}
operator const VkCommandBuffer()const{return cmd_buf;} operator const VkCommandBuffer()const{return cmd_buf;}
@ -48,11 +47,11 @@ public:
void BeginRegion(const AnsiString &,const Color4f &){} void BeginRegion(const AnsiString &,const Color4f &){}
void EndRegion(){} void EndRegion(){}
#endif//_DEBUG #endif//_DEBUG
};//class GPUCmdBuffer };//class VulkanCmdBuffer
class DescriptorBinding; class DescriptorBinding;
class RenderCmdBuffer:public GPUCmdBuffer class RenderCmdBuffer:public VulkanCmdBuffer
{ {
uint32_t cv_count; uint32_t cv_count;
VkClearValue *clear_values; VkClearValue *clear_values;
@ -70,7 +69,7 @@ private:
public: public:
RenderCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb); RenderCmdBuffer(const VulkanDevAttr *attr,VkCommandBuffer cb);
~RenderCmdBuffer(); ~RenderCmdBuffer();
void SetDescriptorBinding(DescriptorBinding *db) { desc_binding=db; } void SetDescriptorBinding(DescriptorBinding *db) { desc_binding=db; }
@ -79,7 +78,7 @@ public:
{ {
desc_binding=nullptr; desc_binding=nullptr;
return GPUCmdBuffer::End(); return VulkanCmdBuffer::End();
} }
void SetRenderArea(const VkRect2D &ra){render_area=ra;} void SetRenderArea(const VkRect2D &ra){render_area=ra;}
@ -256,15 +255,15 @@ public:
Draw(ri->GetDataBuffer(),ri->GetRenderData()); Draw(ri->GetDataBuffer(),ri->GetRenderData());
} }
};//class RenderCmdBuffer:public GPUCmdBuffer };//class RenderCmdBuffer:public VulkanCmdBuffer
class TextureCmdBuffer:public GPUCmdBuffer class TextureCmdBuffer:public VulkanCmdBuffer
{ {
VkImageMemoryBarrier imageMemoryBarrier; VkImageMemoryBarrier imageMemoryBarrier;
public: public:
TextureCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb):GPUCmdBuffer(attr,cb) TextureCmdBuffer(const VulkanDevAttr *attr,VkCommandBuffer cb):VulkanCmdBuffer(attr,cb)
{ {
imageMemoryBarrier.sType=VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; imageMemoryBarrier.sType=VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.pNext=nullptr; imageMemoryBarrier.pNext=nullptr;
@ -301,6 +300,5 @@ public:
0, nullptr, 0, nullptr,
1, &imageMemoryBarrier); 1, &imageMemoryBarrier);
} }
};//class TextureCmdBuffer:public GPUCmdBuffer };//class TextureCmdBuffer:public VulkanCmdBuffer
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE

View File

@ -1,5 +1,4 @@
#ifndef HGL_GRAPH_VULKAN_DEVICE_INCLUDE #pragma once
#define HGL_GRAPH_VULKAN_DEVICE_INCLUDE
#include<hgl/type/ArrayList.h> #include<hgl/type/ArrayList.h>
#include<hgl/type/String.h> #include<hgl/type/String.h>
@ -21,16 +20,16 @@ VK_NAMESPACE_BEGIN
class TileData; class TileData;
class TileFont; class TileFont;
class FontSource; class FontSource;
class GPUArrayBuffer; class VulkanArrayBuffer;
class IndirectDrawBuffer; class IndirectDrawBuffer;
class IndirectDrawIndexedBuffer; class IndirectDrawIndexedBuffer;
class IndirectDispatchBuffer; class IndirectDispatchBuffer;
struct CopyBufferToImageInfo; struct CopyBufferToImageInfo;
class GPUDevice class VulkanDevice
{ {
GPUDeviceAttribute *attr; VulkanDevAttr *attr;
private: private:
@ -40,18 +39,18 @@ private:
friend class VulkanDeviceCreater; friend class VulkanDeviceCreater;
GPUDevice(GPUDeviceAttribute *da); VulkanDevice(VulkanDevAttr *da);
public: public:
virtual ~GPUDevice(); virtual ~VulkanDevice();
operator VkDevice () {return attr->device;} operator VkDevice () {return attr->device;}
GPUDeviceAttribute *GetDeviceAttribute () {return attr;} VulkanDevAttr * GetDevAttr () {return attr;}
VkSurfaceKHR GetSurface () {return attr->surface;} VkSurfaceKHR GetSurface () {return attr->surface;}
VkDevice GetDevice ()const {return attr->device;} VkDevice GetDevice ()const {return attr->device;}
const GPUPhysicalDevice * GetPhysicalDevice ()const {return attr->physical_device;} const VulkanPhyDevice * GetPhyDevice ()const {return attr->physical_device;}
VkDescriptorPool GetDescriptorPool () {return attr->desc_pool;} VkDescriptorPool GetDescriptorPool () {return attr->desc_pool;}
VkPipelineCache GetPipelineCache () {return attr->pipeline_cache;} VkPipelineCache GetPipelineCache () {return attr->pipeline_cache;}
@ -132,8 +131,8 @@ public: //Buffer相关
#undef CREATE_BUFFER_OBJECT #undef CREATE_BUFFER_OBJECT
GPUArrayBuffer *CreateArrayInUBO(const VkDeviceSize &uint_size); VulkanArrayBuffer *CreateArrayInUBO(const VkDeviceSize &uint_size);
GPUArrayBuffer *CreateArrayInSSBO(const VkDeviceSize &uint_size); VulkanArrayBuffer *CreateArrayInSSBO(const VkDeviceSize &uint_size);
public: //间接绘制 public: //间接绘制
@ -173,6 +172,5 @@ public:
TileData *CreateTileData(const VkFormat video_format,const uint width,const uint height,const uint count); ///<创建一个Tile数据集 TileData *CreateTileData(const VkFormat video_format,const uint width,const uint height,const uint count); ///<创建一个Tile数据集
TileFont *CreateTileFont(FontSource *fs,int limit_count=-1); ///<创建一个Tile字体 TileFont *CreateTileFont(FontSource *fs,int limit_count=-1); ///<创建一个Tile字体
};//class GPUDevice };//class VulkanDevice
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_DEVICE_INCLUDE

View File

@ -11,10 +11,10 @@ VK_NAMESPACE_BEGIN
constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX; constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX;
struct GPUDeviceAttribute struct VulkanDevAttr
{ {
VulkanInstance * instance =nullptr; VulkanInstance * instance =nullptr;
const GPUPhysicalDevice * physical_device =nullptr; const VulkanPhyDevice * physical_device =nullptr;
VkPhysicalDeviceDriverPropertiesKHR driver_properties; VkPhysicalDeviceDriverPropertiesKHR driver_properties;
@ -34,7 +34,7 @@ struct GPUDeviceAttribute
VkQueue present_queue =VK_NULL_HANDLE; VkQueue present_queue =VK_NULL_HANDLE;
VkSurfaceFormatKHR surface_format; VkSurfaceFormatKHR surface_format;
ArrayList<VkPresentModeKHR> present_modes; ArrayList<VkPresentModeKHR> present_modes;
VkSurfaceTransformFlagBitsKHR preTransform; VkSurfaceTransformFlagBitsKHR preTransform;
VkCompositeAlphaFlagBitsKHR compositeAlpha =VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; VkCompositeAlphaFlagBitsKHR compositeAlpha =VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
@ -55,8 +55,8 @@ struct GPUDeviceAttribute
public: public:
GPUDeviceAttribute(VulkanInstance *inst,const GPUPhysicalDevice *pd,VkSurfaceKHR s); VulkanDevAttr(VulkanInstance *inst,const VulkanPhyDevice *pd,VkSurfaceKHR s);
~GPUDeviceAttribute(); ~VulkanDevAttr();
int GetMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties) const; int GetMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties) const;
@ -75,5 +75,5 @@ public:
{ {
return instance->GetDeviceProc<T>(device,name); return instance->GetDeviceProc<T>(device,name);
} }
};//class GPUDeviceAttribute };//class VulkanDevAttr
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@ -238,7 +238,7 @@ protected:
VulkanInstance *instance; VulkanInstance *instance;
Window *window; Window *window;
const GPUPhysicalDevice *physical_device; const VulkanPhyDevice *physical_device;
VulkanHardwareRequirement require; VulkanHardwareRequirement require;
@ -274,14 +274,14 @@ public:
virtual void ChooseSurfaceFormat(); virtual void ChooseSurfaceFormat();
virtual GPUDevice *CreateRenderDevice(); virtual VulkanDevice *CreateRenderDevice();
public: public:
virtual GPUDevice *Create(); virtual VulkanDevice *Create();
};//class VulkanDeviceCreater };//class VulkanDeviceCreater
inline GPUDevice *CreateRenderDevice( VulkanInstance *vi, inline VulkanDevice *CreateRenderDevice( VulkanInstance *vi,
Window *win, Window *win,
const VulkanHardwareRequirement *req=nullptr, const VulkanHardwareRequirement *req=nullptr,
const PreferFormats * spf_color =&PreferSDR, const PreferFormats * spf_color =&PreferSDR,
@ -293,35 +293,35 @@ inline GPUDevice *CreateRenderDevice( VulkanInstance *vi,
return vdc.Create(); return vdc.Create();
} }
inline GPUDevice *CreateRenderDeviceLDR(VulkanInstance *vi, inline VulkanDevice *CreateRenderDeviceLDR(VulkanInstance *vi,
Window *win, Window *win,
const VulkanHardwareRequirement *req=nullptr) const VulkanHardwareRequirement *req=nullptr)
{ {
return CreateRenderDevice(vi,win,req,&PreferLDR,&PreferNonlinear,&PreferDepth); return CreateRenderDevice(vi,win,req,&PreferLDR,&PreferNonlinear,&PreferDepth);
} }
inline GPUDevice *CreateRenderDeviceSDR(VulkanInstance *vi, inline VulkanDevice *CreateRenderDeviceSDR(VulkanInstance *vi,
Window *win, Window *win,
const VulkanHardwareRequirement *req=nullptr) const VulkanHardwareRequirement *req=nullptr)
{ {
return CreateRenderDevice(vi,win,req,&PreferSDR,&PreferNonlinear,&PreferDepth); return CreateRenderDevice(vi,win,req,&PreferSDR,&PreferNonlinear,&PreferDepth);
} }
inline GPUDevice *CreateRenderDeviceHDR16( VulkanInstance *vi, inline VulkanDevice *CreateRenderDeviceHDR16( VulkanInstance *vi,
Window *win, Window *win,
const VulkanHardwareRequirement *req=nullptr) const VulkanHardwareRequirement *req=nullptr)
{ {
return CreateRenderDevice(vi,win,req,&PreferHDR16,&PreferLinear,&PreferDepth); return CreateRenderDevice(vi,win,req,&PreferHDR16,&PreferLinear,&PreferDepth);
} }
inline GPUDevice *CreateRenderDeviceHDR32( VulkanInstance *vi, inline VulkanDevice *CreateRenderDeviceHDR32( VulkanInstance *vi,
Window *win, Window *win,
const VulkanHardwareRequirement *req=nullptr) const VulkanHardwareRequirement *req=nullptr)
{ {
return CreateRenderDevice(vi,win,req,&PreferHDR32,&PreferLinear,&PreferDepth); return CreateRenderDevice(vi,win,req,&PreferHDR32,&PreferLinear,&PreferDepth);
} }
inline GPUDevice *CreateRenderDeviceHDR(VulkanInstance *vi, inline VulkanDevice *CreateRenderDeviceHDR(VulkanInstance *vi,
Window *win, Window *win,
const VulkanHardwareRequirement *req=nullptr) const VulkanHardwareRequirement *req=nullptr)
{ {

View File

@ -37,7 +37,7 @@ private:
index=0; index=0;
} }
friend class GPUArrayBuffer; friend class VulkanArrayBuffer;
public: public:

View File

@ -10,7 +10,7 @@ class Fence
private: private:
friend class GPUDevice; friend class VulkanDevice;
Fence(VkDevice d,VkFence f) Fence(VkDevice d,VkFence f)
{ {

View File

@ -12,7 +12,7 @@ class IndexBuffer:public DeviceBuffer
private: private:
friend class GPUDevice; friend class VulkanDevice;
IndexBuffer(VkDevice d,const DeviceBufferData &vb,IndexType it,uint32_t _count):DeviceBuffer(d,vb) IndexBuffer(VkDevice d,const DeviceBufferData &vb,IndexType it,uint32_t _count):DeviceBuffer(d,vb)
{ {

View File

@ -19,7 +19,7 @@ public:
private: private:
friend class GPUDevice; friend class VulkanDevice;
IndirectCommandBuffer(VkDevice d,const DeviceBufferData &vb,const uint32_t mc):DeviceBuffer(d,vb) IndirectCommandBuffer(VkDevice d,const DeviceBufferData &vb,const uint32_t mc):DeviceBuffer(d,vb)
{ {
@ -46,7 +46,7 @@ public:
class IndirectDrawBuffer:public IndirectCommandBuffer<VkDrawIndirectCommand> class IndirectDrawBuffer:public IndirectCommandBuffer<VkDrawIndirectCommand>
{ {
friend class GPUDevice; friend class VulkanDevice;
public: public:
@ -64,7 +64,7 @@ public:
class IndirectDrawIndexedBuffer:public IndirectCommandBuffer<VkDrawIndexedIndirectCommand> class IndirectDrawIndexedBuffer:public IndirectCommandBuffer<VkDrawIndexedIndirectCommand>
{ {
friend class GPUDevice; friend class VulkanDevice;
public: public:
@ -82,7 +82,7 @@ public:
class IndirectDispatchBuffer:public IndirectCommandBuffer<VkDispatchIndirectCommand> class IndirectDispatchBuffer:public IndirectCommandBuffer<VkDispatchIndirectCommand>
{ {
friend class GPUDevice; friend class VulkanDevice;
public: public:

View File

@ -62,7 +62,7 @@ VK_NAMESPACE_BEGIN
VKDebugOut *debug_out; VKDebugOut *debug_out;
ObjectList<GPUPhysicalDevice> physical_devices; ObjectList<VulkanPhyDevice> physical_devices;
private: private:
@ -80,8 +80,8 @@ VK_NAMESPACE_BEGIN
operator VkInstance (){return inst;} operator VkInstance (){return inst;}
const ObjectList<GPUPhysicalDevice> &GetDeviceList ()const {return physical_devices;} const ObjectList<VulkanPhyDevice> &GetDeviceList ()const {return physical_devices;}
const GPUPhysicalDevice * GetDevice (VkPhysicalDeviceType)const; const VulkanPhyDevice * GetDevice (VkPhysicalDeviceType)const;
template<typename T> template<typename T>
T *GetInstanceProc(const char *name) T *GetInstanceProc(const char *name)

View File

@ -16,7 +16,7 @@ class DeviceMemory
private: private:
friend class GPUDevice; friend class VulkanDevice;
DeviceMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p,const VkDeviceSize cas); DeviceMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p,const VkDeviceSize cas);

View File

@ -7,7 +7,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
class VKMemoryAllocator:public AbstractMemoryAllocator class VKMemoryAllocator:public AbstractMemoryAllocator
{ {
GPUDevice *device; VulkanDevice *device;
uint32_t buffer_usage_flag_bits; uint32_t buffer_usage_flag_bits;
@ -29,7 +29,7 @@ public:
public: public:
VKMemoryAllocator(GPUDevice *,const uint32_t flags,const VkDeviceSize r); VKMemoryAllocator(VulkanDevice *,const uint32_t flags,const VkDeviceSize r);
~VKMemoryAllocator(); ~VKMemoryAllocator();
void Free() override {/* DON'T RUN ANY OPERATION.*/} void Free() override {/* DON'T RUN ANY OPERATION.*/}

View File

@ -5,7 +5,7 @@
#include<hgl/type/SortedSet.h> #include<hgl/type/SortedSet.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
class GPUPhysicalDevice class VulkanPhyDevice
{ {
VkInstance instance=nullptr; VkInstance instance=nullptr;
VkPhysicalDevice physical_device=nullptr; VkPhysicalDevice physical_device=nullptr;
@ -23,9 +23,9 @@ class GPUPhysicalDevice
VkPhysicalDeviceVulkan14Properties properties14; VkPhysicalDeviceVulkan14Properties properties14;
VkPhysicalDeviceMemoryProperties memory_properties; VkPhysicalDeviceMemoryProperties memory_properties;
ArrayList<VkLayerProperties> layer_properties; ArrayList<VkLayerProperties> layer_properties;
ArrayList<VkExtensionProperties> extension_properties; ArrayList<VkExtensionProperties> extension_properties;
ArrayList<VkQueueFamilyProperties> queue_family_properties; ArrayList<VkQueueFamilyProperties> queue_family_properties;
private: private:
@ -46,8 +46,8 @@ public:
public: public:
GPUPhysicalDevice(VkInstance,VkPhysicalDevice); VulkanPhyDevice(VkInstance,VkPhysicalDevice);
~GPUPhysicalDevice()=default; ~VulkanPhyDevice()=default;
operator VkPhysicalDevice() {return physical_device;} operator VkPhysicalDevice() {return physical_device;}
operator const VkPhysicalDevice()const {return physical_device;} operator const VkPhysicalDevice()const {return physical_device;}
@ -207,5 +207,5 @@ public:
} }
const bool SupportDynamicState() const {return dynamic_state;} const bool SupportDynamicState() const {return dynamic_state;}
};//class GPUPhysicalDevice };//class VulkanPhyDevice
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@ -19,7 +19,7 @@ protected:
private: private:
friend class GPUDevice; friend class VulkanDevice;
DeviceQueue(VkDevice dev,VkQueue q,Fence **,const uint32_t fc); DeviceQueue(VkDevice dev,VkQueue q,Fence **,const uint32_t fc);
@ -42,7 +42,7 @@ public:
bool WaitFence(const bool wait_all=true,const uint64_t time_out=HGL_NANO_SEC_PER_SEC); bool WaitFence(const bool wait_all=true,const uint64_t time_out=HGL_NANO_SEC_PER_SEC);
bool Submit(const VkCommandBuffer *cmd_buf,const uint32_t count,Semaphore *wait_sem,Semaphore *complete_sem); bool Submit(const VkCommandBuffer *cmd_buf,const uint32_t count,Semaphore *wait_sem,Semaphore *complete_sem);
bool Submit(GPUCmdBuffer *cmd_buf,Semaphore *wait_sem,Semaphore *complete_sem); bool Submit(VulkanCmdBuffer *cmd_buf,Semaphore *wait_sem,Semaphore *complete_sem);
};//class DeviceQueue };//class DeviceQueue
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_SUBMIT_QUEUE_INCLUDE #endif//HGL_GRAPH_VULKAN_SUBMIT_QUEUE_INCLUDE

View File

@ -11,13 +11,13 @@ class RenderContext
{ {
protected: protected:
GPUDevice *device; VulkanDevice *device;
VkExtent2D extent; VkExtent2D extent;
public: public:
RenderContext(GPUDevice *,const VkExtent2D &); RenderContext(VulkanDevice *,const VkExtent2D &);
virtual ~RenderContext(); virtual ~RenderContext();
void Prepare( void Prepare(

View File

@ -43,7 +43,7 @@ constexpr const size_t VK_SHADER_STAGE_TYPE_COUNT=20;//GetBitOffset((uint32_t)VK
*/ */
class RenderResource class RenderResource
{ {
GPUDevice *device; VulkanDevice *device;
ShaderModuleMapByName shader_module_by_name[VK_SHADER_STAGE_TYPE_COUNT]; ShaderModuleMapByName shader_module_by_name[VK_SHADER_STAGE_TYPE_COUNT];
Map<AnsiString,Material *> material_by_name; Map<AnsiString,Material *> material_by_name;
@ -75,7 +75,7 @@ private:
public: public:
GPUDevice *GetDevice(){return device;} VulkanDevice *GetDevice(){return device;}
//注:并非一定要走这里,这里只是提供一个注册和自动绑定的机制 //注:并非一定要走这里,这里只是提供一个注册和自动绑定的机制
DescriptorBinding static_descriptor; ///<静态属性描述符绑定管理 DescriptorBinding static_descriptor; ///<静态属性描述符绑定管理
@ -83,7 +83,7 @@ public:
public: public:
RenderResource(GPUDevice *dev):device(dev), RenderResource(VulkanDevice *dev):device(dev),
static_descriptor(DescriptorSetType::Static), static_descriptor(DescriptorSetType::Static),
global_descriptor(DescriptorSetType::Global) global_descriptor(DescriptorSetType::Global)
{} {}

View File

@ -29,7 +29,7 @@ class IRenderTarget
public: public:
RenderFramework * GetRenderFramework ()const{return render_framework;} RenderFramework * GetRenderFramework ()const{return render_framework;}
GPUDevice * GetDevice ()const; VulkanDevice * GetDevice ()const;
VkDevice GetVkDevice ()const; VkDevice GetVkDevice ()const;
DescriptorBinding * GetDescriptorBinding(){return &desc_binding;} DescriptorBinding * GetDescriptorBinding(){return &desc_binding;}

View File

@ -12,7 +12,7 @@ class Sampler
protected: protected:
friend class GPUDevice; friend class VulkanDevice;
Sampler(VkDevice dev,VkSampler s) Sampler(VkDevice dev,VkSampler s)
{ {

View File

@ -10,7 +10,7 @@ class Semaphore
private: private:
friend class GPUDevice; friend class VulkanDevice;
Semaphore(VkDevice d,VkSemaphore s) Semaphore(VkDevice d,VkSemaphore s)
{ {

View File

@ -9,7 +9,7 @@ class VkTextureLoader:public L
{ {
protected: protected:
GPUDevice *device; VulkanDevice *device;
GPUBuffer *buf; GPUBuffer *buf;
T *tex; T *tex;
@ -18,7 +18,7 @@ protected:
public: public:
VkTextureLoader(GPUDevice *dev,const bool am) VkTextureLoader(VulkanDevice *dev,const bool am)
{ {
device =dev; device =dev;
buf =nullptr; buf =nullptr;

View File

@ -12,7 +12,7 @@ class VertexAttribBuffer:public DeviceBuffer
private: private:
friend class GPUDevice; friend class VulkanDevice;
VertexAttribBuffer(VkDevice d,const DeviceBufferData &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):DeviceBuffer(d,vb) VertexAttribBuffer(VkDevice d,const DeviceBufferData &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):DeviceBuffer(d,vb)
{ {

View File

@ -8,7 +8,7 @@ VK_NAMESPACE_BEGIN
class VertexDataManager class VertexDataManager
{ {
GPUDevice *device; VulkanDevice *device;
protected: protected:
@ -30,10 +30,10 @@ protected:
public: public:
VertexDataManager(GPUDevice *dev,const VIL *_vil); VertexDataManager(VulkanDevice *dev,const VIL *_vil);
~VertexDataManager(); ~VertexDataManager();
GPUDevice * GetDevice ()const{return device;} ///<取得GPU设备 VulkanDevice * GetDevice ()const{return device;} ///<取得GPU设备
const VIL * GetVIL ()const{return vil;} ///<取得顶点输入格式列表 const VIL * GetVIL ()const{return vil;} ///<取得顶点输入格式列表

View File

@ -11,7 +11,7 @@ namespace hgl
*/ */
class TextPrimitive:public Primitive class TextPrimitive:public Primitive
{ {
GPUDevice * device; VulkanDevice * device;
Material * mtl; Material * mtl;
uint max_count; ///<缓冲区最大容量 uint max_count; ///<缓冲区最大容量
@ -36,7 +36,7 @@ namespace hgl
public: public:
TextPrimitive(GPUDevice *,Material *,uint mc=1024); TextPrimitive(VulkanDevice *,Material *,uint mc=1024);
public: public:

View File

@ -15,7 +15,7 @@ namespace hgl
class TextRender class TextRender
{ {
GPUDevice * device; VulkanDevice * device;
RenderResource * db; RenderResource * db;
Material * material; Material * material;
@ -37,8 +37,8 @@ namespace hgl
private: private:
friend TextRender *CreateTextRender(GPUDevice *,FontSource *,RenderPass *,DeviceBuffer *,int limit=-1); friend TextRender *CreateTextRender(VulkanDevice *,FontSource *,RenderPass *,DeviceBuffer *,int limit=-1);
TextRender(GPUDevice *dev,FontSource *); TextRender(VulkanDevice *dev,FontSource *);
bool InitTileFont(int limit); bool InitTileFont(int limit);
bool InitTextLayoutEngine(); bool InitTextLayoutEngine();
@ -82,7 +82,7 @@ namespace hgl
* *
* @param limit (-1) * @param limit (-1)
*/ */
TextRender *CreateTextRender(GPUDevice *,FontSource *,RenderPass *,DeviceBuffer *,int limit); TextRender *CreateTextRender(VulkanDevice *,FontSource *,RenderPass *,DeviceBuffer *,int limit);
}//namespace graph }//namespace graph
}//namespace hgl }//namespace hgl
#endif//HGL_GRAPH_TEXT_RENDER_INCLUDE #endif//HGL_GRAPH_TEXT_RENDER_INCLUDE

View File

@ -16,10 +16,10 @@ class GraphModule
public: public:
RenderFramework * GetRenderFramework ()const{return render_framework;} ///<取得渲染框架 RenderFramework * GetRenderFramework ()const{return render_framework;} ///<取得渲染框架
GPUDevice * GetDevice (); ///<取得GPU设备 VulkanDevice * GetDevice (); ///<取得GPU设备
VkDevice GetVkDevice ()const; ///<取得VkDevice VkDevice GetVkDevice ()const; ///<取得VkDevice
const GPUPhysicalDevice * GetPhysicalDevice ()const; ///<取得物理设备 const VulkanPhyDevice * GetPhyDevice ()const; ///<取得物理设备
GPUDeviceAttribute *GetDeviceAttribute ()const; ///<取得设备属性 VulkanDevAttr *GetDevAttr ()const; ///<取得设备属性
VkPipelineCache GetPipelineCache ()const; ///<取得PipelineCache VkPipelineCache GetPipelineCache ()const; ///<取得PipelineCache
public: public:

View File

@ -23,7 +23,7 @@ public:
public: public:
RenderFramework * GetRenderFramework ()const{return render_framework;} ///<取得渲染框架 RenderFramework * GetRenderFramework ()const{return render_framework;} ///<取得渲染框架
GPUDevice * GetDevice ()const; ///<取得GPU设备 VulkanDevice * GetDevice ()const; ///<取得GPU设备
public: public:

View File

@ -22,6 +22,6 @@ public:
#define RENDER_MODULE_CLASS(class_name) class class_name:public GraphModuleInherit<class_name,RenderModule> #define RENDER_MODULE_CLASS(class_name) class class_name:public GraphModuleInherit<class_name,RenderModule>
#define RENDER_MODULE_CONSTRUCT(class_name) class_name::class_name(GPUDevice *dev):GraphModuleInherit<class_name,RenderModule>(dev,#class_name) #define RENDER_MODULE_CONSTRUCT(class_name) class_name::class_name(VulkanDevice *dev):GraphModuleInherit<class_name,RenderModule>(dev,#class_name)
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@ -52,13 +52,13 @@ public:
DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D,CreateVertexColor2D,const Material2DCreateConfig) DEFINE_MATERIAL_FACTORY_CLASS(VertexColor2D,CreateVertexColor2D,const Material2DCreateConfig)
MaterialCreateInfo *CreatePureColor2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *); MaterialCreateInfo *CreatePureColor2D(const VulkanDevAttr *dev_attr,const Material2DCreateConfig *);
MaterialCreateInfo *CreateLerpLine2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *); MaterialCreateInfo *CreateLerpLine2D(const VulkanDevAttr *dev_attr,const Material2DCreateConfig *);
MaterialCreateInfo *CreatePureTexture2D(const GPUDeviceAttribute *dev_attr,const Material2DCreateConfig *); MaterialCreateInfo *CreatePureTexture2D(const VulkanDevAttr *dev_attr,const Material2DCreateConfig *);
MaterialCreateInfo *CreateRectTexture2D(const GPUDeviceAttribute *dev_attr,Material2DCreateConfig *); MaterialCreateInfo *CreateRectTexture2D(const VulkanDevAttr *dev_attr,Material2DCreateConfig *);
MaterialCreateInfo *CreateRectTexture2DArray(const GPUDeviceAttribute *dev_attr,Material2DCreateConfig *); MaterialCreateInfo *CreateRectTexture2DArray(const VulkanDevAttr *dev_attr,Material2DCreateConfig *);
// 为什么有了LoadMaterialFromFile还需要保留以上Create系列函数 // 为什么有了LoadMaterialFromFile还需要保留以上Create系列函数
@ -72,6 +72,6 @@ MaterialCreateInfo *CreateRectTexture2DArray(const GPUDeviceAttribute *dev_attr,
* @param cfg * @param cfg
* @return * @return
*/ */
MaterialCreateInfo *LoadMaterialFromFile(const GPUDeviceAttribute *dev_attr,const AnsiString &mtl_name,Material2DCreateConfig *cfg); ///<从文件加载材质 MaterialCreateInfo *LoadMaterialFromFile(const VulkanDevAttr *dev_attr,const AnsiString &mtl_name,Material2DCreateConfig *cfg); ///<从文件加载材质
STD_MTL_NAMESPACE_END STD_MTL_NAMESPACE_END

View File

@ -50,10 +50,10 @@ public:
} }
};//struct Material3DCreateConfig:public MaterialCreateConfig };//struct Material3DCreateConfig:public MaterialCreateConfig
MaterialCreateInfo *CreateVertexColor3D(const GPUDeviceAttribute *dev_attr,const Material3DCreateConfig *); MaterialCreateInfo *CreateVertexColor3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *);
MaterialCreateInfo *CreateVertexLuminance3D(const GPUDeviceAttribute *dev_attr,const Material3DCreateConfig *); MaterialCreateInfo *CreateVertexLuminance3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *);
MaterialCreateInfo *CreateMaterialGizmo3D(const GPUDeviceAttribute *dev_attr,const Material3DCreateConfig *cfg); MaterialCreateInfo *CreateMaterialGizmo3D(const VulkanDevAttr *dev_attr,const Material3DCreateConfig *cfg);
struct BillboardMaterialCreateConfig:public Material3DCreateConfig struct BillboardMaterialCreateConfig:public Material3DCreateConfig
{ {
@ -66,7 +66,7 @@ public:
using Material3DCreateConfig::Material3DCreateConfig; using Material3DCreateConfig::Material3DCreateConfig;
}; };
MaterialCreateInfo *CreateBillboard2D(const GPUDeviceAttribute *dev_attr,mtl::BillboardMaterialCreateConfig *); MaterialCreateInfo *CreateBillboard2D(const VulkanDevAttr *dev_attr,mtl::BillboardMaterialCreateConfig *);
/** /**
* *
@ -74,5 +74,5 @@ MaterialCreateInfo *CreateBillboard2D(const GPUDeviceAttribute *dev_attr,mtl::Bi
* @param cfg * @param cfg
* @return * @return
*/ */
MaterialCreateInfo *LoadMaterialFromFile(const GPUDeviceAttribute *dev_attr,const AnsiString &name,Material3DCreateConfig *cfg); MaterialCreateInfo *LoadMaterialFromFile(const VulkanDevAttr *dev_attr,const AnsiString &name,Material3DCreateConfig *cfg);
STD_MTL_NAMESPACE_END STD_MTL_NAMESPACE_END

View File

@ -27,7 +27,7 @@ public:
//virtual const CoordinateSystem2D get2DCoordinateSystem()const=0; //virtual const CoordinateSystem2D get2DCoordinateSystem()const=0;
virtual MaterialCreateInfo *Create(const GPUDeviceAttribute *dev_attr,MaterialCreateConfig *)=0; virtual MaterialCreateInfo *Create(const VulkanDevAttr *dev_attr,MaterialCreateConfig *)=0;
};//class MaterialFactory };//class MaterialFactory
@ -45,7 +45,7 @@ public:
};//class RegistryMaterialFactoryClass };//class RegistryMaterialFactoryClass
#define DEFINE_MATERIAL_FACTORY_CLASS(name,create_func,cfg_type) \ #define DEFINE_MATERIAL_FACTORY_CLASS(name,create_func,cfg_type) \
MaterialCreateInfo *Create##name(const GPUDeviceAttribute *dev_attr,cfg_type *); \ MaterialCreateInfo *Create##name(const VulkanDevAttr *dev_attr,cfg_type *); \
\ \
namespace \ namespace \
{ \ { \
@ -59,7 +59,7 @@ namespace \
return mtl_name; \ return mtl_name; \
} \ } \
\ \
MaterialCreateInfo *Create(const GPUDeviceAttribute *dev_attr,MaterialCreateConfig *cfg) override \ MaterialCreateInfo *Create(const VulkanDevAttr *dev_attr,MaterialCreateConfig *cfg) override \
{ \ { \
return create_func(dev_attr,(cfg_type *)cfg); \ return create_func(dev_attr,(cfg_type *)cfg); \
} \ } \
@ -68,16 +68,16 @@ namespace \
static RegistryMaterialFactoryClass<MaterialFactory##name> MaterialFactoryInstance_##name; \ static RegistryMaterialFactoryClass<MaterialFactory##name> MaterialFactoryInstance_##name; \
} }
MaterialCreateInfo *CreateMaterialCreateInfo(const GPUDeviceAttribute *dev_attr,const MaterialName &,MaterialCreateConfig *cfg); MaterialCreateInfo *CreateMaterialCreateInfo(const VulkanDevAttr *dev_attr,const MaterialName &,MaterialCreateConfig *cfg);
inline MaterialCreateInfo *CreateMaterialCreateInfo(const GPUDeviceAttribute *dev_attr,const char *mtl_name,MaterialCreateConfig *cfg) inline MaterialCreateInfo *CreateMaterialCreateInfo(const VulkanDevAttr *dev_attr,const char *mtl_name,MaterialCreateConfig *cfg)
{ {
MaterialName mtl_id_name(mtl_name); MaterialName mtl_id_name(mtl_name);
return CreateMaterialCreateInfo(dev_attr,mtl_id_name,cfg); return CreateMaterialCreateInfo(dev_attr,mtl_id_name,cfg);
} }
inline MaterialCreateInfo *CreateMaterialCreateInfo(const GPUDeviceAttribute *dev_attr,const AnsiString &mtl_name,MaterialCreateConfig *cfg) inline MaterialCreateInfo *CreateMaterialCreateInfo(const VulkanDevAttr *dev_attr,const AnsiString &mtl_name,MaterialCreateConfig *cfg)
{ {
MaterialName mtl_id_name(mtl_name); MaterialName mtl_id_name(mtl_name);

View File

@ -19,7 +19,7 @@ namespace hgl::graph
class ShaderCreateInfoVertex; class ShaderCreateInfoVertex;
class ShaderCreateInfoGeometry; class ShaderCreateInfoGeometry;
class ShaderCreateInfoFragment; class ShaderCreateInfoFragment;
struct GPUDeviceAttribute; struct VulkanDevAttr;
namespace mtl namespace mtl
{ {
@ -51,7 +51,7 @@ namespace hgl::graph
StdMaterial(const MaterialCreateConfig *); StdMaterial(const MaterialCreateConfig *);
virtual ~StdMaterial()=default; virtual ~StdMaterial()=default;
virtual MaterialCreateInfo *Create(const GPUDeviceAttribute *dev_attr); virtual MaterialCreateInfo *Create(const VulkanDevAttr *dev_attr);
};//class StdMaterial };//class StdMaterial
}//namespace mtl }//namespace mtl
}//namespace hgl::graph }//namespace hgl::graph

View File

@ -10,7 +10,7 @@ namespace hgl
{ {
namespace vulkan namespace vulkan
{ {
class GPUDevice; class VulkanDevice;
}//namespace vulkan }//namespace vulkan
constexpr VkFormat DefaultRenderTargetFormat=UPF_ABGR8; ///<缺省窗体绘图表面格式 constexpr VkFormat DefaultRenderTargetFormat=UPF_ABGR8; ///<缺省窗体绘图表面格式
@ -19,7 +19,7 @@ namespace hgl
{ {
protected: protected:
GPUDevice *device; VulkanDevice *device;
ObjectMap<Form *,ThemeForm> form_list; ObjectMap<Form *,ThemeForm> form_list;
@ -33,7 +33,7 @@ namespace hgl
public: public:
ThemeEngine(GPUDevice *dev){device=dev;} ThemeEngine(VulkanDevice *dev){device=dev;}
virtual ~ThemeEngine()=default; virtual ~ThemeEngine()=default;
virtual bool Init()=0; virtual bool Init()=0;

View File

@ -12,7 +12,7 @@
namespace hgl::graph namespace hgl::graph
{ {
struct GPUDeviceAttribute; struct VulkanDevAttr;
struct UBODescriptor; struct UBODescriptor;
namespace mtl namespace mtl
@ -89,7 +89,7 @@ namespace hgl::graph
bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name); bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name);
bool CreateShader(const GPUDeviceAttribute *dev_attr); bool CreateShader(const VulkanDevAttr *dev_attr);
};//class MaterialCreateInfo };//class MaterialCreateInfo
}//namespace mtl }//namespace mtl
}//namespace hgl::graph }//namespace hgl::graph

View File

@ -4,7 +4,7 @@ namespace hgl
{ {
namespace gui namespace gui
{ {
ThemeEngine *CreateDefaultThemeEngine(GPUDevice *dev) ThemeEngine *CreateDefaultThemeEngine(VulkanDevice *dev)
{ {
return(new DefaultThemeEngine(dev)); return(new DefaultThemeEngine(dev));
} }

View File

@ -12,9 +12,9 @@ namespace hgl
ThemeEngine *default_theme_engine=nullptr; ThemeEngine *default_theme_engine=nullptr;
}//namespace }//namespace
ThemeEngine *CreateDefaultThemeEngine(GPUDevice *dev); ThemeEngine *CreateDefaultThemeEngine(VulkanDevice *dev);
ThemeEngine *GetDefaultThemeEngine(GPUDevice *dev) ThemeEngine *GetDefaultThemeEngine(VulkanDevice *dev)
{ {
if(!default_theme_engine) if(!default_theme_engine)
default_theme_engine=CreateDefaultThemeEngine(dev); default_theme_engine=CreateDefaultThemeEngine(dev);
@ -22,7 +22,7 @@ namespace hgl
return default_theme_engine; return default_theme_engine;
} }
ThemeEngine *CreateThemeEngine(GPUDevice *dev) ThemeEngine *CreateThemeEngine(VulkanDevice *dev)
{ {
return GetDefaultThemeEngine(); return GetDefaultThemeEngine();
} }

View File

@ -7,7 +7,7 @@
#include"vulkan/VKPrimitiveData.h" #include"vulkan/VKPrimitiveData.h"
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
PrimitiveCreater::PrimitiveCreater(GPUDevice *dev,const VIL *v) PrimitiveCreater::PrimitiveCreater(VulkanDevice *dev,const VIL *v)
{ {
device =dev; device =dev;
vdm =nullptr; vdm =nullptr;

View File

@ -8,7 +8,7 @@ namespace hgl
{ {
namespace graph namespace graph
{ {
VertexDataManager::VertexDataManager(GPUDevice *dev,const VIL *_vil) VertexDataManager::VertexDataManager(VulkanDevice *dev,const VIL *_vil)
{ {
device=dev; device=dev;

View File

@ -399,7 +399,7 @@ namespace
} }
}//namespace }//namespace
void OutputPhysicalDeviceCaps(const GPUPhysicalDevice *pd) void OutputPhysicalDeviceCaps(const VulkanPhyDevice *pd)
{ {
const VkPhysicalDeviceProperties &pdp=pd->GetProperties(); const VkPhysicalDeviceProperties &pdp=pd->GetProperties();

View File

@ -114,7 +114,7 @@ Texture2DArray *TextureManager::CreateTexture2DArray(const uint32_t w,const uint
} }
// //
//bool GPUDevice::CommitTexture2DArray(Texture2DArray *tex,DeviceBuffer *buf,VkPipelineStageFlags destinationStage) //bool VulkanDevice::CommitTexture2DArray(Texture2DArray *tex,DeviceBuffer *buf,VkPipelineStageFlags destinationStage)
//{ //{
// if(!tex||!buf)return(false); // if(!tex||!buf)return(false);
// //
@ -123,7 +123,7 @@ Texture2DArray *TextureManager::CreateTexture2DArray(const uint32_t w,const uint
// return CopyBufferToImageArray(tex,buf,&buffer_image_copy,destinationStage); // return CopyBufferToImageArray(tex,buf,&buffer_image_copy,destinationStage);
//} //}
// //
//bool GPUDevice::CommitTexture2DArrayMipmaps(Texture2DArray *tex,DeviceBuffer *buf,const VkExtent3D &extent,uint32_t total_bytes) //bool VulkanDevice::CommitTexture2DArrayMipmaps(Texture2DArray *tex,DeviceBuffer *buf,const VkExtent3D &extent,uint32_t total_bytes)
//{ //{
// if(!tex||!buf // if(!tex||!buf
// ||extent.width*extent.height<=0) // ||extent.width*extent.height<=0)
@ -169,7 +169,7 @@ Texture2DArray *TextureManager::CreateTexture2DArray(const uint32_t w,const uint
// return CopyBufferToImageArray(tex,buf,buffer_image_copy,miplevel,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); // return CopyBufferToImageArray(tex,buf,buffer_image_copy,miplevel,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
//} //}
// //
//bool GPUDevice::ChangeTexture2DArray(Texture2DArray *tex,DeviceBuffer *buf,const ArrayList<Image2DRegion> &ir_list,const uint32_t base_layer,const uint32_t layer_count,VkPipelineStageFlags destinationStage) //bool VulkanDevice::ChangeTexture2DArray(Texture2DArray *tex,DeviceBuffer *buf,const ArrayList<Image2DRegion> &ir_list,const uint32_t base_layer,const uint32_t layer_count,VkPipelineStageFlags destinationStage)
//{ //{
// if(!tex||!buf||ir_list.GetCount()<=0) // if(!tex||!buf||ir_list.GetCount()<=0)
// return(false); // return(false);

View File

@ -148,7 +148,7 @@ bool TextureManager::CommitTextureCubeMipmaps(TextureCube *tex,DeviceBuffer *buf
return CopyBufferToImageCube(tex,buf,buffer_image_copy,miplevel,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); return CopyBufferToImageCube(tex,buf,buffer_image_copy,miplevel,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
} }
//bool GPUDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,const ArrayList<Image2DRegion> &ir_list,VkPipelineStageFlags destinationStage) //bool VulkanDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,const ArrayList<Image2DRegion> &ir_list,VkPipelineStageFlags destinationStage)
//{ //{
// if(!tex||!buf||ir_list.GetCount()<=0) // if(!tex||!buf||ir_list.GetCount()<=0)
// return(false); // return(false);
@ -188,7 +188,7 @@ bool TextureManager::CommitTextureCubeMipmaps(TextureCube *tex,DeviceBuffer *buf
// return result; // return result;
//} //}
// //
//bool GPUDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height,VkPipelineStageFlags destinationStage) //bool VulkanDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height,VkPipelineStageFlags destinationStage)
//{ //{
// if(!tex||!buf // if(!tex||!buf
// ||left<0||left+width>tex->GetWidth() // ||left<0||left+width>tex->GetWidth()
@ -205,7 +205,7 @@ bool TextureManager::CommitTextureCubeMipmaps(TextureCube *tex,DeviceBuffer *buf
// return result; // return result;
//} //}
// //
//bool GPUDevice::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size,VkPipelineStageFlags destinationStage) //bool VulkanDevice::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size,VkPipelineStageFlags destinationStage)
//{ //{
// if(!tex||!data // if(!tex||!data
// ||left<0||left+width>tex->GetWidth() // ||left<0||left+width>tex->GetWidth()

View File

@ -8,28 +8,28 @@ namespace hgl
{ {
namespace graph namespace graph
{ {
GPUArrayBuffer *GPUDevice::CreateArrayInUBO(const VkDeviceSize &item_length) VulkanArrayBuffer *VulkanDevice::CreateArrayInUBO(const VkDeviceSize &item_length)
{ {
const uint align_size=hgl_align<VkDeviceSize>(item_length,GetUBOAlign()); const uint align_size=hgl_align<VkDeviceSize>(item_length,GetUBOAlign());
auto vk_ma=new VKMemoryAllocator(this,VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,align_size); auto vk_ma=new VKMemoryAllocator(this,VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,align_size);
return(new GPUArrayBuffer(vk_ma,align_size,GetUBORange())); return(new VulkanArrayBuffer(vk_ma,align_size,GetUBORange()));
} }
GPUArrayBuffer *GPUDevice::CreateArrayInSSBO(const VkDeviceSize &item_length) VulkanArrayBuffer *VulkanDevice::CreateArrayInSSBO(const VkDeviceSize &item_length)
{ {
const uint align_size=hgl_align<VkDeviceSize>(item_length,GetSSBOAlign()); const uint align_size=hgl_align<VkDeviceSize>(item_length,GetSSBOAlign());
auto vk_ma=new VKMemoryAllocator(this,VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,align_size); auto vk_ma=new VKMemoryAllocator(this,VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,align_size);
return(new GPUArrayBuffer(vk_ma,align_size,GetSSBORange())); return(new VulkanArrayBuffer(vk_ma,align_size,GetSSBORange()));
} }
}//namespace graph }//namespace graph
namespace graph namespace graph
{ {
GPUArrayBuffer::GPUArrayBuffer(VKMemoryAllocator *va,const uint as,const uint rs) VulkanArrayBuffer::VulkanArrayBuffer(VKMemoryAllocator *va,const uint as,const uint rs)
{ {
vk_ma=va; vk_ma=va;
align_size=as; align_size=as;
@ -40,17 +40,17 @@ namespace hgl
coll=new Collection(align_size,mb); coll=new Collection(align_size,mb);
} }
GPUArrayBuffer::~GPUArrayBuffer() VulkanArrayBuffer::~VulkanArrayBuffer()
{ {
delete coll; delete coll;
} }
DeviceBuffer *GPUArrayBuffer::GetBuffer() DeviceBuffer *VulkanArrayBuffer::GetBuffer()
{ {
return vk_ma->GetBuffer(); return vk_ma->GetBuffer();
} }
uint32 GPUArrayBuffer::Alloc(const uint32 max_count) ///<预分配空间 uint32 VulkanArrayBuffer::Alloc(const uint32 max_count) ///<预分配空间
{ {
if(!coll->Alloc(max_count)) if(!coll->Alloc(max_count))
return(0); return(0);
@ -58,17 +58,17 @@ namespace hgl
return coll->GetAllocCount(); return coll->GetAllocCount();
} }
void GPUArrayBuffer::Clear() void VulkanArrayBuffer::Clear()
{ {
coll->Clear(); coll->Clear();
} }
void *GPUArrayBuffer::Map(const uint32 start,const uint32 count) void *VulkanArrayBuffer::Map(const uint32 start,const uint32 count)
{ {
return coll->Map(start,count); return coll->Map(start,count);
} }
void GPUArrayBuffer::Flush(const uint32 count) void VulkanArrayBuffer::Flush(const uint32 count)
{ {
vk_ma->Flush(count*align_size); vk_ma->Flush(count*align_size);
} }

View File

@ -2,7 +2,7 @@
#include<hgl/graph/VKDeviceAttribute.h> #include<hgl/graph/VKDeviceAttribute.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
GPUCmdBuffer::GPUCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb) VulkanCmdBuffer::VulkanCmdBuffer(const VulkanDevAttr *attr,VkCommandBuffer cb)
{ {
dev_attr=attr; dev_attr=attr;
cmd_buf=cb; cmd_buf=cb;
@ -10,12 +10,12 @@ GPUCmdBuffer::GPUCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb)
cmd_begin=false; cmd_begin=false;
} }
GPUCmdBuffer::~GPUCmdBuffer() VulkanCmdBuffer::~VulkanCmdBuffer()
{ {
vkFreeCommandBuffers(dev_attr->device,dev_attr->cmd_pool,1,&cmd_buf); vkFreeCommandBuffers(dev_attr->device,dev_attr->cmd_pool,1,&cmd_buf);
} }
bool GPUCmdBuffer::Begin() bool VulkanCmdBuffer::Begin()
{ {
CommandBufferBeginInfo cmd_buf_info; CommandBufferBeginInfo cmd_buf_info;
@ -29,19 +29,19 @@ bool GPUCmdBuffer::Begin()
} }
#ifdef _DEBUG #ifdef _DEBUG
void GPUCmdBuffer::SetDebugName(const AnsiString &object_name) void VulkanCmdBuffer::SetDebugName(const AnsiString &object_name)
{ {
if(dev_attr->debug_utils) if(dev_attr->debug_utils)
dev_attr->debug_utils->SetCommandBuffer(cmd_buf,object_name); dev_attr->debug_utils->SetCommandBuffer(cmd_buf,object_name);
} }
void GPUCmdBuffer::BeginRegion(const AnsiString &region_name,const Color4f &color) void VulkanCmdBuffer::BeginRegion(const AnsiString &region_name,const Color4f &color)
{ {
if(dev_attr->debug_utils) if(dev_attr->debug_utils)
dev_attr->debug_utils->CmdBegin(cmd_buf,region_name,color); dev_attr->debug_utils->CmdBegin(cmd_buf,region_name,color);
} }
void GPUCmdBuffer::EndRegion() void VulkanCmdBuffer::EndRegion()
{ {
if(dev_attr->debug_utils) if(dev_attr->debug_utils)
dev_attr->debug_utils->CmdEnd(cmd_buf); dev_attr->debug_utils->CmdEnd(cmd_buf);

View File

@ -8,7 +8,7 @@
#include<hgl/graph/VKRenderTarget.h> #include<hgl/graph/VKRenderTarget.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
RenderCmdBuffer::RenderCmdBuffer(const GPUDeviceAttribute *attr,VkCommandBuffer cb):GPUCmdBuffer(attr,cb) RenderCmdBuffer::RenderCmdBuffer(const VulkanDevAttr *attr,VkCommandBuffer cb):VulkanCmdBuffer(attr,cb)
{ {
cv_count=0; cv_count=0;
clear_values=nullptr; clear_values=nullptr;

View File

@ -3,17 +3,17 @@
#include<hgl/graph/VKCommandBuffer.h> #include<hgl/graph/VKCommandBuffer.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
GPUDevice::GPUDevice(GPUDeviceAttribute *da) VulkanDevice::VulkanDevice(VulkanDevAttr *da)
{ {
attr=da; attr=da;
} }
GPUDevice::~GPUDevice() VulkanDevice::~VulkanDevice()
{ {
delete attr; delete attr;
} }
VkCommandBuffer GPUDevice::CreateCommandBuffer(const AnsiString &name) VkCommandBuffer VulkanDevice::CreateCommandBuffer(const AnsiString &name)
{ {
if(!attr->cmd_pool) if(!attr->cmd_pool)
return(VK_NULL_HANDLE); return(VK_NULL_HANDLE);
@ -39,7 +39,7 @@ VkCommandBuffer GPUDevice::CreateCommandBuffer(const AnsiString &name)
return cmd_buf; return cmd_buf;
} }
RenderCmdBuffer *GPUDevice::CreateRenderCommandBuffer(const AnsiString &name) RenderCmdBuffer *VulkanDevice::CreateRenderCommandBuffer(const AnsiString &name)
{ {
VkCommandBuffer cb=CreateCommandBuffer(name); VkCommandBuffer cb=CreateCommandBuffer(name);
@ -48,7 +48,7 @@ RenderCmdBuffer *GPUDevice::CreateRenderCommandBuffer(const AnsiString &name)
return(new RenderCmdBuffer(attr,cb)); return(new RenderCmdBuffer(attr,cb));
} }
TextureCmdBuffer *GPUDevice::CreateTextureCommandBuffer(const AnsiString &name) TextureCmdBuffer *VulkanDevice::CreateTextureCommandBuffer(const AnsiString &name)
{ {
VkCommandBuffer cb=CreateCommandBuffer(name); VkCommandBuffer cb=CreateCommandBuffer(name);
@ -61,7 +61,7 @@ TextureCmdBuffer *GPUDevice::CreateTextureCommandBuffer(const AnsiString &name)
* *
* @param create_signaled * @param create_signaled
*/ */
Fence *GPUDevice::CreateFence(bool create_signaled) Fence *VulkanDevice::CreateFence(bool create_signaled)
{ {
FenceCreateInfo fenceInfo(create_signaled?VK_FENCE_CREATE_SIGNALED_BIT:0); FenceCreateInfo fenceInfo(create_signaled?VK_FENCE_CREATE_SIGNALED_BIT:0);
@ -73,7 +73,7 @@ Fence *GPUDevice::CreateFence(bool create_signaled)
return(new Fence(attr->device,fence)); return(new Fence(attr->device,fence));
} }
Semaphore *GPUDevice::CreateGPUSemaphore() Semaphore *VulkanDevice::CreateGPUSemaphore()
{ {
SemaphoreCreateInfo SemaphoreCreateInfo; SemaphoreCreateInfo SemaphoreCreateInfo;
@ -85,7 +85,7 @@ Semaphore *GPUDevice::CreateGPUSemaphore()
return(new Semaphore(attr->device,sem)); return(new Semaphore(attr->device,sem));
} }
DeviceQueue *GPUDevice::CreateQueue(const uint32_t fence_count,const bool create_signaled) DeviceQueue *VulkanDevice::CreateQueue(const uint32_t fence_count,const bool create_signaled)
{ {
if(fence_count<=0)return(nullptr); if(fence_count<=0)return(nullptr);

View File

@ -7,7 +7,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
void SavePipelineCacheData(VkDevice device,VkPipelineCache cache,const VkPhysicalDeviceProperties &pdp); void SavePipelineCacheData(VkDevice device,VkPipelineCache cache,const VkPhysicalDeviceProperties &pdp);
GPUDeviceAttribute::GPUDeviceAttribute(VulkanInstance *inst,const GPUPhysicalDevice *pd,VkSurfaceKHR s) VulkanDevAttr::VulkanDevAttr(VulkanInstance *inst,const VulkanPhyDevice *pd,VkSurfaceKHR s)
{ {
instance=inst; instance=inst;
physical_device=pd; physical_device=pd;
@ -18,7 +18,7 @@ GPUDeviceAttribute::GPUDeviceAttribute(VulkanInstance *inst,const GPUPhysicalDev
GetQueueFamily(); GetQueueFamily();
} }
GPUDeviceAttribute::~GPUDeviceAttribute() VulkanDevAttr::~VulkanDevAttr()
{ {
#ifdef _DEBUG #ifdef _DEBUG
if(debug_utils) if(debug_utils)
@ -44,12 +44,12 @@ GPUDeviceAttribute::~GPUDeviceAttribute()
instance->DestroySurface(surface); instance->DestroySurface(surface);
} }
int GPUDeviceAttribute::GetMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties) const int VulkanDevAttr::GetMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties) const
{ {
return physical_device->GetMemoryType(typeBits,properties); return physical_device->GetMemoryType(typeBits,properties);
} }
void GPUDeviceAttribute::RefreshSurfaceCaps() void VulkanDevAttr::RefreshSurfaceCaps()
{ {
VkPhysicalDevice pdevice = *physical_device; VkPhysicalDevice pdevice = *physical_device;
@ -80,7 +80,7 @@ void GPUDeviceAttribute::RefreshSurfaceCaps()
} }
} }
void GPUDeviceAttribute::GetSurfacePresentMode() void VulkanDevAttr::GetSurfacePresentMode()
{ {
uint32_t mode_count; uint32_t mode_count;
@ -95,7 +95,7 @@ void GPUDeviceAttribute::GetSurfacePresentMode()
present_modes.Clear(); present_modes.Clear();
} }
void GPUDeviceAttribute::GetQueueFamily() void VulkanDevAttr::GetQueueFamily()
{ {
VkPhysicalDevice pdevice = *physical_device; VkPhysicalDevice pdevice = *physical_device;

View File

@ -5,12 +5,12 @@
#include<iostream> #include<iostream>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
const VkDeviceSize GPUDevice::GetUBOAlign (){return attr->physical_device->GetUBOAlign();} const VkDeviceSize VulkanDevice::GetUBOAlign (){return attr->physical_device->GetUBOAlign();}
const VkDeviceSize GPUDevice::GetSSBOAlign (){return attr->physical_device->GetSSBOAlign();} const VkDeviceSize VulkanDevice::GetSSBOAlign (){return attr->physical_device->GetSSBOAlign();}
const VkDeviceSize GPUDevice::GetUBORange (){return attr->physical_device->GetUBORange();} const VkDeviceSize VulkanDevice::GetUBORange (){return attr->physical_device->GetUBORange();}
const VkDeviceSize GPUDevice::GetSSBORange (){return attr->physical_device->GetSSBORange();} const VkDeviceSize VulkanDevice::GetSSBORange (){return attr->physical_device->GetSSBORange();}
bool GPUDevice::CreateBuffer(DeviceBufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size,const void *data,SharingMode sharing_mode) bool VulkanDevice::CreateBuffer(DeviceBufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size,const void *data,SharingMode sharing_mode)
{ {
if(size<=0)return(false); if(size<=0)return(false);
@ -55,7 +55,7 @@ bool GPUDevice::CreateBuffer(DeviceBufferData *buf,VkBufferUsageFlags buf_usage,
return(false); return(false);
} }
VAB *GPUDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) VAB *VulkanDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode)
{ {
if(count==0)return(nullptr); if(count==0)return(nullptr);
@ -63,7 +63,7 @@ VAB *GPUDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,Sharin
if(stride==0) if(stride==0)
{ {
std::cerr<<"format["<<format<<"] stride length is 0,please use \"GPUDevice::CreateBuffer(VkBufferUsageFlags,VkDeviceSize,VkSharingMode)\" function."; std::cerr<<"format["<<format<<"] stride length is 0,please use \"VulkanDevice::CreateBuffer(VkBufferUsageFlags,VkDeviceSize,VkSharingMode)\" function.";
return(nullptr); return(nullptr);
} }
@ -77,7 +77,7 @@ VAB *GPUDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,Sharin
return(new VertexAttribBuffer(attr->device,buf,format,stride,count)); return(new VertexAttribBuffer(attr->device,buf,format,stride,count));
} }
const IndexType GPUDevice::ChooseIndexType(const VkDeviceSize &vertex_count)const const IndexType VulkanDevice::ChooseIndexType(const VkDeviceSize &vertex_count)const
{ {
if(vertex_count<=0)return(IndexType::ERR); if(vertex_count<=0)return(IndexType::ERR);
@ -88,7 +88,7 @@ const IndexType GPUDevice::ChooseIndexType(const VkDeviceSize &vertex_count)cons
return IndexType::ERR; return IndexType::ERR;
} }
const bool GPUDevice::CheckIndexType(const IndexType it,const VkDeviceSize &vertex_count)const const bool VulkanDevice::CheckIndexType(const IndexType it,const VkDeviceSize &vertex_count)const
{ {
if(vertex_count<=0)return(false); if(vertex_count<=0)return(false);
@ -101,7 +101,7 @@ const bool GPUDevice::CheckIndexType(const IndexType it,const VkDeviceSize &vert
return(false); return(false);
} }
IndexBuffer *GPUDevice::CreateIBO(IndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode) IndexBuffer *VulkanDevice::CreateIBO(IndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode)
{ {
if(count==0)return(nullptr); if(count==0)return(nullptr);
@ -122,7 +122,7 @@ IndexBuffer *GPUDevice::CreateIBO(IndexType index_type,uint32_t count,const void
return(new IndexBuffer(attr->device,buf,index_type,count)); return(new IndexBuffer(attr->device,buf,index_type,count));
} }
DeviceBuffer *GPUDevice::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size,const void *data,SharingMode sharing_mode) DeviceBuffer *VulkanDevice::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize range,VkDeviceSize size,const void *data,SharingMode sharing_mode)
{ {
if(size<=0)return(nullptr); if(size<=0)return(nullptr);

View File

@ -14,7 +14,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
VkPipelineCache CreatePipelineCache(VkDevice device,const VkPhysicalDeviceProperties &); VkPipelineCache CreatePipelineCache(VkDevice device,const VkPhysicalDeviceProperties &);
void SetShaderCompilerVersion(const GPUPhysicalDevice *); void SetShaderCompilerVersion(const VulkanPhyDevice *);
#ifdef _DEBUG #ifdef _DEBUG
DebugUtils *CreateDebugUtils(VkDevice); DebugUtils *CreateDebugUtils(VkDevice);
@ -47,7 +47,7 @@ void LogSurfaceFormat(const VkSurfaceFormatKHR *surface_format_list,const uint32
namespace namespace
{ {
void SetDeviceExtension(CharPointerList *ext_list,const GPUPhysicalDevice *physical_device,const VulkanHardwareRequirement &require) void SetDeviceExtension(CharPointerList *ext_list,const VulkanPhyDevice *physical_device,const VulkanHardwareRequirement &require)
{ {
ext_list->Add(VK_KHR_SWAPCHAIN_EXTENSION_NAME); ext_list->Add(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
@ -117,7 +117,7 @@ namespace
#undef FEATURE_COPY #undef FEATURE_COPY
} }
void GetDeviceQueue(GPUDeviceAttribute *attr) void GetDeviceQueue(VulkanDevAttr *attr)
{ {
vkGetDeviceQueue(attr->device,attr->graphics_family,0,&attr->graphics_queue); vkGetDeviceQueue(attr->device,attr->graphics_family,0,&attr->graphics_queue);
@ -201,7 +201,7 @@ constexpr size_t VK_DRIVER_ID_RANGE_SIZE=VK_DRIVER_ID_END_RANGE-VK_DRIVER_ID_BEG
#endif//VK_DRIVER_ID_RANGE_SIZE #endif//VK_DRIVER_ID_RANGE_SIZE
#ifdef _DEBUG #ifdef _DEBUG
void OutputPhysicalDeviceCaps(const GPUPhysicalDevice *); void OutputPhysicalDeviceCaps(const VulkanPhyDevice *);
#endif//_DEBUG #endif//_DEBUG
VkDevice VulkanDeviceCreater::CreateDevice(const uint32_t graphics_family) VkDevice VulkanDeviceCreater::CreateDevice(const uint32_t graphics_family)
@ -293,11 +293,11 @@ void VulkanDeviceCreater::ChooseSurfaceFormat()
surface_format.colorSpace=VK_COLOR_SPACE_SRGB_NONLINEAR_KHR; surface_format.colorSpace=VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
} }
GPUDevice *VulkanDeviceCreater::CreateRenderDevice() VulkanDevice *VulkanDeviceCreater::CreateRenderDevice()
{ {
GPUDeviceAttribute *device_attr=new GPUDeviceAttribute(instance,physical_device,surface); VulkanDevAttr *device_attr=new VulkanDevAttr(instance,physical_device,surface);
AutoDelete<GPUDeviceAttribute> auto_delete(device_attr); AutoDelete<VulkanDevAttr> auto_delete(device_attr);
if(device_attr->graphics_family==ERROR_FAMILY_INDEX) if(device_attr->graphics_family==ERROR_FAMILY_INDEX)
return(nullptr); return(nullptr);
@ -359,7 +359,7 @@ GPUDevice *VulkanDeviceCreater::CreateRenderDevice()
} }
#endif//_DEBUG #endif//_DEBUG
return(new GPUDevice(device_attr)); return(new VulkanDevice(device_attr));
} }
VulkanDeviceCreater::VulkanDeviceCreater( VulkanInstance *vi, VulkanDeviceCreater::VulkanDeviceCreater( VulkanInstance *vi,
@ -469,7 +469,7 @@ bool VulkanDeviceCreater::RequirementCheck()
return(true); return(true);
} }
GPUDevice *VulkanDeviceCreater::Create() VulkanDevice *VulkanDeviceCreater::Create()
{ {
if(!instance||!window) if(!instance||!window)
return(nullptr); return(nullptr);
@ -494,7 +494,7 @@ GPUDevice *VulkanDeviceCreater::Create()
extent.width =window->GetWidth(); extent.width =window->GetWidth();
extent.height =window->GetHeight(); extent.height =window->GetHeight();
GPUDevice *device=CreateRenderDevice(); VulkanDevice *device=CreateRenderDevice();
if(!device) if(!device)
{ {

View File

@ -38,7 +38,7 @@ namespace
} }
}//namespace }//namespace
MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorManager *desc_manager,const PipelineLayoutData *pld,const DescriptorSetType &desc_set_type) MaterialParameters *VulkanDevice::CreateMP(const MaterialDescriptorManager *desc_manager,const PipelineLayoutData *pld,const DescriptorSetType &desc_set_type)
{ {
if(!desc_manager||!pld)return(nullptr); if(!desc_manager||!pld)return(nullptr);
RANGE_CHECK_RETURN_NULLPTR(desc_set_type) RANGE_CHECK_RETURN_NULLPTR(desc_set_type)

View File

@ -1,7 +1,7 @@
#include<hgl/graph/VKDevice.h> #include<hgl/graph/VKDevice.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
DeviceMemory *GPUDevice::CreateMemory(VkImage image,const uint32_t flag) DeviceMemory *VulkanDevice::CreateMemory(VkImage image,const uint32_t flag)
{ {
VkMemoryRequirements memReqs; VkMemoryRequirements memReqs;

View File

@ -1,7 +1,7 @@
#include<hgl/graph/VKDevice.h> #include<hgl/graph/VKDevice.h>
#include<hgl/graph/VKSampler.h> #include<hgl/graph/VKSampler.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
Sampler *GPUDevice::CreateSampler(VkSamplerCreateInfo *sci) Sampler *VulkanDevice::CreateSampler(VkSamplerCreateInfo *sci)
{ {
static VkSamplerCreateInfo default_sampler_create_info= static VkSamplerCreateInfo default_sampler_create_info=
{ {
@ -38,7 +38,7 @@ Sampler *GPUDevice::CreateSampler(VkSamplerCreateInfo *sci)
return(new Sampler(attr->device,sampler)); return(new Sampler(attr->device,sampler));
} }
Sampler *GPUDevice::CreateSampler(Texture *tex) Sampler *VulkanDevice::CreateSampler(Texture *tex)
{ {
VkSamplerCreateInfo sci= VkSamplerCreateInfo sci=
{ {

View File

@ -3,7 +3,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
bool GPUDevice::CreateIndirectCommandBuffer(DeviceBufferData *buf,const uint32_t cmd_count,const uint32_t cmd_size,SharingMode sharing_mode) bool VulkanDevice::CreateIndirectCommandBuffer(DeviceBufferData *buf,const uint32_t cmd_count,const uint32_t cmd_size,SharingMode sharing_mode)
{ {
const uint32_t size=cmd_count*cmd_size; const uint32_t size=cmd_count*cmd_size;
@ -12,7 +12,7 @@ bool GPUDevice::CreateIndirectCommandBuffer(DeviceBufferData *buf,const uint32_t
return CreateBuffer(buf,VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,size,size,nullptr,sharing_mode); return CreateBuffer(buf,VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,size,size,nullptr,sharing_mode);
} }
IndirectDrawBuffer *GPUDevice::CreateIndirectDrawBuffer(const uint32_t cmd_count,SharingMode sm) IndirectDrawBuffer *VulkanDevice::CreateIndirectDrawBuffer(const uint32_t cmd_count,SharingMode sm)
{ {
DeviceBufferData buf; DeviceBufferData buf;
@ -22,7 +22,7 @@ IndirectDrawBuffer *GPUDevice::CreateIndirectDrawBuffer(const uint32_t cmd_count
return(new IndirectDrawBuffer(attr->device,buf,cmd_count)); return(new IndirectDrawBuffer(attr->device,buf,cmd_count));
} }
IndirectDrawIndexedBuffer *GPUDevice::CreateIndirectDrawIndexedBuffer(const uint32_t cmd_count,SharingMode sm) IndirectDrawIndexedBuffer *VulkanDevice::CreateIndirectDrawIndexedBuffer(const uint32_t cmd_count,SharingMode sm)
{ {
DeviceBufferData buf; DeviceBufferData buf;
@ -32,7 +32,7 @@ IndirectDrawIndexedBuffer *GPUDevice::CreateIndirectDrawIndexedBuffer(const uint
return(new IndirectDrawIndexedBuffer(attr->device,buf,cmd_count)); return(new IndirectDrawIndexedBuffer(attr->device,buf,cmd_count));
} }
IndirectDispatchBuffer *GPUDevice::CreateIndirectDispatchBuffer(const uint32_t cmd_count,SharingMode sm) IndirectDispatchBuffer *VulkanDevice::CreateIndirectDispatchBuffer(const uint32_t cmd_count,SharingMode sm)
{ {
DeviceBufferData buf; DeviceBufferData buf;

View File

@ -5,7 +5,7 @@
#include<iostream> #include<iostream>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
GPUDevice *CreateRenderDevice(VkInstance,const GPUPhysicalDevice *,Window *); VulkanDevice *CreateRenderDevice(VkInstance,const VulkanPhyDevice *,Window *);
void CheckInstanceLayer(CharPointerList &layer_list,CreateInstanceLayerInfo *layer_info); void CheckInstanceLayer(CharPointerList &layer_list,CreateInstanceLayerInfo *layer_info);
@ -80,7 +80,7 @@ VulkanInstance::VulkanInstance(VkInstance i,VKDebugOut *out)
vkEnumeratePhysicalDevices(inst, &gpu_count,pd_list); vkEnumeratePhysicalDevices(inst, &gpu_count,pd_list);
for(uint32_t i=0;i<gpu_count;i++) for(uint32_t i=0;i<gpu_count;i++)
physical_devices.Add(new GPUPhysicalDevice(inst,pd_list[i])); physical_devices.Add(new VulkanPhyDevice(inst,pd_list[i]));
delete[] pd_list; delete[] pd_list;
} }
@ -96,9 +96,9 @@ VulkanInstance::~VulkanInstance()
vkDestroyInstance(inst,nullptr); vkDestroyInstance(inst,nullptr);
} }
const GPUPhysicalDevice *VulkanInstance::GetDevice(VkPhysicalDeviceType type)const const VulkanPhyDevice *VulkanInstance::GetDevice(VkPhysicalDeviceType type)const
{ {
for(GPUPhysicalDevice *pd:physical_devices) for(VulkanPhyDevice *pd:physical_devices)
if(pd->GetDeviceType()==type) if(pd->GetDeviceType()==type)
return(pd); return(pd);

View File

@ -2,7 +2,7 @@
#include<hgl/graph/VKMemory.h> #include<hgl/graph/VKMemory.h>
#include<hgl/graph/VKPhysicalDevice.h> #include<hgl/graph/VKPhysicalDevice.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
DeviceMemory *GPUDevice::CreateMemory(const VkMemoryRequirements &req,uint32_t properties) DeviceMemory *VulkanDevice::CreateMemory(const VkMemoryRequirements &req,uint32_t properties)
{ {
const int index=attr->physical_device->GetMemoryType(req.memoryTypeBits,properties); const int index=attr->physical_device->GetMemoryType(req.memoryTypeBits,properties);

View File

@ -4,7 +4,7 @@
#include<hgl/graph/VKBuffer.h> #include<hgl/graph/VKBuffer.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
VKMemoryAllocator::VKMemoryAllocator(GPUDevice *d,const uint32_t flags,const VkDeviceSize r) VKMemoryAllocator::VKMemoryAllocator(VulkanDevice *d,const uint32_t flags,const VkDeviceSize r)
{ {
device=d; device=d;
buffer_usage_flag_bits=flags; buffer_usage_flag_bits=flags;

View File

@ -55,7 +55,7 @@ namespace
} }
} }
GPUPhysicalDevice::GPUPhysicalDevice(VkInstance inst,VkPhysicalDevice pd) VulkanPhyDevice::VulkanPhyDevice(VkInstance inst,VkPhysicalDevice pd)
{ {
instance=inst; instance=inst;
physical_device=pd; physical_device=pd;
@ -179,7 +179,7 @@ GPUPhysicalDevice::GPUPhysicalDevice(VkInstance inst,VkPhysicalDevice pd)
dynamic_state=CheckExtensionSupport(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME); dynamic_state=CheckExtensionSupport(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME);
} }
const bool GPUPhysicalDevice::GetLayerVersion(const AnsiString &name,uint32_t &spec,uint32_t &impl)const const bool VulkanPhyDevice::GetLayerVersion(const AnsiString &name,uint32_t &spec,uint32_t &impl)const
{ {
for(const VkLayerProperties &lp:layer_properties) for(const VkLayerProperties &lp:layer_properties)
{ {
@ -195,7 +195,7 @@ const bool GPUPhysicalDevice::GetLayerVersion(const AnsiString &name,uint32_t &s
return(false); return(false);
} }
const uint32_t GPUPhysicalDevice::GetExtensionVersion(const AnsiString &name)const const uint32_t VulkanPhyDevice::GetExtensionVersion(const AnsiString &name)const
{ {
for(const VkExtensionProperties &ep:extension_properties) for(const VkExtensionProperties &ep:extension_properties)
{ {
@ -206,7 +206,7 @@ const uint32_t GPUPhysicalDevice::GetExtensionVersion(const AnsiString &name)con
return 0; return 0;
} }
const bool GPUPhysicalDevice::CheckExtensionSupport(const AnsiString &name)const const bool VulkanPhyDevice::CheckExtensionSupport(const AnsiString &name)const
{ {
for(const VkExtensionProperties &ep:extension_properties) for(const VkExtensionProperties &ep:extension_properties)
{ {
@ -217,7 +217,7 @@ const bool GPUPhysicalDevice::CheckExtensionSupport(const AnsiString &name)const
return(false); return(false);
} }
const int GPUPhysicalDevice::GetMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties)const const int VulkanPhyDevice::GetMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties)const
{ {
// Search memtypes to find first index with those properties // Search memtypes to find first index with those properties
for(uint32_t i=0; i<memory_properties.memoryTypeCount; i++) for(uint32_t i=0; i<memory_properties.memoryTypeCount; i++)
@ -233,7 +233,7 @@ const int GPUPhysicalDevice::GetMemoryType(uint32_t typeBits,VkMemoryPropertyFla
return -1; return -1;
} }
VkFormat GPUPhysicalDevice::GetDepthFormat(bool lower_to_high)const VkFormat VulkanPhyDevice::GetDepthFormat(bool lower_to_high)const
{ {
constexpr VkFormat depthFormats[] = constexpr VkFormat depthFormats[] =
{ {
@ -261,7 +261,7 @@ VkFormat GPUPhysicalDevice::GetDepthFormat(bool lower_to_high)const
return result; return result;
} }
VkFormat GPUPhysicalDevice::GetDepthStencilFormat(bool lower_to_high)const VkFormat VulkanPhyDevice::GetDepthStencilFormat(bool lower_to_high)const
{ {
constexpr VkFormat depthStencilFormats[] = constexpr VkFormat depthStencilFormats[] =
{ {

View File

@ -4,7 +4,7 @@
#include<hgl/graph/VKMaterialDescriptorManager.h> #include<hgl/graph/VKMaterialDescriptorManager.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
PipelineLayoutData *GPUDevice::CreatePipelineLayoutData(const MaterialDescriptorManager *desc_manager) PipelineLayoutData *VulkanDevice::CreatePipelineLayoutData(const MaterialDescriptorManager *desc_manager)
{ {
PipelineLayoutData *pld=hgl_zero_new<PipelineLayoutData>(); PipelineLayoutData *pld=hgl_zero_new<PipelineLayoutData>();

View File

@ -114,11 +114,11 @@ void PrimitiveData::UnmapAll()
namespace namespace
{ {
/** /**
* 使GPUDevice创建VAB/IBO, * 使VulkanDevice创建VAB/IBO,
*/ */
class PrimitiveDataPrivateBuffer:public PrimitiveData class PrimitiveDataPrivateBuffer:public PrimitiveData
{ {
GPUDevice *device; VulkanDevice *device;
public: public:
@ -129,7 +129,7 @@ namespace
public: public:
PrimitiveDataPrivateBuffer(GPUDevice *dev,const VIL *_vil,const uint32_t vc):PrimitiveData(_vil,vc) PrimitiveDataPrivateBuffer(VulkanDevice *dev,const VIL *_vil,const uint32_t vc):PrimitiveData(_vil,vc)
{ {
device=dev; device=dev;
} }
@ -230,7 +230,7 @@ namespace
};//class PrimitiveDataVDM:public PrimitiveData };//class PrimitiveDataVDM:public PrimitiveData
}//namespace }//namespace
PrimitiveData *CreatePrimitiveData(GPUDevice *dev,const VIL *_vil,const uint32_t vc) PrimitiveData *CreatePrimitiveData(VulkanDevice *dev,const VIL *_vil,const uint32_t vc)
{ {
if(!dev)return(nullptr); if(!dev)return(nullptr);
if(!_vil)return(nullptr); if(!_vil)return(nullptr);

View File

@ -68,6 +68,6 @@ public:
};//class PrimitiveData };//class PrimitiveData
PrimitiveData *CreatePrimitiveData(GPUDevice *dev,const VIL *_vil,const uint32_t vc); PrimitiveData *CreatePrimitiveData(VulkanDevice *dev,const VIL *_vil,const uint32_t vc);
PrimitiveData *CreatePrimitiveData(VertexDataManager *vdm,const uint32_t vc); PrimitiveData *CreatePrimitiveData(VertexDataManager *vdm,const uint32_t vc);
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@ -96,7 +96,7 @@ bool DeviceQueue::Submit(const VkCommandBuffer *cmd_buf,const uint32_t cb_count,
return(result==VK_SUCCESS); return(result==VK_SUCCESS);
} }
bool DeviceQueue::Submit(GPUCmdBuffer *cmd_buf,Semaphore *wait_sem,Semaphore *complete_sem) bool DeviceQueue::Submit(VulkanCmdBuffer *cmd_buf,Semaphore *wait_sem,Semaphore *complete_sem)
{ {
if(cmd_buf->IsBegin()) if(cmd_buf->IsBegin())
cmd_buf->End(); cmd_buf->End();

View File

@ -183,20 +183,20 @@ Material *RenderResource::CreateMaterial(const mtl::MaterialCreateInfo *mci)
namespace mtl namespace mtl
{ {
MaterialCreateInfo *LoadMaterialFromFile(const GPUDeviceAttribute *dev_attr,const AnsiString &, Material2DCreateConfig *); MaterialCreateInfo *LoadMaterialFromFile(const VulkanDevAttr *dev_attr,const AnsiString &, Material2DCreateConfig *);
MaterialCreateInfo *LoadMaterialFromFile(const GPUDeviceAttribute *dev_attr,const AnsiString &, Material3DCreateConfig *); MaterialCreateInfo *LoadMaterialFromFile(const VulkanDevAttr *dev_attr,const AnsiString &, Material3DCreateConfig *);
} }
Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material2DCreateConfig *cfg) Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material2DCreateConfig *cfg)
{ {
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(device->GetDeviceAttribute(),mtl_name,cfg); AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(device->GetDevAttr(),mtl_name,cfg);
return this->CreateMaterial(mci); return this->CreateMaterial(mci);
} }
Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material3DCreateConfig *cfg) Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material3DCreateConfig *cfg)
{ {
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(device->GetDeviceAttribute(),mtl_name,cfg); AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(device->GetDevAttr(),mtl_name,cfg);
return this->CreateMaterial(mci); return this->CreateMaterial(mci);
} }

View File

@ -6,7 +6,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
GPUDevice *IRenderTarget::GetDevice ()const{return render_framework->GetDevice();} VulkanDevice *IRenderTarget::GetDevice ()const{return render_framework->GetDevice();}
VkDevice IRenderTarget::GetVkDevice()const{return render_framework->GetDevice()->GetDevice();} VkDevice IRenderTarget::GetVkDevice()const{return render_framework->GetDevice()->GetDevice();}
IRenderTarget::IRenderTarget(RenderFramework *rf,const VkExtent2D &ext):desc_binding(DescriptorSetType::RenderTarget) IRenderTarget::IRenderTarget(RenderFramework *rf,const VkExtent2D &ext):desc_binding(DescriptorSetType::RenderTarget)

View File

@ -14,7 +14,7 @@ public:
} }
};//struct ShaderModuleCreateInfo };//struct ShaderModuleCreateInfo
ShaderModule *GPUDevice::CreateShaderModule(VkShaderStageFlagBits shader_stage_flag_bit,const uint32_t *spv_data,const size_t spv_size) ShaderModule *VulkanDevice::CreateShaderModule(VkShaderStageFlagBits shader_stage_flag_bit,const uint32_t *spv_data,const size_t spv_size)
{ {
if(!spv_data||spv_size<4)return(nullptr); if(!spv_data||spv_size<4)return(nullptr);

View File

@ -69,7 +69,7 @@ TileData *TextureManager::CreateTileData(const VkFormat format,const uint width,
if(width<=0||height<=0||count<=0) if(width<=0||height<=0||count<=0)
return(nullptr); return(nullptr);
const uint32_t max_2d_texture=GetPhysicalDevice()->GetMaxImage2D(); const uint32_t max_2d_texture=GetPhyDevice()->GetMaxImage2D();
uint tex_width,tex_height; uint tex_width,tex_height;

View File

@ -7,7 +7,7 @@ namespace hgl
{ {
namespace graph namespace graph
{ {
TextPrimitive::TextPrimitive(GPUDevice *dev,Material *m,uint mc):Primitive(mc) TextPrimitive::TextPrimitive(VulkanDevice *dev,Material *m,uint mc):Primitive(mc)
{ {
device=dev; device=dev;
mtl=m; mtl=m;

View File

@ -10,7 +10,7 @@ namespace hgl
{ {
namespace graph namespace graph
{ {
TextRender::TextRender(GPUDevice *dev,FontSource *fs) TextRender::TextRender(VulkanDevice *dev,FontSource *fs)
{ {
device=dev; device=dev;
db=new RenderResource(device); db=new RenderResource(device);
@ -209,7 +209,7 @@ namespace hgl
return AcquireFontSource(fnt); return AcquireFontSource(fnt);
} }
TextRender *CreateTextRender(GPUDevice *dev,FontSource *fs,RenderPass *rp,DeviceBuffer *ubo_camera_info,int limit) TextRender *CreateTextRender(VulkanDevice *dev,FontSource *fs,RenderPass *rp,DeviceBuffer *ubo_camera_info,int limit)
{ {
if(!dev||!rp||!ubo_camera_info) if(!dev||!rp||!ubo_camera_info)
return(nullptr); return(nullptr);

View File

@ -4,11 +4,11 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
GPUDevice * GraphModule::GetDevice () {return render_framework->GetDevice();} VulkanDevice * GraphModule::GetDevice () {return render_framework->GetDevice();}
VkDevice GraphModule::GetVkDevice ()const {return render_framework->GetVkDevice();} VkDevice GraphModule::GetVkDevice ()const {return render_framework->GetVkDevice();}
const GPUPhysicalDevice * GraphModule::GetPhysicalDevice ()const {return render_framework->GetPhysicalDevice();} const VulkanPhyDevice * GraphModule::GetPhyDevice ()const {return render_framework->GetPhyDevice();}
GPUDeviceAttribute *GraphModule::GetDeviceAttribute ()const {return render_framework->GetDeviceAttribute();} VulkanDevAttr *GraphModule::GetDevAttr ()const {return render_framework->GetDevAttr();}
VkPipelineCache GraphModule::GetPipelineCache ()const {return render_framework->GetDeviceAttribute()->pipeline_cache;} VkPipelineCache GraphModule::GetPipelineCache ()const {return render_framework->GetDevAttr()->pipeline_cache;}
VK_NAMESPACE_END VK_NAMESPACE_END

View File

@ -4,7 +4,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
GPUDevice *GraphModuleManager::GetDevice()const VulkanDevice *GraphModuleManager::GetDevice()const
{ {
return render_framework->GetDevice(); return render_framework->GetDevice();
} }

View File

@ -292,7 +292,7 @@ RenderPass *RenderPassManager::CreateRenderPass(const ArrayList<VkAttachmentDesc
RenderPass *RenderPassManager::AcquireRenderPass(const RenderbufferInfo *rbi,const uint subpass_count) RenderPass *RenderPassManager::AcquireRenderPass(const RenderbufferInfo *rbi,const uint subpass_count)
{ {
{ {
const auto *phy_dev=GetPhysicalDevice(); const auto *phy_dev=GetPhyDevice();
for(const VkFormat &fmt:rbi->GetColorFormatList()) for(const VkFormat &fmt:rbi->GetColorFormatList())
if(!phy_dev->IsColorAttachmentOptimal(fmt)) if(!phy_dev->IsColorAttachmentOptimal(fmt))

View File

@ -46,7 +46,7 @@ RenderTarget *RenderTargetManager::CreateRT(const FramebufferInfo *fbi,RenderPas
{ {
RenderTargetData *rtd=new RenderTargetData{}; RenderTargetData *rtd=new RenderTargetData{};
GPUDevice *dev=GetDevice(); VulkanDevice *dev=GetDevice();
rtd->fbo =fb; rtd->fbo =fb;
rtd->queue =dev->CreateQueue(fence_count,false); rtd->queue =dev->CreateQueue(fence_count,false);

View File

@ -22,7 +22,7 @@ namespace
// return swapchain_extent; // return swapchain_extent;
//} //}
VkSwapchainKHR CreateVulkanSwapChain(const GPUDeviceAttribute *dev_attr) VkSwapchainKHR CreateVulkanSwapChain(const VulkanDevAttr *dev_attr)
{ {
VkSwapchainCreateInfoKHR swapchain_ci; VkSwapchainCreateInfoKHR swapchain_ci;
@ -111,8 +111,8 @@ bool SwapchainModule::CreateSwapchainFBO(Swapchain *swapchain)
swapchain->sc_image=hgl_zero_new<SwapchainImage>(swapchain->image_count); swapchain->sc_image=hgl_zero_new<SwapchainImage>(swapchain->image_count);
AnsiString num_string; AnsiString num_string;
GPUDevice *device=GetDevice(); VulkanDevice *device=GetDevice();
auto *dev_attr=GetDeviceAttribute(); auto *dev_attr=GetDevAttr();
for(uint32_t i=0;i<swapchain->image_count;i++) for(uint32_t i=0;i<swapchain->image_count;i++)
{ {
@ -150,7 +150,7 @@ bool SwapchainModule::CreateSwapchainFBO(Swapchain *swapchain)
Swapchain *SwapchainModule::CreateSwapchain() Swapchain *SwapchainModule::CreateSwapchain()
{ {
auto *dev_attr=GetDeviceAttribute(); auto *dev_attr=GetDevAttr();
if(!dev_attr) if(!dev_attr)
return(nullptr); return(nullptr);
@ -197,7 +197,7 @@ bool SwapchainModule::CreateSwapchainRenderTarget()
if(!swapchain) if(!swapchain)
return(false); return(false);
GPUDevice *device=GetDevice(); VulkanDevice *device=GetDevice();
SwapchainRenderTargetData *rtd_list=new SwapchainRenderTargetData[swapchain->image_count]; SwapchainRenderTargetData *rtd_list=new SwapchainRenderTargetData[swapchain->image_count];
SwapchainRenderTargetData *rtd=rtd_list; SwapchainRenderTargetData *rtd=rtd_list;
@ -241,7 +241,7 @@ SwapchainModule::SwapchainModule(RenderFramework *rf,TextureManager *tm,RenderTa
rt_manager=rtm; rt_manager=rtm;
rp_manager=rpm; rp_manager=rpm;
auto *dev_attr=GetDeviceAttribute(); auto *dev_attr=GetDevAttr();
SwapchainRenderbufferInfo rbi(dev_attr->surface_format.format,dev_attr->physical_device->GetDepthFormat()); SwapchainRenderbufferInfo rbi(dev_attr->surface_format.format,dev_attr->physical_device->GetDepthFormat());
@ -262,7 +262,7 @@ void SwapchainModule::OnResize(const VkExtent2D &extent)
{ {
SAFE_CLEAR(sc_render_target) SAFE_CLEAR(sc_render_target)
GPUDeviceAttribute *dev_attr=GetDeviceAttribute(); VulkanDevAttr *dev_attr=GetDevAttr();
dev_attr->RefreshSurfaceCaps(); dev_attr->RefreshSurfaceCaps();

View File

@ -6,13 +6,13 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
const VkFormatProperties TextureManager::GetFormatProperties(const VkFormat format) const const VkFormatProperties TextureManager::GetFormatProperties(const VkFormat format) const
{ {
return GetPhysicalDevice()->GetFormatProperties(format); return GetPhyDevice()->GetFormatProperties(format);
} }
GRAPH_MODULE_CONSTRUCT(TextureManager) GRAPH_MODULE_CONSTRUCT(TextureManager)
{ {
auto dev=GetDevice(); auto dev=GetDevice();
auto phy_device=GetPhysicalDevice(); auto phy_device=GetPhyDevice();
texture_cmd_buf=dev->CreateTextureCommandBuffer(phy_device->GetDeviceName()+AnsiString(":TexCmdBuffer")); texture_cmd_buf=dev->CreateTextureCommandBuffer(phy_device->GetDeviceName()+AnsiString(":TexCmdBuffer"));

View File

@ -72,7 +72,7 @@ const int RenderNode::compare(const RenderNode &other)const
return -1; return -1;
} }
MaterialRenderList::MaterialRenderList(GPUDevice *d,bool l2w,const RenderPipelineIndex &rpi) MaterialRenderList::MaterialRenderList(VulkanDevice *d,bool l2w,const RenderPipelineIndex &rpi)
{ {
device=d; device=d;
cmd_buf=nullptr; cmd_buf=nullptr;

View File

@ -9,7 +9,7 @@
#include<hgl/graph/mtl/UBOCommon.h> #include<hgl/graph/mtl/UBOCommon.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
RenderAssignBuffer::RenderAssignBuffer(GPUDevice *dev,Material *mtl) RenderAssignBuffer::RenderAssignBuffer(VulkanDevice *dev,Material *mtl)
{ {
hgl_zero(*this); hgl_zero(*this);

View File

@ -41,7 +41,7 @@ class RenderAssignBuffer
private: private:
GPUDevice *device; VulkanDevice *device;
Material *material; Material *material;
@ -80,7 +80,7 @@ public:
public: public:
RenderAssignBuffer(GPUDevice *dev,Material *); RenderAssignBuffer(VulkanDevice *dev,Material *);
~RenderAssignBuffer(){Clear();} ~RenderAssignBuffer(){Clear();}
//下一代将MaterialInstanceSets使用提前化这样不用每一次绘制都重新写入MI DATA可以提升效率。 //下一代将MaterialInstanceSets使用提前化这样不用每一次绘制都重新写入MI DATA可以提升效率。

Some files were not shown because too many files have changed in this diff Show More