a lot of rename
This commit is contained in:
parent
6dae81ac93
commit
a20afeba9e
@ -37,9 +37,9 @@ private:
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::Buffer * ubo_color_material =nullptr;
|
||||
vulkan::Buffer * ubo_line_config =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color_material =nullptr;
|
||||
vulkan::GPUBuffer * ubo_line_config =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
@ -61,9 +61,9 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
vulkan::Buffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
vulkan::GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
{
|
||||
vulkan::Buffer *ubo=db->CreateUBO(size,data);
|
||||
vulkan::GPUBuffer *ubo=db->CreateUBO(size,data);
|
||||
|
||||
if(!ubo)
|
||||
return(nullptr);
|
||||
|
@ -40,7 +40,7 @@ private:
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Pipeline * pipeline_solid =nullptr;
|
||||
|
||||
vulkan::Buffer * ubo_atomsphere =nullptr;
|
||||
vulkan::GPUBuffer * ubo_atomsphere =nullptr;
|
||||
AtmosphereData atomsphere_data;
|
||||
|
||||
vulkan::Renderable * ro_sphere =nullptr;
|
||||
|
@ -16,7 +16,7 @@ using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
|
||||
Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename);
|
||||
VK_NAMESPACE_END
|
||||
|
||||
constexpr uint32_t SCREEN_WIDTH=512;
|
||||
|
@ -28,8 +28,8 @@ private:
|
||||
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::Buffer * ubo_color =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
|
@ -42,7 +42,7 @@ private:
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Renderable * render_obj =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
|
@ -28,7 +28,7 @@ private:
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
|
@ -35,8 +35,8 @@ private:
|
||||
*ro_circle =nullptr,
|
||||
*ro_round_rectangle =nullptr;
|
||||
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::Buffer * ubo_color_material =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color_material =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
@ -92,9 +92,9 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
vulkan::Buffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
vulkan::GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
{
|
||||
vulkan::Buffer *ubo=db->CreateUBO(size,data);
|
||||
vulkan::GPUBuffer *ubo=db->CreateUBO(size,data);
|
||||
|
||||
if(!ubo)
|
||||
return(nullptr);
|
||||
|
@ -16,7 +16,7 @@ class TestApp:public CameraAppFramework
|
||||
{
|
||||
Color4f color;
|
||||
|
||||
vulkan::Buffer *ubo_color=nullptr;
|
||||
vulkan::GPUBuffer *ubo_color=nullptr;
|
||||
|
||||
private:
|
||||
|
||||
|
@ -10,7 +10,7 @@ using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
|
||||
Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename);
|
||||
VK_NAMESPACE_END
|
||||
|
||||
constexpr uint32_t SCREEN_SIZE=512;
|
||||
|
@ -30,7 +30,7 @@ private:
|
||||
vulkan::Pipeline * pipeline_line =nullptr;
|
||||
vulkan::Pipeline * pipeline_solid =nullptr;
|
||||
|
||||
vulkan::Buffer * ubo_color =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color =nullptr;
|
||||
|
||||
vulkan::Renderable *ro_plane_grid,
|
||||
*ro_cube,
|
||||
|
@ -16,7 +16,7 @@ class TestApp:public CameraAppFramework
|
||||
Camera cam;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
};
|
||||
|
||||
struct:public RenderObject
|
||||
|
@ -10,7 +10,7 @@ using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
|
||||
Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename);
|
||||
VK_NAMESPACE_END
|
||||
|
||||
constexpr uint32_t SCREEN_SIZE=512;
|
||||
@ -41,7 +41,7 @@ private:
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Renderable * render_obj =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
|
@ -63,8 +63,8 @@ int main(int,char **)
|
||||
{
|
||||
Window * win =nullptr;
|
||||
vulkan::Instance * inst =nullptr;
|
||||
vulkan::Device * device =nullptr;
|
||||
const vulkan::PhysicalDevice *physical_device =nullptr;
|
||||
vulkan::RenderDevice * device =nullptr;
|
||||
const vulkan::PhysicalRenderDevice *physical_device =nullptr;
|
||||
|
||||
inst=InitVulkanInstance();
|
||||
|
||||
|
@ -34,7 +34,7 @@ private:
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
|
@ -38,7 +38,7 @@ private:
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
|
@ -11,7 +11,7 @@ using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
|
||||
Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename);
|
||||
VK_NAMESPACE_END
|
||||
|
||||
constexpr uint32_t SCREEN_WIDTH=256;
|
||||
@ -53,7 +53,7 @@ private:
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
@ -46,7 +46,7 @@ protected:
|
||||
|
||||
protected:
|
||||
|
||||
vulkan::Device * device =nullptr;
|
||||
vulkan::RenderDevice * device =nullptr;
|
||||
vulkan::SwapchainRenderTarget * sc_render_target =nullptr;
|
||||
|
||||
protected:
|
||||
@ -332,7 +332,7 @@ class CameraAppFramework:public VulkanApplicationFramework
|
||||
{
|
||||
private:
|
||||
|
||||
vulkan::Buffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
protected:
|
||||
|
||||
@ -375,7 +375,7 @@ public:
|
||||
camera.height=h;
|
||||
}
|
||||
|
||||
vulkan::Buffer *GetCameraMatrixBuffer()
|
||||
vulkan::GPUBuffer *GetCameraMatrixBuffer()
|
||||
{
|
||||
return ubo_world_matrix;
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ namespace hgl
|
||||
*/
|
||||
class TileData ///Tile纹理管理
|
||||
{
|
||||
Device *device;
|
||||
RenderDevice *device;
|
||||
|
||||
protected:
|
||||
|
||||
@ -48,7 +48,7 @@ namespace hgl
|
||||
|
||||
protected:
|
||||
|
||||
vulkan::Buffer *tile_buffer; ///<Tile暂存缓冲区
|
||||
vulkan::GPUBuffer *tile_buffer; ///<Tile暂存缓冲区
|
||||
|
||||
List<ImageRegion> commit_list;
|
||||
uint8 *commit_ptr;
|
||||
@ -67,7 +67,7 @@ namespace hgl
|
||||
|
||||
public:
|
||||
|
||||
TileData(Device *,Texture2D *,const uint tw,const uint th);
|
||||
TileData(RenderDevice *,Texture2D *,const uint tw,const uint th);
|
||||
virtual ~TileData();
|
||||
|
||||
void BeginCommit();
|
||||
|
@ -14,9 +14,9 @@ VK_NAMESPACE_BEGIN
|
||||
using CharPointerList=hgl::List<const char *>;
|
||||
|
||||
class Instance;
|
||||
class PhysicalDevice;
|
||||
class Device;
|
||||
struct DeviceAttribute;
|
||||
class PhysicalRenderDevice;
|
||||
class RenderDevice;
|
||||
struct RenderDeviceAttribute;
|
||||
class ImageView;
|
||||
class Framebuffer;
|
||||
struct Swapchain;
|
||||
@ -34,8 +34,8 @@ class TextureCubemapArray;
|
||||
|
||||
class Sampler;
|
||||
|
||||
class Memory;
|
||||
class Buffer;
|
||||
class GPUMemory;
|
||||
class GPUBuffer;
|
||||
struct BufferData;
|
||||
|
||||
class VertexAttribBuffer;
|
||||
@ -45,7 +45,7 @@ class IndexBuffer;
|
||||
|
||||
class CommandBuffer;
|
||||
class RenderPass;
|
||||
class Fence;
|
||||
class GPUFence;
|
||||
class GPUSemaphore;
|
||||
|
||||
class DescriptorSetLayoutCreater;
|
||||
|
@ -7,11 +7,11 @@ VK_NAMESPACE_BEGIN
|
||||
struct BufferData
|
||||
{
|
||||
VkBuffer buffer;
|
||||
Memory * memory=nullptr;
|
||||
GPUMemory * memory=nullptr;
|
||||
VkDescriptorBufferInfo info;
|
||||
};//struct BufferData
|
||||
|
||||
class Buffer
|
||||
class GPUBuffer
|
||||
{
|
||||
protected:
|
||||
|
||||
@ -20,11 +20,11 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
friend class VertexAttribBuffer;
|
||||
friend class IndexBuffer;
|
||||
|
||||
Buffer(VkDevice d,const BufferData &b)
|
||||
GPUBuffer(VkDevice d,const BufferData &b)
|
||||
{
|
||||
device=d;
|
||||
buf=b;
|
||||
@ -32,10 +32,10 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
virtual ~Buffer();
|
||||
virtual ~GPUBuffer();
|
||||
|
||||
VkBuffer GetBuffer (){return buf.buffer;}
|
||||
Memory * GetMemory (){return buf.memory;}
|
||||
GPUMemory * GetMemory (){return buf.memory;}
|
||||
const VkDescriptorBufferInfo * GetBufferInfo()const{return &buf.info;}
|
||||
|
||||
void * Map () {return buf.memory->Map();}
|
||||
@ -45,9 +45,9 @@ public:
|
||||
bool Write (const void *ptr,uint32_t start,uint32_t size) {return buf.memory->Write(ptr,start,size);}
|
||||
bool Write (const void *ptr,uint32_t size) {return buf.memory->Write(ptr,0,size);}
|
||||
bool Write (const void *ptr) {return buf.memory->Write(ptr);}
|
||||
};//class Buffer
|
||||
};//class GPUBuffer
|
||||
|
||||
class VertexAttribBuffer:public Buffer
|
||||
class VertexAttribBuffer:public GPUBuffer
|
||||
{
|
||||
VkFormat format; ///<数据格式
|
||||
uint32_t stride; ///<单个数据字节数
|
||||
@ -55,9 +55,9 @@ class VertexAttribBuffer:public Buffer
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
VertexAttribBuffer(VkDevice d,const BufferData &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):Buffer(d,vb)
|
||||
VertexAttribBuffer(VkDevice d,const BufferData &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):GPUBuffer(d,vb)
|
||||
{
|
||||
format=fmt;
|
||||
stride=_stride;
|
||||
@ -74,22 +74,22 @@ public:
|
||||
|
||||
void *Map(VkDeviceSize start=0,VkDeviceSize size=0) override
|
||||
{
|
||||
return Buffer::Map(start*stride,size*stride);
|
||||
return GPUBuffer::Map(start*stride,size*stride);
|
||||
}
|
||||
};//class VertexAttribBuffer:public Buffer
|
||||
};//class VertexAttribBuffer:public GPUBuffer
|
||||
|
||||
using VAB=VertexAttribBuffer;
|
||||
|
||||
class IndexBuffer:public Buffer
|
||||
class IndexBuffer:public GPUBuffer
|
||||
{
|
||||
IndexType index_type;
|
||||
uint32_t count;
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
IndexBuffer(VkDevice d,const BufferData &vb,IndexType it,uint32_t _count):Buffer(d,vb)
|
||||
IndexBuffer(VkDevice d,const BufferData &vb,IndexType it,uint32_t _count):GPUBuffer(d,vb)
|
||||
{
|
||||
index_type=it;
|
||||
count=_count;
|
||||
@ -101,6 +101,6 @@ public:
|
||||
|
||||
const IndexType GetType ()const{return index_type;}
|
||||
const uint32 GetCount()const{return count;}
|
||||
};//class IndexBuffer:public Buffer
|
||||
};//class IndexBuffer:public GPUBuffer
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_BUFFER_INCLUDE
|
||||
|
@ -31,7 +31,7 @@ class VertexAttribData;
|
||||
*/
|
||||
class Database
|
||||
{
|
||||
Device *device;
|
||||
RenderDevice *device;
|
||||
|
||||
MapObject<OSString,ShaderModule> shader_module_by_name;
|
||||
Map<OSString,Material *> material_by_name;
|
||||
@ -41,14 +41,14 @@ class Database
|
||||
IDResManage<PipelineID, Pipeline> rm_pipeline; ///<管线合集
|
||||
IDResManage<DescriptorSetsID, DescriptorSets> rm_desc_sets; ///<描述符合集
|
||||
IDResManage<RenderableID, Renderable> rm_renderables; ///<可渲染对象合集
|
||||
IDResManage<BufferID, Buffer> rm_buffers; ///<顶点缓冲区合集
|
||||
IDResManage<BufferID, GPUBuffer> rm_buffers; ///<顶点缓冲区合集
|
||||
IDResManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
|
||||
IDResManage<TextureID, Texture> rm_textures; ///<纹理合集
|
||||
IDResManage<RenderableInstanceID, RenderableInstance> rm_renderable_instances; ///<渲染实例集合集
|
||||
|
||||
public:
|
||||
|
||||
Database(Device *dev):device(dev){}
|
||||
Database(RenderDevice *dev):device(dev){}
|
||||
virtual ~Database()=default;
|
||||
|
||||
public: //Add
|
||||
@ -58,7 +58,7 @@ public: //Add
|
||||
PipelineID Add(Pipeline * p ){return rm_pipeline.Add(p);}
|
||||
DescriptorSetsID Add(DescriptorSets * ds ){return rm_desc_sets.Add(ds);}
|
||||
RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
|
||||
BufferID Add(Buffer * buf ){return rm_buffers.Add(buf);}
|
||||
BufferID Add(GPUBuffer * buf ){return rm_buffers.Add(buf);}
|
||||
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
||||
TextureID Add(Texture * t ){return rm_textures.Add(t);}
|
||||
RenderableInstanceID Add(RenderableInstance *ri ){return rm_renderable_instances.Add(ri);}
|
||||
@ -69,8 +69,8 @@ public: // VBO/VAO
|
||||
VAB *CreateVAB(VkFormat format,uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateVAB(format,count,nullptr,sm);}
|
||||
VAB *CreateVAB(const VAD *vad,SharingMode sm=SharingMode::Exclusive){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sm);}
|
||||
|
||||
#define SCENE_DB_CREATE_FUNC(name) Buffer *Create##name(VkDeviceSize size,void *data,SharingMode sm=SharingMode::Exclusive); \
|
||||
Buffer *Create##name(VkDeviceSize size,SharingMode sm=SharingMode::Exclusive);
|
||||
#define SCENE_DB_CREATE_FUNC(name) GPUBuffer *Create##name(VkDeviceSize size,void *data,SharingMode sm=SharingMode::Exclusive); \
|
||||
GPUBuffer *Create##name(VkDeviceSize size,SharingMode sm=SharingMode::Exclusive);
|
||||
|
||||
SCENE_DB_CREATE_FUNC(UBO)
|
||||
SCENE_DB_CREATE_FUNC(SSBO)
|
||||
@ -119,7 +119,7 @@ public: //Get
|
||||
Pipeline * GetPipeline (const PipelineID &id){return rm_pipeline.Get(id);}
|
||||
DescriptorSets * GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);}
|
||||
Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
||||
Buffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
|
||||
GPUBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
|
||||
Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);}
|
||||
Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);}
|
||||
RenderableInstance *GetRenderableInstance (const RenderableInstanceID &id){return rm_renderable_instances.Get(id);}
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include<hgl/graph/VK.h>
|
||||
#include<hgl/type/Map.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
class Buffer;
|
||||
class GPUBuffer;
|
||||
|
||||
class DescriptorSets
|
||||
{
|
||||
@ -39,8 +39,8 @@ public:
|
||||
const VkPipelineLayout GetPipelineLayout ()const{return pipeline_layout;}
|
||||
|
||||
void Clear();
|
||||
bool BindUBO(const int binding,const Buffer *);
|
||||
bool BindUBODynamic(const int binding,const Buffer *);
|
||||
bool BindUBO(const int binding,const GPUBuffer *);
|
||||
bool BindUBODynamic(const int binding,const GPUBuffer *);
|
||||
bool BindSampler(const int binding,Texture *,Sampler *);
|
||||
void Update();
|
||||
};//class DescriptorSets
|
||||
|
@ -26,9 +26,9 @@ namespace hgl
|
||||
}//namespace hgl
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
class Device
|
||||
class RenderDevice
|
||||
{
|
||||
DeviceAttribute *attr;
|
||||
RenderDeviceAttribute *attr;
|
||||
|
||||
SubmitQueue *textureSQ;
|
||||
CommandBuffer *texture_cmd_buf;
|
||||
@ -43,20 +43,20 @@ class Device
|
||||
|
||||
private:
|
||||
|
||||
friend Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent);
|
||||
friend RenderDevice *CreateRenderDevice(VkInstance inst,const PhysicalRenderDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent);
|
||||
|
||||
Device(DeviceAttribute *da);
|
||||
RenderDevice(RenderDeviceAttribute *da);
|
||||
|
||||
public:
|
||||
|
||||
virtual ~Device();
|
||||
virtual ~RenderDevice();
|
||||
|
||||
operator VkDevice () {return attr->device;}
|
||||
DeviceAttribute * GetDeviceAttribute () {return attr;}
|
||||
RenderDeviceAttribute * GetRenderDeviceAttribute () {return attr;}
|
||||
|
||||
VkSurfaceKHR GetSurface () {return attr->surface;}
|
||||
VkDevice GetDevice ()const {return attr->device;}
|
||||
const PhysicalDevice * GetPhysicalDevice ()const {return attr->physical_device;}
|
||||
const PhysicalRenderDevice * GetPhysicalRenderDevice ()const {return attr->physical_device;}
|
||||
|
||||
VkDescriptorPool GetDescriptorPool () {return attr->desc_pool;}
|
||||
VkPipelineCache GetPipelineCache () {return attr->pipeline_cache;}
|
||||
@ -82,8 +82,8 @@ public:
|
||||
|
||||
public: //内存相关
|
||||
|
||||
Memory *CreateMemory(const VkMemoryRequirements &,const uint32_t properties);
|
||||
Memory *CreateMemory(VkImage,const uint32 flag=VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
|
||||
GPUMemory *CreateMemory(const VkMemoryRequirements &,const uint32_t properties);
|
||||
GPUMemory *CreateMemory(VkImage,const uint32 flag=VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
|
||||
|
||||
private: //Buffer相关
|
||||
|
||||
@ -91,8 +91,8 @@ private: //Buffer相关
|
||||
|
||||
public: //Buffer相关
|
||||
|
||||
Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data, SharingMode sharing_mode=SharingMode::Exclusive);
|
||||
Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size, SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,nullptr,sharing_mode);}
|
||||
GPUBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data, SharingMode sharing_mode=SharingMode::Exclusive);
|
||||
GPUBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size, SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,nullptr,sharing_mode);}
|
||||
|
||||
VAB * CreateVAB (VkFormat format,uint32_t count,const void *data, SharingMode sharing_mode=SharingMode::Exclusive);
|
||||
VAB * CreateVAB (VkFormat format,uint32_t count, SharingMode sharing_mode=SharingMode::Exclusive){return CreateVAB(format,count,nullptr,sharing_mode);}
|
||||
@ -106,8 +106,8 @@ public: //Buffer相关
|
||||
IndexBuffer * CreateIBO16 ( uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(IndexType::U16,count,nullptr,sharing_mode);}
|
||||
IndexBuffer * CreateIBO32 ( uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(IndexType::U32,count,nullptr,sharing_mode);}
|
||||
|
||||
#define CREATE_BUFFER_OBJECT(LargeName,type) Buffer *Create##LargeName(VkDeviceSize size,void *data,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,data,sharing_mode);} \
|
||||
Buffer *Create##LargeName(VkDeviceSize size,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,nullptr,sharing_mode);}
|
||||
#define CREATE_BUFFER_OBJECT(LargeName,type) GPUBuffer *Create##LargeName(VkDeviceSize size,void *data,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,data,sharing_mode);} \
|
||||
GPUBuffer *Create##LargeName(VkDeviceSize size,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,nullptr,sharing_mode);}
|
||||
|
||||
CREATE_BUFFER_OBJECT(UBO,UNIFORM)
|
||||
CREATE_BUFFER_OBJECT(SSBO,STORAGE)
|
||||
@ -131,7 +131,7 @@ public: //Texture
|
||||
|
||||
void Clear(TextureCreateInfo *);
|
||||
|
||||
Texture2D *CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling);
|
||||
Texture2D *CreateTexture2D(GPUMemory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling);
|
||||
Texture2D *CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlags aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling=ImageTiling::Optimal);
|
||||
|
||||
Texture2D *CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling=ImageTiling::Optimal);
|
||||
@ -183,7 +183,7 @@ public: //Texture
|
||||
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
|
||||
}
|
||||
|
||||
Texture2D *CreateTexture2D( const VkFormat video_format,Buffer *buf,uint32_t width,uint32_t height,
|
||||
Texture2D *CreateTexture2D( const VkFormat video_format,GPUBuffer *buf,uint32_t width,uint32_t height,
|
||||
const VkImageAspectFlags aspectMask =VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
const uint usage =VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT,
|
||||
const VkImageLayout image_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
@ -195,14 +195,14 @@ public: //Texture
|
||||
const VkImageLayout image_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
const ImageTiling tiling =ImageTiling::Optimal);
|
||||
|
||||
bool ChangeTexture2D(Texture2D *,Buffer *buf,const VkBufferImageCopy *,const int count);
|
||||
bool ChangeTexture2D(Texture2D *,Buffer *buf,const List<ImageRegion> &);
|
||||
bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,const VkBufferImageCopy *,const int count);
|
||||
bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,const List<ImageRegion> &);
|
||||
|
||||
bool ChangeTexture2D(Texture2D *,Buffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height);
|
||||
bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height);
|
||||
bool ChangeTexture2D(Texture2D *,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size);
|
||||
|
||||
template<typename T>
|
||||
bool ChangeTexture2D(Texture2D *tex,Buffer *buf,const RectScope2<T> &rs)
|
||||
bool ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const RectScope2<T> &rs)
|
||||
{
|
||||
return ChangeTexture2D( tex,
|
||||
buf,
|
||||
@ -238,7 +238,7 @@ public: //shader & material
|
||||
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module);
|
||||
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module);
|
||||
|
||||
public: //Command Buffer 相关
|
||||
public: //Command GPUBuffer 相关
|
||||
|
||||
CommandBuffer * CreateCommandBuffer(const VkExtent2D &extent,const uint32_t atta_count);
|
||||
|
||||
@ -260,7 +260,7 @@ public: //Command Buffer 相关
|
||||
const VkImageLayout color_final_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
const VkImageLayout depth_final_layout=VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
|
||||
|
||||
Fence * CreateFence(bool);
|
||||
GPUFence * CreateFence(bool);
|
||||
vulkan::GPUSemaphore * CreateSemaphore();
|
||||
|
||||
public: //FrameBuffer相关
|
||||
@ -312,7 +312,7 @@ public:
|
||||
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字体
|
||||
};//class Device
|
||||
};//class RenderDevice
|
||||
|
||||
//void CreateSubpassDependency(VkSubpassDependency *);
|
||||
void CreateSubpassDependency(List<VkSubpassDependency> &dependency,const uint32_t count);
|
||||
@ -333,6 +333,6 @@ bool CreateAttachmentDescription( List<VkAttachmentDescription> &color_outp
|
||||
const VkImageLayout color_final_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
|
||||
const VkImageLayout depth_final_layout=VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL);
|
||||
|
||||
Device *CreateRenderDevice(Instance *inst,Window *win,const PhysicalDevice *physical_device=nullptr);
|
||||
RenderDevice *CreateRenderDevice(Instance *inst,Window *win,const PhysicalRenderDevice *physical_device=nullptr);
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_RENDER_SURFACE_INCLUDE
|
||||
|
@ -6,10 +6,10 @@ VK_NAMESPACE_BEGIN
|
||||
|
||||
constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX;
|
||||
|
||||
struct DeviceAttribute
|
||||
struct RenderDeviceAttribute
|
||||
{
|
||||
VkInstance instance =VK_NULL_HANDLE;
|
||||
const PhysicalDevice * physical_device =nullptr;
|
||||
const PhysicalRenderDevice * physical_device =nullptr;
|
||||
|
||||
VkSurfaceKHR surface =VK_NULL_HANDLE;
|
||||
VkSurfaceCapabilitiesKHR surface_caps;
|
||||
@ -39,11 +39,11 @@ struct DeviceAttribute
|
||||
|
||||
public:
|
||||
|
||||
DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s);
|
||||
~DeviceAttribute();
|
||||
RenderDeviceAttribute(VkInstance inst,const PhysicalRenderDevice *pd,VkSurfaceKHR s);
|
||||
~RenderDeviceAttribute();
|
||||
|
||||
bool CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex) const;
|
||||
|
||||
void Refresh();
|
||||
};//class DeviceAttribute
|
||||
};//class RenderDeviceAttribute
|
||||
VK_NAMESPACE_END
|
||||
|
@ -3,16 +3,16 @@
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
class Fence
|
||||
class GPUFence
|
||||
{
|
||||
VkDevice device;
|
||||
VkFence fence;
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
Fence(VkDevice d,VkFence f)
|
||||
GPUFence(VkDevice d,VkFence f)
|
||||
{
|
||||
device=d;
|
||||
fence=f;
|
||||
@ -20,9 +20,9 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
~Fence();
|
||||
~GPUFence();
|
||||
|
||||
operator VkFence(){return fence;}
|
||||
};//class Fence
|
||||
};//class GPUFence
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_VULKAN_GRAPH_FENCE_INCLUDE
|
||||
|
@ -16,7 +16,7 @@ class Framebuffer
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
Framebuffer(VkDevice,VkFramebuffer,const VkExtent2D &,VkRenderPass,uint32_t color_count,bool depth);
|
||||
|
||||
|
@ -55,7 +55,7 @@ VK_NAMESPACE_BEGIN
|
||||
|
||||
VKDebugOut *debug_out;
|
||||
|
||||
ObjectList<PhysicalDevice> physical_devices;
|
||||
ObjectList<PhysicalRenderDevice> physical_devices;
|
||||
|
||||
private:
|
||||
|
||||
@ -69,8 +69,8 @@ VK_NAMESPACE_BEGIN
|
||||
|
||||
operator VkInstance (){return inst;}
|
||||
|
||||
const ObjectList<PhysicalDevice> &GetDeviceList ()const {return physical_devices;}
|
||||
const PhysicalDevice * GetDevice (VkPhysicalDeviceType)const;
|
||||
const ObjectList<PhysicalRenderDevice> &GetDeviceList ()const {return physical_devices;}
|
||||
const PhysicalRenderDevice * GetDevice (VkPhysicalDeviceType)const;
|
||||
};//class Instance
|
||||
|
||||
void InitVulkanProperties();
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
|
||||
~MaterialInstance();
|
||||
|
||||
bool BindUBO(const AnsiString &name,vulkan::Buffer *ubo);
|
||||
bool BindUBO(const AnsiString &name,vulkan::GPUBuffer *ubo);
|
||||
bool BindSampler(const AnsiString &name,Texture *tex,Sampler *sampler);
|
||||
|
||||
void Update();
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
class Memory
|
||||
class GPUMemory
|
||||
{
|
||||
VkDevice device;
|
||||
VkDeviceMemory memory;
|
||||
@ -13,9 +13,9 @@ class Memory
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
Memory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p)
|
||||
GPUMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p)
|
||||
{
|
||||
device=dev;
|
||||
memory=dm;
|
||||
@ -26,7 +26,7 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
virtual ~Memory();
|
||||
virtual ~GPUMemory();
|
||||
|
||||
operator VkDeviceMemory(){return memory;}
|
||||
|
||||
@ -48,6 +48,6 @@ public:
|
||||
|
||||
bool BindBuffer (VkBuffer buffer);
|
||||
bool BindImage (VkImage image);
|
||||
};//class Memory
|
||||
};//class GPUMemory
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_MEMORY_INCLUDE
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/type/Sets.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
class PhysicalDevice
|
||||
class PhysicalRenderDevice
|
||||
{
|
||||
VkInstance instance=nullptr;
|
||||
VkPhysicalDevice physical_device=nullptr;
|
||||
@ -18,8 +18,8 @@ class PhysicalDevice
|
||||
|
||||
public:
|
||||
|
||||
PhysicalDevice(VkInstance,VkPhysicalDevice);
|
||||
~PhysicalDevice()=default;
|
||||
PhysicalRenderDevice(VkInstance,VkPhysicalDevice);
|
||||
~PhysicalRenderDevice()=default;
|
||||
|
||||
operator VkPhysicalDevice(){return physical_device;}
|
||||
operator const VkPhysicalDevice()const{return physical_device;}
|
||||
@ -119,5 +119,5 @@ public:
|
||||
min_width =properties.limits.lineWidthRange[0];
|
||||
max_width =properties.limits.lineWidthRange[1];
|
||||
}
|
||||
};//class PhysicalDevice
|
||||
};//class PhysicalRenderDevice
|
||||
VK_NAMESPACE_END
|
||||
|
@ -18,7 +18,7 @@ class RenderPass
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
RenderPass(VkDevice d,VkRenderPass rp,const List<VkFormat> &cf,VkFormat df)
|
||||
{
|
||||
|
@ -30,10 +30,10 @@ protected:
|
||||
|
||||
protected:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count=1);
|
||||
RenderTarget(Device *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **color_texture_list,const uint32_t color_count,Texture2D *depth_texture,const uint32_t fence_count=1);
|
||||
RenderTarget(RenderDevice *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count=1);
|
||||
RenderTarget(RenderDevice *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **color_texture_list,const uint32_t color_count,Texture2D *depth_texture,const uint32_t fence_count=1);
|
||||
|
||||
public:
|
||||
|
||||
@ -72,7 +72,7 @@ class SwapchainRenderTarget:public RenderTarget
|
||||
|
||||
public:
|
||||
|
||||
SwapchainRenderTarget(Device *dev,Swapchain *sc);
|
||||
SwapchainRenderTarget(RenderDevice *dev,Swapchain *sc);
|
||||
~SwapchainRenderTarget();
|
||||
|
||||
const VkRenderPass GetRenderPass ()const override {return *main_rp;}
|
||||
|
@ -12,7 +12,7 @@ class Sampler
|
||||
|
||||
protected:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
Sampler(VkDevice dev,VkSampler s)
|
||||
{
|
||||
|
@ -10,7 +10,7 @@ class GPUSemaphore
|
||||
|
||||
private:
|
||||
|
||||
friend class Device;
|
||||
friend class RenderDevice;
|
||||
|
||||
GPUSemaphore(VkDevice d,VkSemaphore s)
|
||||
{
|
||||
|
@ -8,17 +8,17 @@ class SubmitQueue
|
||||
{
|
||||
protected:
|
||||
|
||||
Device *device;
|
||||
RenderDevice *device;
|
||||
VkQueue queue;
|
||||
|
||||
uint32_t current_fence;
|
||||
ObjectList<Fence> fence_list;
|
||||
ObjectList<GPUFence> fence_list;
|
||||
|
||||
SubmitInfo submit_info;
|
||||
|
||||
public:
|
||||
|
||||
SubmitQueue(Device *dev,VkQueue q,const uint32_t fence_count=1);
|
||||
SubmitQueue(RenderDevice *dev,VkQueue q,const uint32_t fence_count=1);
|
||||
virtual ~SubmitQueue();
|
||||
|
||||
bool WaitQueue();
|
||||
|
@ -12,7 +12,7 @@ BitmapData *LoadBitmapFromFile(const OSString &filename);
|
||||
|
||||
struct TextureData
|
||||
{
|
||||
Memory * memory =nullptr;
|
||||
GPUMemory * memory =nullptr;
|
||||
VkImage image =VK_NULL_HANDLE;
|
||||
VkImageLayout image_layout=VK_IMAGE_LAYOUT_UNDEFINED;
|
||||
ImageView * image_view =nullptr;
|
||||
@ -29,7 +29,7 @@ struct TextureCreateInfo
|
||||
ImageTiling tiling;
|
||||
|
||||
VkImage image;
|
||||
Memory * memory;
|
||||
GPUMemory * memory;
|
||||
ImageView * image_view;
|
||||
VkImageLayout image_layout;
|
||||
|
||||
@ -57,7 +57,7 @@ public:
|
||||
VkImageLayout GetImageLayout () {return data?data->image_layout:VK_IMAGE_LAYOUT_UNDEFINED;}
|
||||
VkImageView GetVulkanImageView () {return data?data->image_view->operator VkImageView():VK_NULL_HANDLE;}
|
||||
|
||||
Memory * GetMemory () {return data?data->memory:nullptr;}
|
||||
GPUMemory * GetMemory () {return data?data->memory:nullptr;}
|
||||
ImageView * GetImageView () {return data?data->image_view:nullptr;}
|
||||
|
||||
const uint32 GetMipLevels ()const {return data?data->mip_levels:0;}
|
||||
|
@ -11,7 +11,7 @@ namespace hgl
|
||||
*/
|
||||
class TextRenderable:public vulkan::Renderable
|
||||
{
|
||||
vulkan::Device * device;
|
||||
vulkan::RenderDevice * device;
|
||||
vulkan::Material * mtl;
|
||||
|
||||
uint max_count; ///<缓冲区最大容量
|
||||
@ -21,7 +21,7 @@ namespace hgl
|
||||
|
||||
public:
|
||||
|
||||
TextRenderable(vulkan::Device *,vulkan::Material *,uint mc=1024);
|
||||
TextRenderable(vulkan::RenderDevice *,vulkan::Material *,uint mc=1024);
|
||||
virtual ~TextRenderable();
|
||||
|
||||
public:
|
||||
|
@ -10,20 +10,20 @@ namespace hgl
|
||||
{
|
||||
namespace vulkan
|
||||
{
|
||||
class Device;
|
||||
class RenderDevice;
|
||||
}//namespace vulkan
|
||||
|
||||
class ThemeEngine
|
||||
{
|
||||
protected:
|
||||
|
||||
vulkan::Device *device;
|
||||
vulkan::RenderDevice *device;
|
||||
|
||||
MapObject<Form *,ThemeForm> form_list;
|
||||
|
||||
public:
|
||||
|
||||
ThemeEngine(vulkan::Device *dev){device=dev;}
|
||||
ThemeEngine(vulkan::RenderDevice *dev){device=dev;}
|
||||
virtual ~ThemeEngine()=default;
|
||||
|
||||
virtual bool Init()=0;
|
||||
|
@ -4,7 +4,7 @@ namespace hgl
|
||||
{
|
||||
namespace gui
|
||||
{
|
||||
ThemeEngine *CreateDefaultThemeEngine(vulkan::Device *dev)
|
||||
ThemeEngine *CreateDefaultThemeEngine(vulkan::RenderDevice *dev)
|
||||
{
|
||||
return(new default_theme::DefaultThemeEngine(dev));
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ namespace hgl
|
||||
|
||||
public:
|
||||
|
||||
DefaultThemeEngine(vulkan::Device *dev):ThemeEngine(dev){}
|
||||
DefaultThemeEngine(vulkan::RenderDevice *dev):ThemeEngine(dev){}
|
||||
virtual ~DefaultThemeEngine() override;
|
||||
|
||||
bool Init() override;
|
||||
|
@ -10,9 +10,9 @@ namespace hgl
|
||||
ThemeEngine *default_theme_engine=nullptr;
|
||||
}//namespace
|
||||
|
||||
ThemeEngine *CreateDefaultThemeEngine(vulkan::Device *dev);
|
||||
ThemeEngine *CreateDefaultThemeEngine(vulkan::RenderDevice *dev);
|
||||
|
||||
ThemeEngine *GetDefaultThemeEngine(vulkan::Device *dev)
|
||||
ThemeEngine *GetDefaultThemeEngine(vulkan::RenderDevice *dev)
|
||||
{
|
||||
if(!default_theme_engine)
|
||||
default_theme_engine=CreateDefaultThemeEngine(dev);
|
||||
@ -20,7 +20,7 @@ namespace hgl
|
||||
return default_theme_engine;
|
||||
}
|
||||
|
||||
ThemeEngine *CreateThemeEngine(vulkan::Device *dev)
|
||||
ThemeEngine *CreateThemeEngine(vulkan::RenderDevice *dev)
|
||||
{
|
||||
return GetDefaultThemeEngine();
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include<hgl/graph/VKBuffer.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Buffer::~Buffer()
|
||||
GPUBuffer::~GPUBuffer()
|
||||
{
|
||||
if(buf.memory)delete buf.memory;
|
||||
vkDestroyBuffer(device,buf.buffer,nullptr);
|
||||
|
@ -16,18 +16,18 @@ VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,Sharing
|
||||
return vb;
|
||||
}
|
||||
|
||||
#define SCENE_DB_CREATE_BUFFER(name) Buffer *Database::Create##name(VkDeviceSize size,void *data,SharingMode sharing_mode) \
|
||||
#define SCENE_DB_CREATE_BUFFER(name) GPUBuffer *Database::Create##name(VkDeviceSize size,void *data,SharingMode sharing_mode) \
|
||||
{ \
|
||||
Buffer *buf=device->Create##name(size,data,sharing_mode); \
|
||||
GPUBuffer *buf=device->Create##name(size,data,sharing_mode); \
|
||||
\
|
||||
if(!buf)return(nullptr); \
|
||||
rm_buffers.Add(buf); \
|
||||
return(buf); \
|
||||
} \
|
||||
\
|
||||
Buffer *Database::Create##name(VkDeviceSize size,SharingMode sharing_mode) \
|
||||
GPUBuffer *Database::Create##name(VkDeviceSize size,SharingMode sharing_mode) \
|
||||
{ \
|
||||
Buffer *buf=device->Create##name(size,sharing_mode); \
|
||||
GPUBuffer *buf=device->Create##name(size,sharing_mode); \
|
||||
\
|
||||
if(!buf)return(nullptr); \
|
||||
rm_buffers.Add(buf); \
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
DescriptorSetLayoutCreater *Device::CreateDescriptorSetLayoutCreater()
|
||||
DescriptorSetLayoutCreater *RenderDevice::CreateDescriptorSetLayoutCreater()
|
||||
{
|
||||
return(new DescriptorSetLayoutCreater(attr->device,attr->desc_pool));
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ void DescriptorSets::Clear()
|
||||
desc_image_info.ClearData();
|
||||
}
|
||||
|
||||
bool DescriptorSets::BindUBO(const int binding,const Buffer *buf)
|
||||
bool DescriptorSets::BindUBO(const int binding,const GPUBuffer *buf)
|
||||
{
|
||||
if(binding<0||!buf)
|
||||
return(false);
|
||||
@ -31,7 +31,7 @@ bool DescriptorSets::BindUBO(const int binding,const Buffer *buf)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool DescriptorSets::BindUBODynamic(const int binding,const Buffer *buf)
|
||||
bool DescriptorSets::BindUBODynamic(const int binding,const GPUBuffer *buf)
|
||||
{
|
||||
if(binding<0||!buf)
|
||||
return(false);
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include<hgl/graph/VKDescriptorSets.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Device::Device(DeviceAttribute *da)
|
||||
RenderDevice::RenderDevice(RenderDeviceAttribute *da)
|
||||
{
|
||||
attr=da;
|
||||
|
||||
@ -23,7 +23,7 @@ Device::Device(DeviceAttribute *da)
|
||||
Resize(attr->surface_caps.currentExtent);
|
||||
}
|
||||
|
||||
Device::~Device()
|
||||
RenderDevice::~RenderDevice()
|
||||
{
|
||||
SAFE_CLEAR(swapchainRT);
|
||||
SAFE_CLEAR(swapchain);
|
||||
@ -34,7 +34,7 @@ Device::~Device()
|
||||
delete attr;
|
||||
}
|
||||
|
||||
bool Device::Resize(const VkExtent2D &extent)
|
||||
bool RenderDevice::Resize(const VkExtent2D &extent)
|
||||
{
|
||||
SAFE_CLEAR(swapchainRT);
|
||||
SAFE_CLEAR(swapchain);
|
||||
@ -55,7 +55,7 @@ bool Device::Resize(const VkExtent2D &extent)
|
||||
return(true);
|
||||
}
|
||||
|
||||
CommandBuffer *Device::CreateCommandBuffer(const VkExtent2D &extent,const uint32_t atta_count)
|
||||
CommandBuffer *RenderDevice::CreateCommandBuffer(const VkExtent2D &extent,const uint32_t atta_count)
|
||||
{
|
||||
if(!attr->cmd_pool)
|
||||
return(nullptr);
|
||||
@ -80,7 +80,7 @@ CommandBuffer *Device::CreateCommandBuffer(const VkExtent2D &extent,const uint32
|
||||
* 创建栅栏
|
||||
* @param create_signaled 是否创建初始信号
|
||||
*/
|
||||
Fence *Device::CreateFence(bool create_signaled)
|
||||
GPUFence *RenderDevice::CreateFence(bool create_signaled)
|
||||
{
|
||||
FenceCreateInfo fenceInfo(create_signaled?VK_FENCE_CREATE_SIGNALED_BIT:0);
|
||||
|
||||
@ -89,10 +89,10 @@ Fence *Device::CreateFence(bool create_signaled)
|
||||
if(vkCreateFence(attr->device, &fenceInfo, nullptr, &fence)!=VK_SUCCESS)
|
||||
return(nullptr);
|
||||
|
||||
return(new Fence(attr->device,fence));
|
||||
return(new GPUFence(attr->device,fence));
|
||||
}
|
||||
|
||||
vulkan::GPUSemaphore *Device::CreateSemaphore()
|
||||
vulkan::GPUSemaphore *RenderDevice::CreateSemaphore()
|
||||
{
|
||||
SemaphoreCreateInfo SemaphoreCreateInfo;
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<iostream>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
DeviceAttribute::DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s)
|
||||
RenderDeviceAttribute::RenderDeviceAttribute(VkInstance inst,const PhysicalRenderDevice *pd,VkSurfaceKHR s)
|
||||
{
|
||||
instance=inst;
|
||||
physical_device=pd;
|
||||
@ -14,7 +14,7 @@ DeviceAttribute::DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurf
|
||||
Refresh();
|
||||
}
|
||||
|
||||
DeviceAttribute::~DeviceAttribute()
|
||||
RenderDeviceAttribute::~RenderDeviceAttribute()
|
||||
{
|
||||
if(pipeline_cache)
|
||||
vkDestroyPipelineCache(device,pipeline_cache,nullptr);
|
||||
@ -32,12 +32,12 @@ DeviceAttribute::~DeviceAttribute()
|
||||
vkDestroySurfaceKHR(instance,surface,nullptr);
|
||||
}
|
||||
|
||||
bool DeviceAttribute::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex) const
|
||||
bool RenderDeviceAttribute::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex) const
|
||||
{
|
||||
return physical_device->CheckMemoryType(typeBits,properties,typeIndex);
|
||||
}
|
||||
|
||||
void DeviceAttribute::Refresh()
|
||||
void RenderDeviceAttribute::Refresh()
|
||||
{
|
||||
VkPhysicalDevice pdevice = *physical_device;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include<hgl/graph/VKBuffer.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode)
|
||||
bool RenderDevice::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode)
|
||||
{
|
||||
BufferCreateInfo buf_info;
|
||||
|
||||
@ -19,7 +19,7 @@ bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceS
|
||||
|
||||
vkGetBufferMemoryRequirements(attr->device,buf->buffer,&mem_reqs);
|
||||
|
||||
Memory *dm=CreateMemory(mem_reqs,VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
|
||||
GPUMemory *dm=CreateMemory(mem_reqs,VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT);
|
||||
|
||||
if(dm&&dm->BindBuffer(buf->buffer))
|
||||
{
|
||||
@ -42,13 +42,13 @@ bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceS
|
||||
return(false);
|
||||
}
|
||||
|
||||
VAB *Device::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode)
|
||||
VAB *RenderDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode)
|
||||
{
|
||||
const uint32_t stride=GetStrideByFormat(format);
|
||||
|
||||
if(stride==0)
|
||||
{
|
||||
std::cerr<<"format["<<format<<"] stride length is 0,please use \"Device::CreateBuffer(VkBufferUsageFlags,VkDeviceSize,VkSharingMode)\" function.";
|
||||
std::cerr<<"format["<<format<<"] stride length is 0,please use \"RenderDevice::CreateBuffer(VkBufferUsageFlags,VkDeviceSize,VkSharingMode)\" function.";
|
||||
return(nullptr);
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ VAB *Device::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMo
|
||||
return(new VertexAttribBuffer(attr->device,buf,format,stride,count));
|
||||
}
|
||||
|
||||
IndexBuffer *Device::CreateIBO(IndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode)
|
||||
IndexBuffer *RenderDevice::CreateIBO(IndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode)
|
||||
{
|
||||
uint32_t stride;
|
||||
|
||||
@ -80,13 +80,13 @@ IndexBuffer *Device::CreateIBO(IndexType index_type,uint32_t count,const void *d
|
||||
return(new IndexBuffer(attr->device,buf,index_type,count));
|
||||
}
|
||||
|
||||
Buffer *Device::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode)
|
||||
GPUBuffer *RenderDevice::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode)
|
||||
{
|
||||
BufferData buf;
|
||||
|
||||
if(!CreateBuffer(&buf,buf_usage,size,data,sharing_mode))
|
||||
return(nullptr);
|
||||
|
||||
return(new Buffer(attr->device,buf));
|
||||
return(new GPUBuffer(attr->device,buf));
|
||||
}
|
||||
VK_NAMESPACE_END
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include<iomanip>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Swapchain *CreateSwapchain(const DeviceAttribute *attr,const VkExtent2D &acquire_extent);
|
||||
Swapchain *CreateSwapchain(const RenderDeviceAttribute *attr,const VkExtent2D &acquire_extent);
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -51,7 +51,7 @@ namespace
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void GetDeviceQueue(DeviceAttribute *attr)
|
||||
void GetDeviceQueue(RenderDeviceAttribute *attr)
|
||||
{
|
||||
vkGetDeviceQueue(attr->device,attr->graphics_family,0,&attr->graphics_queue);
|
||||
|
||||
@ -374,7 +374,7 @@ namespace
|
||||
constexpr size_t VK_DRIVER_ID_RANGE_SIZE=VK_DRIVER_ID_END_RANGE-VK_DRIVER_ID_BEGIN_RANGE+1;
|
||||
#endif//VK_DRIVER_ID_RANGE_SIZE
|
||||
|
||||
Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent)
|
||||
RenderDevice *CreateRenderDevice(VkInstance inst,const PhysicalRenderDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
{
|
||||
@ -397,9 +397,9 @@ Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device
|
||||
}
|
||||
#endif//_DEBUG
|
||||
|
||||
DeviceAttribute *device_attr=new DeviceAttribute(inst,physical_device,surface);
|
||||
RenderDeviceAttribute *device_attr=new RenderDeviceAttribute(inst,physical_device,surface);
|
||||
|
||||
AutoDelete<DeviceAttribute> auto_delete(device_attr);
|
||||
AutoDelete<RenderDeviceAttribute> auto_delete(device_attr);
|
||||
|
||||
if(device_attr->graphics_family==ERROR_FAMILY_INDEX)
|
||||
return(nullptr);
|
||||
@ -428,10 +428,10 @@ Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device
|
||||
|
||||
auto_delete.Discard();
|
||||
|
||||
return(new Device(device_attr));
|
||||
return(new RenderDevice(device_attr));
|
||||
}
|
||||
|
||||
Device *CreateRenderDevice(vulkan::Instance *inst,Window *win,const vulkan::PhysicalDevice *pd)
|
||||
RenderDevice *CreateRenderDevice(vulkan::Instance *inst,Window *win,const vulkan::PhysicalRenderDevice *pd)
|
||||
{
|
||||
if(!inst)
|
||||
return(nullptr);
|
||||
@ -453,7 +453,7 @@ Device *CreateRenderDevice(vulkan::Instance *inst,Window *win,const vulkan::Phys
|
||||
extent.width=win->GetWidth();
|
||||
extent.height=win->GetHeight();
|
||||
|
||||
Device *device=CreateRenderDevice(*inst,pd,surface,extent);
|
||||
RenderDevice *device=CreateRenderDevice(*inst,pd,surface,extent);
|
||||
|
||||
if(!device)
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ VkFramebuffer CreateVulkanFramebuffer(VkDevice device,RenderPass *rp,const VkExt
|
||||
return fb;
|
||||
}
|
||||
|
||||
Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView **color_list,const uint color_count,ImageView *depth)
|
||||
Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,ImageView **color_list,const uint color_count,ImageView *depth)
|
||||
{
|
||||
uint att_count=color_count;
|
||||
|
||||
@ -78,7 +78,7 @@ Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView **color_list,con
|
||||
return(new Framebuffer(GetDevice(),fbo,extent,*rp,color_count,depth));
|
||||
}
|
||||
//
|
||||
//Framebuffer *Device::CreateFramebuffer(RenderPass *rp,List<ImageView *> &color,ImageView *depth)
|
||||
//Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,List<ImageView *> &color,ImageView *depth)
|
||||
//{
|
||||
// if(!rp)return(nullptr);
|
||||
//
|
||||
@ -89,7 +89,7 @@ Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView **color_list,con
|
||||
// return CreateFramebuffer(rp,color.GetData(),color.GetCount(),depth);
|
||||
//}
|
||||
|
||||
Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView *color,ImageView *depth)
|
||||
Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,ImageView *color,ImageView *depth)
|
||||
{
|
||||
if(!rp)return(nullptr);
|
||||
if(!color&&!depth)return(nullptr);
|
||||
@ -97,7 +97,7 @@ Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView *color,ImageView
|
||||
return CreateFramebuffer(rp,&color,1,depth);
|
||||
}
|
||||
|
||||
Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView *iv)
|
||||
Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,ImageView *iv)
|
||||
{
|
||||
if(!rp)return(nullptr);
|
||||
if(!iv)return(nullptr);
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include<hgl/graph/VKImageCreateInfo.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
VkImage Device::CreateImage(VkImageCreateInfo *ici)
|
||||
VkImage RenderDevice::CreateImage(VkImageCreateInfo *ici)
|
||||
{
|
||||
if(!ici)return(VK_NULL_HANDLE);
|
||||
if(!CheckVulkanFormat(ici->format))return(VK_NULL_HANDLE);
|
||||
@ -16,20 +16,20 @@ VkImage Device::CreateImage(VkImageCreateInfo *ici)
|
||||
return image;
|
||||
}
|
||||
|
||||
void Device::DestoryImage(VkImage img)
|
||||
void RenderDevice::DestoryImage(VkImage img)
|
||||
{
|
||||
if(img==VK_NULL_HANDLE)return;
|
||||
|
||||
vkDestroyImage(attr->device,img,nullptr);
|
||||
}
|
||||
|
||||
Memory *Device::CreateMemory(VkImage image,const uint32_t flag)
|
||||
GPUMemory *RenderDevice::CreateMemory(VkImage image,const uint32_t flag)
|
||||
{
|
||||
VkMemoryRequirements memReqs;
|
||||
|
||||
vkGetImageMemoryRequirements(attr->device,image,&memReqs);
|
||||
|
||||
Memory *mem=CreateMemory(memReqs,flag);
|
||||
GPUMemory *mem=CreateMemory(memReqs,flag);
|
||||
|
||||
if(!mem)return(nullptr);
|
||||
|
||||
|
@ -192,7 +192,7 @@ bool CreateDepthAttachment( List<VkAttachmentReference> &ref_list,List<VkAttachm
|
||||
return(true);
|
||||
}
|
||||
|
||||
RenderPass *Device::CreateRenderPass( const List<VkAttachmentDescription> &desc_list,
|
||||
RenderPass *RenderDevice::CreateRenderPass( const List<VkAttachmentDescription> &desc_list,
|
||||
const List<VkSubpassDescription> &subpass,
|
||||
const List<VkSubpassDependency> &dependency,
|
||||
const List<VkFormat> &color_format_list,
|
||||
@ -233,7 +233,7 @@ RenderPass *Device::CreateRenderPass( const List<VkAttachmentDescription> &des
|
||||
return(new RenderPass(attr->device,render_pass,color_format_list,depth_format));
|
||||
}
|
||||
|
||||
RenderPass *Device::CreateRenderPass(const List<VkFormat> &color_format_list,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout)
|
||||
RenderPass *RenderDevice::CreateRenderPass(const List<VkFormat> &color_format_list,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout)
|
||||
{
|
||||
for(const VkFormat &fmt:color_format_list)
|
||||
if(!attr->physical_device->IsColorAttachmentOptimal(fmt))
|
||||
@ -268,7 +268,7 @@ RenderPass *Device::CreateRenderPass(const List<VkFormat> &color_format_list,VkF
|
||||
return CreateRenderPass(atta_desc_list,subpass_desc_list,subpass_dependency_list,color_format_list,depth_format,color_final_layout,depth_final_layout);
|
||||
}
|
||||
|
||||
RenderPass *Device::CreateRenderPass(VkFormat color_format,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout)
|
||||
RenderPass *RenderDevice::CreateRenderPass(VkFormat color_format,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout)
|
||||
{
|
||||
List<VkFormat> color_format_list;
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
RenderTarget *Device::CreateRenderTarget(Framebuffer *fb,const uint32_t fence_count)
|
||||
RenderTarget *RenderDevice::CreateRenderTarget(Framebuffer *fb,const uint32_t fence_count)
|
||||
{
|
||||
CommandBuffer *cb=CreateCommandBuffer(fb->GetExtent(),fb->GetAttachmentCount());
|
||||
|
||||
return(new RenderTarget(this,fb,cb,fence_count));
|
||||
}
|
||||
|
||||
RenderTarget *Device::CreateRenderTarget( const uint w,const uint h,
|
||||
RenderTarget *RenderDevice::CreateRenderTarget( const uint w,const uint h,
|
||||
const List<VkFormat> &color_format_list,
|
||||
const VkFormat depth_format,
|
||||
const VkImageLayout color_layout,
|
||||
@ -65,7 +65,7 @@ RenderTarget *Device::CreateRenderTarget( const uint w,const uint h,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
RenderTarget *Device::CreateRenderTarget( const uint w,const uint h,
|
||||
RenderTarget *RenderDevice::CreateRenderTarget( const uint w,const uint h,
|
||||
const VkFormat color_format,
|
||||
const VkFormat depth_format,
|
||||
const VkImageLayout color_layout,
|
||||
@ -81,7 +81,7 @@ RenderTarget *Device::CreateRenderTarget( const uint w,const uint h,
|
||||
return CreateRenderTarget(w,h,color_format_list,depth_format,color_layout,depth_layout,fence_count);
|
||||
}
|
||||
|
||||
RenderTarget *Device::CreateRenderTarget(const uint w,const uint h,const VkFormat format,const VkImageLayout final_layout,const uint32_t fence_count)
|
||||
RenderTarget *RenderDevice::CreateRenderTarget(const uint w,const uint h,const VkFormat format,const VkImageLayout final_layout,const uint32_t fence_count)
|
||||
{
|
||||
if(w<=0||h<=0)return(nullptr);
|
||||
|
||||
|
@ -15,7 +15,7 @@ namespace
|
||||
return swapchain_extent;
|
||||
}
|
||||
|
||||
VkSwapchainKHR CreateSwapChain(const DeviceAttribute *dev_attr,const VkExtent2D &extent)
|
||||
VkSwapchainKHR CreateSwapChain(const RenderDeviceAttribute *dev_attr,const VkExtent2D &extent)
|
||||
{
|
||||
VkSwapchainCreateInfoKHR swapchain_ci;
|
||||
|
||||
@ -68,7 +68,7 @@ namespace
|
||||
}
|
||||
}//namespace
|
||||
|
||||
bool Device::CreateSwapchainColorTexture()
|
||||
bool RenderDevice::CreateSwapchainColorTexture()
|
||||
{
|
||||
if(vkGetSwapchainImagesKHR(attr->device,swapchain->swap_chain,&(swapchain->swap_chain_count),nullptr)!=VK_SUCCESS)
|
||||
return(false);
|
||||
@ -98,7 +98,7 @@ bool Device::CreateSwapchainColorTexture()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool Device::CreateSwapchainDepthTexture()
|
||||
bool RenderDevice::CreateSwapchainDepthTexture()
|
||||
{
|
||||
const VkFormat depth_format=attr->physical_device->GetDepthFormat();
|
||||
|
||||
@ -115,7 +115,7 @@ bool Device::CreateSwapchainDepthTexture()
|
||||
return swapchain->sc_depth;
|
||||
}
|
||||
|
||||
bool Device::CreateSwapchain(const VkExtent2D &acquire_extent)
|
||||
bool RenderDevice::CreateSwapchain(const VkExtent2D &acquire_extent)
|
||||
{
|
||||
swapchain=new Swapchain;
|
||||
|
||||
|
@ -21,7 +21,7 @@ namespace
|
||||
}
|
||||
}//namespace
|
||||
|
||||
bool Device::CheckFormatSupport(const VkFormat format,const uint32_t bits,ImageTiling tiling) const
|
||||
bool RenderDevice::CheckFormatSupport(const VkFormat format,const uint32_t bits,ImageTiling tiling) const
|
||||
{
|
||||
const VkFormatProperties fp=attr->physical_device->GetFormatProperties(format);
|
||||
|
||||
@ -31,7 +31,7 @@ bool Device::CheckFormatSupport(const VkFormat format,const uint32_t bits,ImageT
|
||||
return(fp.linearTilingFeatures&bits);
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(TextureData *tex_data)
|
||||
Texture2D *RenderDevice::CreateTexture2D(TextureData *tex_data)
|
||||
{
|
||||
if(!tex_data)
|
||||
return(nullptr);
|
||||
@ -39,7 +39,7 @@ Texture2D *Device::CreateTexture2D(TextureData *tex_data)
|
||||
return(new Texture2D(attr->device,tex_data));
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling)
|
||||
Texture2D *RenderDevice::CreateTexture2D(GPUMemory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling)
|
||||
{
|
||||
TextureData *tex_data=new TextureData;
|
||||
|
||||
@ -54,7 +54,7 @@ Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_vi
|
||||
return CreateTexture2D(tex_data);
|
||||
}
|
||||
|
||||
void Device::Clear(TextureCreateInfo *tci)
|
||||
void RenderDevice::Clear(TextureCreateInfo *tci)
|
||||
{
|
||||
if(!tci)return;
|
||||
|
||||
@ -65,7 +65,7 @@ void Device::Clear(TextureCreateInfo *tci)
|
||||
delete tci;
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(TextureCreateInfo *tci)
|
||||
Texture2D *RenderDevice::CreateTexture2D(TextureCreateInfo *tci)
|
||||
{
|
||||
if(!tci)return(nullptr);
|
||||
|
||||
@ -98,7 +98,7 @@ Texture2D *Device::CreateTexture2D(TextureCreateInfo *tci)
|
||||
return tex;
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlags aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling)
|
||||
Texture2D *RenderDevice::CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlags aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling)
|
||||
{
|
||||
if(!CheckTextureFormatSupport(format,tiling))return(nullptr);
|
||||
|
||||
@ -117,7 +117,7 @@ Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t heigh
|
||||
return CreateTexture2D(tci);
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling)
|
||||
Texture2D *RenderDevice::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling)
|
||||
{
|
||||
if(!CheckTextureFormatSupport(format,tiling))return(nullptr);
|
||||
|
||||
@ -136,7 +136,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t
|
||||
return CreateTexture2D(tci);
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(const VkFormat format,Buffer *buf,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling)
|
||||
Texture2D *RenderDevice::CreateTexture2D(const VkFormat format,GPUBuffer *buf,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling)
|
||||
{
|
||||
if(!buf)return(nullptr);
|
||||
|
||||
@ -149,7 +149,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,Buffer *buf,uint32_t wi
|
||||
return(tex);
|
||||
}
|
||||
|
||||
Texture2D *Device::CreateTexture2D(const VkFormat format,void *data,uint32_t width,uint32_t height,uint32_t size,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling)
|
||||
Texture2D *RenderDevice::CreateTexture2D(const VkFormat format,void *data,uint32_t width,uint32_t height,uint32_t size,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling)
|
||||
{
|
||||
Texture2D *tex=CreateTexture2D(format,width,height,aspectMask,usage,image_layout,tiling);
|
||||
|
||||
@ -157,7 +157,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,void *data,uint32_t wid
|
||||
|
||||
if(data)
|
||||
{
|
||||
Buffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data);
|
||||
GPUBuffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data);
|
||||
|
||||
if(buf)
|
||||
{
|
||||
@ -169,7 +169,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,void *data,uint32_t wid
|
||||
return(tex);
|
||||
}
|
||||
|
||||
bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const VkBufferImageCopy *buffer_image_copy,const int count)
|
||||
bool RenderDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const VkBufferImageCopy *buffer_image_copy,const int count)
|
||||
{
|
||||
if(!tex||!buf)
|
||||
return(false);
|
||||
@ -226,7 +226,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const VkBufferImageCopy
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const List<ImageRegion> &ir_list)
|
||||
bool RenderDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const List<ImageRegion> &ir_list)
|
||||
{
|
||||
if(!tex||!buf||ir_list.GetCount()<=0)
|
||||
return(false);
|
||||
@ -264,7 +264,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const List<ImageRegion>
|
||||
return ChangeTexture2D(tex,buf,buffer_image_copy,ir_count);
|
||||
}
|
||||
|
||||
bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height)
|
||||
bool RenderDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height)
|
||||
{
|
||||
if(!tex||!buf
|
||||
||left<0||left+width>tex->GetWidth()
|
||||
@ -290,7 +290,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,uint32_t left,uint32_t t
|
||||
return ChangeTexture2D(tex,buf,&buffer_image_copy,1);
|
||||
}
|
||||
|
||||
bool Device::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size)
|
||||
bool RenderDevice::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size)
|
||||
{
|
||||
if(!tex||!data
|
||||
||left<0||left+width>tex->GetWidth()
|
||||
@ -299,7 +299,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t to
|
||||
||size<=0)
|
||||
return(false);
|
||||
|
||||
Buffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data);
|
||||
GPUBuffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data);
|
||||
|
||||
bool result=ChangeTexture2D(tex,buf,left,top,width,height);
|
||||
|
||||
@ -308,7 +308,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t to
|
||||
return(result);
|
||||
}
|
||||
|
||||
bool Device::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t count)
|
||||
bool RenderDevice::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t count)
|
||||
{
|
||||
if(!cmd_bufs||count<=0)
|
||||
return(false);
|
||||
@ -319,7 +319,7 @@ bool Device::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t count)
|
||||
return(true);
|
||||
}
|
||||
|
||||
Sampler *Device::CreateSampler(VkSamplerCreateInfo *sci)
|
||||
Sampler *RenderDevice::CreateSampler(VkSamplerCreateInfo *sci)
|
||||
{
|
||||
static VkSamplerCreateInfo default_sampler_create_info=
|
||||
{
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include<hgl/graph/VKFence.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
Fence::~Fence()
|
||||
GPUFence::~GPUFence()
|
||||
{
|
||||
vkDestroyFence(device,fence,nullptr);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<iostream>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
Device *CreateRenderDevice(VkInstance,const PhysicalDevice *,Window *);
|
||||
RenderDevice *CreateRenderDevice(VkInstance,const PhysicalRenderDevice *,Window *);
|
||||
|
||||
void CheckInstanceLayer(CharPointerList &layer_list,CreateInstanceLayerInfo *layer_info);
|
||||
|
||||
@ -70,7 +70,7 @@ Instance::Instance(VkInstance i,VKDebugOut *out)
|
||||
vkEnumeratePhysicalDevices(inst, &gpu_count,pd_list);
|
||||
|
||||
for(uint32_t i=0;i<gpu_count;i++)
|
||||
physical_devices.Add(new PhysicalDevice(inst,pd_list[i]));
|
||||
physical_devices.Add(new PhysicalRenderDevice(inst,pd_list[i]));
|
||||
|
||||
delete[] pd_list;
|
||||
}
|
||||
@ -84,10 +84,10 @@ Instance::~Instance()
|
||||
vkDestroyInstance(inst,nullptr);
|
||||
}
|
||||
|
||||
const PhysicalDevice *Instance::GetDevice(VkPhysicalDeviceType type)const
|
||||
const PhysicalRenderDevice *Instance::GetDevice(VkPhysicalDeviceType type)const
|
||||
{
|
||||
const uint32_t count=physical_devices.GetCount();
|
||||
PhysicalDevice **pd=physical_devices.GetData();
|
||||
PhysicalRenderDevice **pd=physical_devices.GetData();
|
||||
|
||||
for(uint32_t i=0;i<count;i++)
|
||||
{
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include<hgl/graph/VKBuffer.h>
|
||||
#include"VKDescriptorSetLayoutCreater.h"
|
||||
VK_NAMESPACE_BEGIN
|
||||
Material *Device::CreateMaterial(ShaderModuleMap *shader_maps)
|
||||
Material *RenderDevice::CreateMaterial(ShaderModuleMap *shader_maps)
|
||||
{
|
||||
const int shader_count=shader_maps->GetCount();
|
||||
|
||||
@ -49,7 +49,7 @@ Material *Device::CreateMaterial(ShaderModuleMap *shader_maps)
|
||||
return(new Material(shader_maps,shader_stage_list,dsl_creater));
|
||||
}
|
||||
|
||||
Material *Device::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module)
|
||||
Material *RenderDevice::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module)
|
||||
{
|
||||
if(!vertex_shader_module||!fragment_shader_module)
|
||||
return(nullptr);
|
||||
@ -65,7 +65,7 @@ Material *Device::CreateMaterial(const VertexShaderModule *vertex_shader_module,
|
||||
return CreateMaterial(smm);
|
||||
}
|
||||
|
||||
Material *Device::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module)
|
||||
Material *RenderDevice::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module)
|
||||
{
|
||||
if(!vertex_shader_module
|
||||
||!geometry_shader_module
|
||||
|
@ -15,7 +15,7 @@ MaterialInstance::~MaterialInstance()
|
||||
delete descriptor_sets;
|
||||
}
|
||||
|
||||
bool MaterialInstance::BindUBO(const AnsiString &name,vulkan::Buffer *ubo)
|
||||
bool MaterialInstance::BindUBO(const AnsiString &name,vulkan::GPUBuffer *ubo)
|
||||
{
|
||||
if(name.IsEmpty()||!ubo)
|
||||
return(false);
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include<hgl/graph/VKMemory.h>
|
||||
#include<hgl/graph/VKPhysicalDevice.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
Memory *Device::CreateMemory(const VkMemoryRequirements &req,uint32_t properties)
|
||||
GPUMemory *RenderDevice::CreateMemory(const VkMemoryRequirements &req,uint32_t properties)
|
||||
{
|
||||
uint32_t index;
|
||||
|
||||
@ -21,15 +21,15 @@ Memory *Device::CreateMemory(const VkMemoryRequirements &req,uint32_t properties
|
||||
if(vkAllocateMemory(attr->device,&alloc_info,nullptr,&memory)!=VK_SUCCESS)
|
||||
return(nullptr);
|
||||
|
||||
return(new Memory(attr->device,memory,req,index,properties));
|
||||
return(new GPUMemory(attr->device,memory,req,index,properties));
|
||||
}
|
||||
|
||||
Memory::~Memory()
|
||||
GPUMemory::~GPUMemory()
|
||||
{
|
||||
vkFreeMemory(device,memory,nullptr);
|
||||
}
|
||||
|
||||
void *Memory::Map()
|
||||
void *GPUMemory::Map()
|
||||
{
|
||||
void *result;
|
||||
|
||||
@ -39,7 +39,7 @@ void *Memory::Map()
|
||||
return(nullptr);
|
||||
}
|
||||
|
||||
void *Memory::Map(const VkDeviceSize offset,const VkDeviceSize size)
|
||||
void *GPUMemory::Map(const VkDeviceSize offset,const VkDeviceSize size)
|
||||
{
|
||||
if(offset<0||offset+size>=req.size)
|
||||
return(nullptr);
|
||||
@ -52,12 +52,12 @@ void *Memory::Map(const VkDeviceSize offset,const VkDeviceSize size)
|
||||
return(nullptr);
|
||||
}
|
||||
|
||||
void Memory::Unmap()
|
||||
void GPUMemory::Unmap()
|
||||
{
|
||||
vkUnmapMemory(device,memory);
|
||||
}
|
||||
|
||||
bool Memory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size)
|
||||
bool GPUMemory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size)
|
||||
{
|
||||
if(!ptr)return(false);
|
||||
|
||||
@ -71,14 +71,14 @@ bool Memory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool Memory::BindBuffer(VkBuffer buffer)
|
||||
bool GPUMemory::BindBuffer(VkBuffer buffer)
|
||||
{
|
||||
if(!buffer)return(false);
|
||||
|
||||
return(vkBindBufferMemory(device,buffer,memory,0)==VK_SUCCESS);
|
||||
}
|
||||
|
||||
bool Memory::BindImage(VkImage image)
|
||||
bool GPUMemory::BindImage(VkImage image)
|
||||
{
|
||||
if(!image)return(false);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include<hgl/graph/VKPhysicalDevice.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
PhysicalDevice::PhysicalDevice(VkInstance inst,VkPhysicalDevice pd)
|
||||
PhysicalRenderDevice::PhysicalRenderDevice(VkInstance inst,VkPhysicalDevice pd)
|
||||
{
|
||||
instance=inst;
|
||||
physical_device=pd;
|
||||
@ -31,19 +31,19 @@ PhysicalDevice::PhysicalDevice(VkInstance inst,VkPhysicalDevice pd)
|
||||
vkGetPhysicalDeviceFeatures(physical_device,&features);
|
||||
vkGetPhysicalDeviceMemoryProperties(physical_device,&memory_properties);
|
||||
|
||||
PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2=nullptr;
|
||||
PFN_vkGetPhysicalDeviceProperties2 GetPhysicalRenderDeviceProperties2=nullptr;
|
||||
|
||||
if(GetExtensionSpecVersion(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
|
||||
GetPhysicalDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2KHR)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2KHR");
|
||||
GetPhysicalRenderDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2KHR)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2KHR");
|
||||
|
||||
if(!GetPhysicalDeviceProperties2)
|
||||
if(!GetPhysicalRenderDeviceProperties2)
|
||||
if(GetExtensionSpecVersion(VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME))
|
||||
GetPhysicalDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2");
|
||||
GetPhysicalRenderDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2");
|
||||
|
||||
if(GetPhysicalDeviceProperties2)
|
||||
if(GetPhysicalRenderDeviceProperties2)
|
||||
{
|
||||
VkPhysicalDeviceProperties2KHR properties2;
|
||||
GetPhysicalDeviceProperties2(physical_device,&properties2);
|
||||
GetPhysicalRenderDeviceProperties2(physical_device,&properties2);
|
||||
|
||||
hgl_cpy(properties,properties2.properties);
|
||||
|
||||
@ -58,7 +58,7 @@ PhysicalDevice::PhysicalDevice(VkInstance inst,VkPhysicalDevice pd)
|
||||
}
|
||||
}
|
||||
|
||||
const uint32_t PhysicalDevice::GetExtensionSpecVersion(const AnsiString &name)const
|
||||
const uint32_t PhysicalRenderDevice::GetExtensionSpecVersion(const AnsiString &name)const
|
||||
{
|
||||
const uint count=extension_properties.GetCount();
|
||||
const VkExtensionProperties *ep=extension_properties.GetData();
|
||||
@ -72,7 +72,7 @@ const uint32_t PhysicalDevice::GetExtensionSpecVersion(const AnsiString &name)co
|
||||
return 0;
|
||||
}
|
||||
|
||||
const bool PhysicalDevice::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex)const
|
||||
const bool PhysicalRenderDevice::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex)const
|
||||
{
|
||||
// Search memtypes to find first index with those properties
|
||||
for(uint32_t i=0; i<memory_properties.memoryTypeCount; i++)
|
||||
@ -92,7 +92,7 @@ const bool PhysicalDevice::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFla
|
||||
return false;
|
||||
}
|
||||
|
||||
VkFormat PhysicalDevice::GetDepthFormat(bool lower_to_high)const
|
||||
VkFormat PhysicalRenderDevice::GetDepthFormat(bool lower_to_high)const
|
||||
{
|
||||
constexpr VkFormat depthFormats[] =
|
||||
{
|
||||
@ -120,7 +120,7 @@ VkFormat PhysicalDevice::GetDepthFormat(bool lower_to_high)const
|
||||
return result;
|
||||
}
|
||||
|
||||
VkFormat PhysicalDevice::GetDepthStencilFormat(bool lower_to_high)const
|
||||
VkFormat PhysicalRenderDevice::GetDepthStencilFormat(bool lower_to_high)const
|
||||
{
|
||||
constexpr VkFormat depthStencilFormats[] =
|
||||
{
|
||||
|
@ -40,7 +40,7 @@ Pipeline *CreatePipeline(VkDevice device,VkPipelineCache pipeline_cache,Pipeline
|
||||
return(new Pipeline(device,graphicsPipeline,data));
|
||||
}
|
||||
|
||||
Pipeline *Device::CreatePipeline(const InlinePipeline &ip,const Material *mtl,const RenderTarget *rt)
|
||||
Pipeline *RenderDevice::CreatePipeline(const InlinePipeline &ip,const Material *mtl,const RenderTarget *rt)
|
||||
{
|
||||
PipelineData *pd=GetPipelineData(ip);
|
||||
|
||||
@ -49,7 +49,7 @@ Pipeline *Device::CreatePipeline(const InlinePipeline &ip,const Material *mtl,co
|
||||
return VK_NAMESPACE::CreatePipeline(attr->device,attr->pipeline_cache,pd,mtl,rt);
|
||||
}
|
||||
|
||||
Pipeline *Device::CreatePipeline(PipelineData *pd,const Material *mtl,const RenderTarget *rt)
|
||||
Pipeline *RenderDevice::CreatePipeline(PipelineData *pd,const Material *mtl,const RenderTarget *rt)
|
||||
{
|
||||
return VK_NAMESPACE::CreatePipeline(attr->device,attr->pipeline_cache,pd,mtl,rt);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/graph/VKSemaphore.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
RenderTarget::RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count)
|
||||
RenderTarget::RenderTarget(RenderDevice *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count)
|
||||
{
|
||||
rp=nullptr;
|
||||
fb=_fb;
|
||||
@ -21,7 +21,7 @@ RenderTarget::RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const
|
||||
render_complete_semaphore=dev->CreateSemaphore();
|
||||
}
|
||||
|
||||
RenderTarget::RenderTarget(Device *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **ctl,const uint32_t cc,Texture2D *dt,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count)
|
||||
RenderTarget::RenderTarget(RenderDevice *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **ctl,const uint32_t cc,Texture2D *dt,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count)
|
||||
{
|
||||
rp=_rp;
|
||||
fb=_fb;
|
||||
@ -68,7 +68,7 @@ bool RenderTarget::Submit(GPUSemaphore *present_complete_semaphore)
|
||||
return this->SubmitQueue::Submit(*command_buffer,present_complete_semaphore,render_complete_semaphore);
|
||||
}
|
||||
|
||||
SwapchainRenderTarget::SwapchainRenderTarget(Device *dev,Swapchain *sc):RenderTarget(dev,nullptr,nullptr,sc->GetImageCount())
|
||||
SwapchainRenderTarget::SwapchainRenderTarget(RenderDevice *dev,Swapchain *sc):RenderTarget(dev,nullptr,nullptr,sc->GetImageCount())
|
||||
{
|
||||
swapchain=sc;
|
||||
vk_swapchain=swapchain->GetSwapchain();
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
ShaderModule *Device::CreateShaderModule(ShaderResource *sr)
|
||||
ShaderModule *RenderDevice::CreateShaderModule(ShaderResource *sr)
|
||||
{
|
||||
if(!sr)return(nullptr);
|
||||
|
||||
|
@ -8,7 +8,7 @@ namespace
|
||||
const VkPipelineStageFlags pipe_stage_flags=VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
||||
}//namespace
|
||||
|
||||
SubmitQueue::SubmitQueue(Device *dev,VkQueue q,const uint32_t fence_count)
|
||||
SubmitQueue::SubmitQueue(RenderDevice *dev,VkQueue q,const uint32_t fence_count)
|
||||
{
|
||||
device=dev;
|
||||
queue=q;
|
||||
|
@ -90,16 +90,16 @@ namespace
|
||||
{
|
||||
protected:
|
||||
|
||||
Device *device;
|
||||
RenderDevice *device;
|
||||
|
||||
VkFormat format;
|
||||
vulkan::Buffer *buf;
|
||||
vulkan::GPUBuffer *buf;
|
||||
|
||||
Texture2D *tex;
|
||||
|
||||
public:
|
||||
|
||||
VkTexture2DLoader(Device *dev):device(dev)
|
||||
VkTexture2DLoader(RenderDevice *dev):device(dev)
|
||||
{
|
||||
buf=nullptr;
|
||||
format=VK_FORMAT_UNDEFINED;
|
||||
@ -169,7 +169,7 @@ namespace
|
||||
};//class VkTexture2DLoader
|
||||
}//namespace
|
||||
|
||||
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename)
|
||||
Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename)
|
||||
{
|
||||
VkTexture2DLoader loader(device);
|
||||
|
||||
|
@ -61,7 +61,7 @@ namespace
|
||||
}//namespace
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
TileData *Device::CreateTileData(const VkFormat format,const uint width,const uint height,const uint count)
|
||||
TileData *RenderDevice::CreateTileData(const VkFormat format,const uint width,const uint height,const uint count)
|
||||
{
|
||||
if(!CheckVulkanFormat(format))
|
||||
return(nullptr);
|
||||
|
@ -7,7 +7,7 @@ VK_NAMESPACE_BEGIN
|
||||
* @param f 字体需求信息
|
||||
* @param limit_count 缓冲字符数量上限
|
||||
*/
|
||||
TileFont *Device::CreateTileFont(FontSource *fs,int limit_count)
|
||||
TileFont *RenderDevice::CreateTileFont(FontSource *fs,int limit_count)
|
||||
{
|
||||
if(!fs)return(nullptr);
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
TileData::TileData(Device *dev,Texture2D *tt,const uint tw,const uint th)
|
||||
TileData::TileData(RenderDevice *dev,Texture2D *tt,const uint tw,const uint th)
|
||||
{
|
||||
device=dev;
|
||||
|
||||
|
@ -6,7 +6,7 @@ namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
TextRenderable::TextRenderable(vulkan::Device *dev,vulkan::Material *m,uint mc):vulkan::Renderable(mc)
|
||||
TextRenderable::TextRenderable(vulkan::RenderDevice *dev,vulkan::Material *m,uint mc):vulkan::Renderable(mc)
|
||||
{
|
||||
device=dev;
|
||||
mtl=m;
|
||||
|
Loading…
x
Reference in New Issue
Block a user