CreatePipeline functions support InlinePipeline
This commit is contained in:
parent
b93925ce5a
commit
ccf24106ab
@ -1 +1 @@
|
||||
Subproject commit 543cd58d70b60706c58b58ad9189249f27e1a63d
|
||||
Subproject commit 6113fb00e0a3c8896de4018f554432679fc5fe43
|
@ -4,6 +4,7 @@
|
||||
#include"VulkanAppFramework.h"
|
||||
#include<hgl/graph/vulkan/VKTexture.h>
|
||||
#include<hgl/graph/vulkan/VKSampler.h>
|
||||
#include<hgl/graph/vulkan/VKInlinePipeline.h>
|
||||
#include<hgl/math/Math.h>
|
||||
|
||||
using namespace hgl;
|
||||
@ -62,7 +63,7 @@ private:
|
||||
material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/Texture2D"));
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,OS_TEXT("res/pipeline/solid2d"));
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D);
|
||||
if(!pipeline)return(false);
|
||||
|
||||
texture=vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/lena.Tex2D"));
|
||||
|
@ -269,6 +269,16 @@ public:
|
||||
|
||||
public: //pipeline
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::Material *mtl,const vulkan::InlinePipeline &ip,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mtl,sc_render_target,ip,prim,prim_restart);
|
||||
}
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::MaterialInstance *mi,const vulkan::InlinePipeline &ip,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mi,sc_render_target,ip,prim,prim_restart);
|
||||
}
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::Material *mtl,vulkan::PipelineData *pd,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mtl,sc_render_target,pd,prim,prim_restart);
|
||||
|
@ -59,6 +59,7 @@ class Material;
|
||||
class MaterialInstance;
|
||||
class PipelineLayout;
|
||||
struct PipelineData;
|
||||
enum class InlinePipeline;
|
||||
class Pipeline;
|
||||
class DescriptorSets;
|
||||
class VertexAttributeBinding;
|
||||
|
@ -98,10 +98,12 @@ public: //Material
|
||||
MaterialInstance * CreateMaterialInstance(Material *);
|
||||
MaterialInstance * CreateMaterialInstance(const OSString &);
|
||||
|
||||
Pipeline * CreatePipeline(Material *, RenderTarget *,PipelineData *, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(MaterialInstance *, RenderTarget *,PipelineData *, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(Material *, RenderTarget *,const OSString &,const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(MaterialInstance *, RenderTarget *,const OSString &,const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(Material *, RenderTarget *,const InlinePipeline &, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(MaterialInstance *, RenderTarget *,const InlinePipeline &, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(Material *, RenderTarget *, PipelineData *, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(MaterialInstance *, RenderTarget *, PipelineData *, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(Material *, RenderTarget *,const OSString &, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
Pipeline * CreatePipeline(MaterialInstance *, RenderTarget *,const OSString &, const Prim &prim=Prim::Triangles,const bool prim_restart=false);
|
||||
|
||||
Renderable * CreateRenderable(const uint32_t vertex_count=0);
|
||||
TextRenderable * CreateTextRenderable(Material *);
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
#include<hgl/graph/vulkan/VK.h>
|
||||
#include<hgl/graph/vulkan/VKPipelineData.h>
|
||||
#include<hgl/graph/vulkan/VKInlinePipeline.h>
|
||||
#include<hgl/io/DataOutputStream.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
class Pipeline
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include<hgl/graph/vulkan/VKDatabase.h>
|
||||
#include<hgl/graph/vulkan/VKDevice.h>
|
||||
#include<hgl/graph/vulkan/VKRenderableInstance.h>
|
||||
#include<hgl/graph/vulkan/VKInlinePipeline.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode)
|
||||
@ -70,6 +71,25 @@ MaterialInstance *Database::CreateMaterialInstance(const OSString &mtl_filename)
|
||||
return CreateMaterialInstance(mtl);
|
||||
}
|
||||
|
||||
Pipeline *Database::CreatePipeline(Material *mtl,RenderTarget *rt,const InlinePipeline &ip,const Prim &prim,const bool prim_restart)
|
||||
{
|
||||
PipelineData *pd=GetPipelineData(ip);
|
||||
|
||||
pd->Set(prim,prim_restart);
|
||||
|
||||
Pipeline *p=device->CreatePipeline(pd,mtl,rt);
|
||||
|
||||
if(p)
|
||||
Add(p);
|
||||
|
||||
return(p);
|
||||
}
|
||||
|
||||
Pipeline *Database::CreatePipeline(MaterialInstance *mi,RenderTarget *rt,const InlinePipeline &ip,const Prim &prim,const bool prim_restart)
|
||||
{
|
||||
return CreatePipeline(mi->GetMaterial(),rt,ip,prim,prim_restart);
|
||||
}
|
||||
|
||||
Pipeline *Database::CreatePipeline(Material *mtl,RenderTarget *rt,PipelineData *pd,const Prim &prim,const bool prim_restart)
|
||||
{
|
||||
pd->Set(prim,prim_restart);
|
||||
|
@ -40,6 +40,15 @@ 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)
|
||||
{
|
||||
PipelineData *pd=GetPipelineData(ip);
|
||||
|
||||
if(!pd)return(nullptr);
|
||||
|
||||
return VK_NAMESPACE::CreatePipeline(attr->device,attr->pipeline_cache,pd,mtl,rt);
|
||||
}
|
||||
|
||||
Pipeline *Device::CreatePipeline(PipelineData *pd,const Material *mtl,const RenderTarget *rt)
|
||||
{
|
||||
return VK_NAMESPACE::CreatePipeline(attr->device,attr->pipeline_cache,pd,mtl,rt);
|
||||
|
Loading…
x
Reference in New Issue
Block a user