remove vulkan namespace
This commit is contained in:
@@ -35,13 +35,13 @@ private:
|
||||
|
||||
Camera cam;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color_material =nullptr;
|
||||
vulkan::GPUBuffer * ubo_line_config =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
GPUBuffer * ubo_color_material =nullptr;
|
||||
GPUBuffer * ubo_line_config =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -61,9 +61,9 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
vulkan::GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
{
|
||||
vulkan::GPUBuffer *ubo=db->CreateUBO(size,data);
|
||||
GPUBuffer *ubo=db->CreateUBO(size,data);
|
||||
|
||||
if(!ubo)
|
||||
return(nullptr);
|
||||
@@ -97,7 +97,7 @@ private:
|
||||
|
||||
bool InitVBO()
|
||||
{
|
||||
vulkan::Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT);
|
||||
Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT);
|
||||
if(!render_obj)return(false);
|
||||
|
||||
if(!render_obj->Set(VAN::Position, db->CreateVAB(VAF_VEC2,VERTEX_COUNT,vertex_data)))return(false);
|
||||
|
@@ -37,13 +37,13 @@ private:
|
||||
SceneNode render_root;
|
||||
RenderList render_list;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Pipeline * pipeline_solid =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
Pipeline * pipeline_solid =nullptr;
|
||||
|
||||
vulkan::GPUBuffer * ubo_atomsphere =nullptr;
|
||||
AtmosphereData atomsphere_data;
|
||||
GPUBuffer * ubo_atomsphere =nullptr;
|
||||
AtmosphereData atomsphere_data;
|
||||
|
||||
vulkan::Renderable * ro_sphere =nullptr;
|
||||
Renderable * ro_sphere =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -53,7 +53,7 @@ private:
|
||||
if(!material_instance)return(false);
|
||||
|
||||
// pipeline_solid=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/sky"));
|
||||
pipeline_solid=CreatePipeline(material_instance,vulkan::InlinePipeline::Sky); //等同上一行,为Framework重载,默认使用swapchain的render target
|
||||
pipeline_solid=CreatePipeline(material_instance,InlinePipeline::Sky); //等同上一行,为Framework重载,默认使用swapchain的render target
|
||||
if(!pipeline_solid)return(false);
|
||||
|
||||
return(true);
|
||||
|
@@ -22,7 +22,7 @@ VK_NAMESPACE_END
|
||||
constexpr uint32_t SCREEN_WIDTH=512;
|
||||
constexpr uint32_t SCREEN_HEIGHT=512;
|
||||
|
||||
using Texture2DPointer=vulkan::Texture2D *;
|
||||
using Texture2DPointer=Texture2D *;
|
||||
|
||||
class TestApp:public CameraAppFramework
|
||||
{
|
||||
@@ -31,20 +31,20 @@ private:
|
||||
SceneNode render_root;
|
||||
RenderList render_list;
|
||||
|
||||
vulkan::RenderTarget *gbuffer_rt;
|
||||
RenderTarget *gbuffer_rt;
|
||||
|
||||
struct SubpassParam
|
||||
{
|
||||
vulkan::Material * material;
|
||||
vulkan::MaterialInstance * material_instance;
|
||||
vulkan::Pipeline * pipeline_fan;
|
||||
vulkan::Pipeline * pipeline_triangles;
|
||||
Material * material;
|
||||
MaterialInstance * material_instance;
|
||||
Pipeline * pipeline_fan;
|
||||
Pipeline * pipeline_triangles;
|
||||
};//
|
||||
|
||||
SubpassParam sp_gbuffer;
|
||||
SubpassParam sp_composition;
|
||||
|
||||
vulkan::Renderable *ro_plane,
|
||||
Renderable *ro_plane,
|
||||
*ro_cube,
|
||||
*ro_sphere,
|
||||
*ro_torus,
|
||||
@@ -53,7 +53,7 @@ private:
|
||||
|
||||
*ro_gbc_plane;
|
||||
|
||||
vulkan::Sampler * sampler=nullptr;
|
||||
Sampler * sampler=nullptr;
|
||||
|
||||
struct
|
||||
{
|
||||
@@ -61,7 +61,7 @@ private:
|
||||
Texture2DPointer normal=nullptr;
|
||||
}texture;
|
||||
|
||||
vulkan::GPUCmdBuffer *gbuffer_cmd=nullptr;
|
||||
GPUCmdBuffer *gbuffer_cmd=nullptr;
|
||||
|
||||
public:
|
||||
|
||||
@@ -101,18 +101,18 @@ private:
|
||||
|
||||
bool InitGBufferPipeline(SubpassParam *sp)
|
||||
{
|
||||
sp->pipeline_triangles =db->CreatePipeline(sp->material,gbuffer_rt,vulkan::InlinePipeline::Solid3D,Prim::Triangles);
|
||||
sp->pipeline_triangles =db->CreatePipeline(sp->material,gbuffer_rt,InlinePipeline::Solid3D,Prim::Triangles);
|
||||
if(!sp->pipeline_triangles)
|
||||
return(false);
|
||||
|
||||
sp->pipeline_fan =db->CreatePipeline(sp->material,gbuffer_rt,vulkan::InlinePipeline::Solid3D,Prim::Fan);
|
||||
sp->pipeline_fan =db->CreatePipeline(sp->material,gbuffer_rt,InlinePipeline::Solid3D,Prim::Fan);
|
||||
|
||||
return sp->pipeline_fan;
|
||||
}
|
||||
|
||||
bool InitCompositionPipeline(SubpassParam *sp)
|
||||
{
|
||||
sp->pipeline_fan=db->CreatePipeline(sp->material,gbuffer_rt,vulkan::InlinePipeline::Solid2D,Prim::Fan);
|
||||
sp->pipeline_fan=db->CreatePipeline(sp->material,gbuffer_rt,InlinePipeline::Solid2D,Prim::Fan);
|
||||
|
||||
return sp->pipeline_fan;
|
||||
}
|
||||
@@ -125,8 +125,8 @@ private:
|
||||
if(!InitGBufferPipeline(&sp_gbuffer))return(false);
|
||||
if(!InitCompositionPipeline(&sp_composition))return(false);
|
||||
|
||||
texture.color =vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/Brickwall/Albedo.Tex2D"));
|
||||
texture.normal =vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/Brickwall/Normal.Tex2D"));
|
||||
texture.color =CreateTextureFromFile(device,OS_TEXT("res/image/Brickwall/Albedo.Tex2D"));
|
||||
texture.normal =CreateTextureFromFile(device,OS_TEXT("res/image/Brickwall/Normal.Tex2D"));
|
||||
|
||||
sampler=device->CreateSampler();
|
||||
|
||||
@@ -144,7 +144,7 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void CreateRenderObject(vulkan::Material *mtl)
|
||||
void CreateRenderObject(Material *mtl)
|
||||
{
|
||||
{
|
||||
struct PlaneCreateInfo pci;
|
||||
|
@@ -26,12 +26,12 @@ class TestApp:public VulkanApplicationFramework
|
||||
|
||||
private:
|
||||
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color =nullptr;
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
GPUBuffer * ubo_color =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -59,7 +59,7 @@ private:
|
||||
material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/LumTextureRect2D"));
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D,Prim::Rectangles);
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::Rectangles);
|
||||
if(!pipeline)return(false);
|
||||
|
||||
sampler=db->CreateSampler();
|
||||
|
@@ -38,13 +38,13 @@ class TestApp:public VulkanApplicationFramework
|
||||
|
||||
private:
|
||||
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Renderable * render_obj =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
Renderable * render_obj =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
public:
|
||||
|
||||
@@ -150,7 +150,7 @@ private:
|
||||
if(!material_instance)
|
||||
return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D,Prim::Rectangles);
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::Rectangles);
|
||||
|
||||
sampler=db->CreateSampler();
|
||||
|
||||
|
@@ -26,11 +26,11 @@ private:
|
||||
|
||||
Camera cam;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -41,7 +41,7 @@ private:
|
||||
if(!material_instance)
|
||||
return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D,Prim::TriangleStrip);
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::TriangleStrip);
|
||||
|
||||
if(!pipeline)
|
||||
return(false);
|
||||
|
@@ -28,17 +28,17 @@ private:
|
||||
SceneNode render_root;
|
||||
RenderList render_list;
|
||||
|
||||
vulkan::Material * material =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
Material * material =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
|
||||
vulkan::Renderable *ro_rectangle =nullptr,
|
||||
Renderable *ro_rectangle =nullptr,
|
||||
*ro_circle =nullptr,
|
||||
*ro_round_rectangle =nullptr;
|
||||
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::GPUBuffer * ubo_color_material =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
GPUBuffer * ubo_color_material =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -52,7 +52,7 @@ private:
|
||||
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline=CreatePipeline(material,vulkan::InlinePipeline::Solid2D,Prim::Fan);
|
||||
pipeline=CreatePipeline(material,InlinePipeline::Solid2D,Prim::Fan);
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
@@ -92,9 +92,9 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
vulkan::GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data)
|
||||
{
|
||||
vulkan::GPUBuffer *ubo=db->CreateUBO(size,data);
|
||||
GPUBuffer *ubo=db->CreateUBO(size,data);
|
||||
|
||||
if(!ubo)
|
||||
return(nullptr);
|
||||
|
@@ -16,7 +16,7 @@ class TestApp:public CameraAppFramework
|
||||
{
|
||||
Color4f color;
|
||||
|
||||
vulkan::GPUBuffer *ubo_color=nullptr;
|
||||
GPUBuffer *ubo_color=nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -25,12 +25,12 @@ private:
|
||||
|
||||
struct MDP
|
||||
{
|
||||
vulkan::Material * material =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Material * material =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
}m3d,m2d;
|
||||
|
||||
vulkan::Renderable *ro_plane_grid[3],
|
||||
Renderable *ro_plane_grid[3],
|
||||
*ro_round_rectangle =nullptr;
|
||||
|
||||
private:
|
||||
@@ -43,7 +43,7 @@ private:
|
||||
mdp->material_instance=db->CreateMaterialInstance(mdp->material);
|
||||
if(!mdp->material_instance)return(false);
|
||||
|
||||
mdp->pipeline=CreatePipeline(mdp->material_instance,vulkan::InlinePipeline::Solid3D,primitive);
|
||||
mdp->pipeline=CreatePipeline(mdp->material_instance,InlinePipeline::Solid3D,primitive);
|
||||
|
||||
if(!mdp->material_instance->BindUBO("world",GetCameraMatrixBuffer()))
|
||||
return(false);
|
||||
@@ -52,14 +52,14 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Add(vulkan::Renderable *r,MDP &mdp)
|
||||
void Add(Renderable *r,MDP &mdp)
|
||||
{
|
||||
auto ri=db->CreateRenderableInstance(r,mdp.material_instance,mdp.pipeline);
|
||||
|
||||
render_root.Add(ri);
|
||||
}
|
||||
|
||||
void Add(vulkan::Renderable *r,MDP &mdp,const Matrix4f &mat)
|
||||
void Add(Renderable *r,MDP &mdp,const Matrix4f &mat)
|
||||
{
|
||||
auto ri=db->CreateRenderableInstance(r,mdp.material_instance,mdp.pipeline);
|
||||
|
||||
|
@@ -45,28 +45,28 @@ class TestApp:public VulkanApplicationFramework
|
||||
{
|
||||
private:
|
||||
|
||||
vulkan::PipelineData * pipeline_data =nullptr;
|
||||
vulkan::Renderable * render_obj =nullptr;
|
||||
vulkan::Sampler * sampler_linear =nullptr;
|
||||
vulkan::Sampler * sampler_nearest =nullptr;
|
||||
PipelineData * pipeline_data =nullptr;
|
||||
Renderable * render_obj =nullptr;
|
||||
Sampler * sampler_linear =nullptr;
|
||||
Sampler * sampler_nearest =nullptr;
|
||||
|
||||
struct MP
|
||||
{
|
||||
vulkan::Material * material =nullptr;
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Material * material =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
}mp_normal,mp_hq;
|
||||
|
||||
struct MIR
|
||||
{
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
}mir_nearest,mir_linear,mir_nearest_hq,mir_linear_hq;
|
||||
|
||||
vulkan::Texture2D * texture =nullptr;
|
||||
Texture2D * texture =nullptr;
|
||||
|
||||
vulkan::VAB * vertex_buffer =nullptr;
|
||||
vulkan::VAB * tex_coord_buffer =nullptr;
|
||||
vulkan::IndexBuffer * index_buffer =nullptr;
|
||||
VAB * vertex_buffer =nullptr;
|
||||
VAB * tex_coord_buffer =nullptr;
|
||||
IndexBuffer * index_buffer =nullptr;
|
||||
|
||||
SceneNode render_root;
|
||||
RenderList render_list;
|
||||
@@ -110,9 +110,9 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
vulkan::Sampler *InitSampler(VkFilter filter)
|
||||
Sampler *InitSampler(VkFilter filter)
|
||||
{
|
||||
vulkan::SamplerCreateInfo sampler_create_info;
|
||||
SamplerCreateInfo sampler_create_info;
|
||||
|
||||
sampler_create_info.magFilter = filter;
|
||||
sampler_create_info.minFilter = filter;
|
||||
@@ -135,7 +135,7 @@ private:
|
||||
|
||||
bool InitTexture()
|
||||
{
|
||||
texture=vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/heightmap.Tex2D"));
|
||||
texture=CreateTextureFromFile(device,OS_TEXT("res/image/heightmap.Tex2D"));
|
||||
return texture;
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ private:
|
||||
|
||||
bool InitMaterial()
|
||||
{
|
||||
pipeline_data=vulkan::GetPipelineData(vulkan::InlinePipeline::Solid2D);
|
||||
pipeline_data=GetPipelineData(InlinePipeline::Solid2D);
|
||||
if(!pipeline_data)return(false);
|
||||
|
||||
if(!InitMaterial(&mp_normal,OS_TEXT("res/material/Texture2DPC")))return(false);
|
||||
@@ -161,7 +161,7 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool InitMIR(struct MIR *mir,vulkan::Sampler *sampler,MP *mp)
|
||||
bool InitMIR(struct MIR *mir,Sampler *sampler,MP *mp)
|
||||
{
|
||||
mir->material_instance=db->CreateMaterialInstance(mp->material);
|
||||
if(!mir->material_instance)return(false);
|
||||
@@ -239,7 +239,7 @@ public:
|
||||
int main(int,char **)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if(!vulkan::CheckStrideBytesByFormat())
|
||||
if(!CheckStrideBytesByFormat())
|
||||
return 0xff;
|
||||
#endif//
|
||||
|
||||
|
@@ -23,16 +23,16 @@ private:
|
||||
SceneNode render_root;
|
||||
RenderList render_list;
|
||||
|
||||
vulkan::Material * material =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
Material * material =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
|
||||
vulkan::PipelineData * pipeline_data =nullptr;
|
||||
vulkan::Pipeline * pipeline_line =nullptr;
|
||||
vulkan::Pipeline * pipeline_solid =nullptr;
|
||||
PipelineData * pipeline_data =nullptr;
|
||||
Pipeline * pipeline_line =nullptr;
|
||||
Pipeline * pipeline_solid =nullptr;
|
||||
|
||||
vulkan::GPUBuffer * ubo_color =nullptr;
|
||||
GPUBuffer * ubo_color =nullptr;
|
||||
|
||||
vulkan::Renderable *ro_plane_grid,
|
||||
Renderable *ro_plane_grid,
|
||||
*ro_cube,
|
||||
*ro_sphere,
|
||||
*ro_dome,
|
||||
@@ -50,7 +50,7 @@ private:
|
||||
material_instance=db->CreateMaterialInstance(material);
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline_data=vulkan::GetPipelineData(vulkan::InlinePipeline::Solid3D);
|
||||
pipeline_data=GetPipelineData(InlinePipeline::Solid3D);
|
||||
if(!pipeline_data)return(false);
|
||||
|
||||
pipeline_line=CreatePipeline(material,pipeline_data,Prim::Lines);
|
||||
@@ -155,14 +155,14 @@ private:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void Add(vulkan::Renderable *r,vulkan::Pipeline *pl)
|
||||
void Add(Renderable *r,Pipeline *pl)
|
||||
{
|
||||
auto ri=db->CreateRenderableInstance(r,material_instance,pl);
|
||||
|
||||
render_root.Add(ri);
|
||||
}
|
||||
|
||||
void Add(vulkan::Renderable *r,vulkan::Pipeline *pl,const Matrix4f &mat)
|
||||
void Add(Renderable *r,Pipeline *pl,const Matrix4f &mat)
|
||||
{
|
||||
auto ri=db->CreateRenderableInstance(r,material_instance,pl);
|
||||
|
||||
|
@@ -15,24 +15,24 @@ class TestApp:public CameraAppFramework
|
||||
{
|
||||
Camera cam;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
};
|
||||
|
||||
struct:public RenderObject
|
||||
{
|
||||
vulkan::RenderTarget * render_taget =nullptr;
|
||||
RenderTarget * render_taget =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
}os;
|
||||
|
||||
struct:public RenderObject
|
||||
{
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
Sampler * sampler =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
|
||||
SceneNode scene_root;
|
||||
RenderList render_list;
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
os.material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D"));
|
||||
if(!os.material_instance)return(false);
|
||||
|
||||
os.pipeline=db->CreatePipeline(os.material_instance,os.render_taget,vulkan::InlinePipeline::Solid2D,Prim::Fan);
|
||||
os.pipeline=db->CreatePipeline(os.material_instance,os.render_taget,InlinePipeline::Solid2D,Prim::Fan);
|
||||
if(!os.pipeline)return(false);
|
||||
|
||||
if(!InitUBO(&os,os.render_taget->GetExtent()))
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
cci.center_color.Set(1,1,1,1);
|
||||
cci.border_color.Set(1,1,1,0);
|
||||
|
||||
vulkan::Renderable *render_obj=CreateRenderableCircle(db,os.material_instance->GetMaterial(),&cci);
|
||||
Renderable *render_obj=CreateRenderableCircle(db,os.material_instance->GetMaterial(),&cci);
|
||||
if(!render_obj)return(false);
|
||||
|
||||
os.renderable_instance=db->CreateRenderableInstance(render_obj,os.material_instance,os.pipeline);
|
||||
@@ -107,7 +107,7 @@ public:
|
||||
cube.material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/TextureMask3D"));
|
||||
if(!cube.material_instance)return(false);
|
||||
|
||||
cube.pipeline=CreatePipeline(cube.material_instance,vulkan::InlinePipeline::Solid3D);
|
||||
cube.pipeline=CreatePipeline(cube.material_instance,InlinePipeline::Solid3D);
|
||||
if(!cube.pipeline)return(false);
|
||||
|
||||
cube.sampler=db->CreateSampler();
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
{
|
||||
CubeCreateInfo cci;
|
||||
|
||||
vulkan::Renderable *render_obj=CreateRenderableCube(db,cube.material_instance->GetMaterial(),&cci);
|
||||
Renderable *render_obj=CreateRenderableCube(db,cube.material_instance->GetMaterial(),&cci);
|
||||
if(!render_obj)return(false);
|
||||
|
||||
cube.renderable_instance=db->CreateRenderableInstance(render_obj,cube.material_instance,cube.pipeline);
|
||||
|
@@ -36,14 +36,14 @@ class TestApp:public VulkanApplicationFramework
|
||||
|
||||
private:
|
||||
|
||||
vulkan::Texture2D * texture =nullptr;
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::Renderable * render_obj =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
Texture2D * texture =nullptr;
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
Renderable * render_obj =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -52,10 +52,10 @@ private:
|
||||
material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/TextureRect2D"));
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D,Prim::Rectangles);
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::Rectangles);
|
||||
if(!pipeline)return(false);
|
||||
|
||||
texture=vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/lena.Tex2D"));
|
||||
texture=CreateTextureFromFile(device,OS_TEXT("res/image/lena.Tex2D"));
|
||||
if(!texture)return(false);
|
||||
|
||||
sampler=db->CreateSampler();
|
||||
|
@@ -35,7 +35,7 @@ constexpr char *data_type_name[]
|
||||
"SRGB"
|
||||
};//
|
||||
|
||||
vulkan::VulkanInstance *InitVulkanInstance()
|
||||
VulkanInstance *InitVulkanInstance()
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if(!CheckStrideBytesByFormat())
|
||||
@@ -56,15 +56,15 @@ vulkan::VulkanInstance *InitVulkanInstance()
|
||||
cili.lunarg.standard_validation=true;
|
||||
cili.khronos.validation=true;
|
||||
|
||||
return vulkan::CreateInstance("VulkanTest",nullptr,&cili);
|
||||
return CreateInstance("VulkanTest",nullptr,&cili);
|
||||
}
|
||||
|
||||
int main(int,char **)
|
||||
{
|
||||
Window * win =nullptr;
|
||||
vulkan::VulkanInstance * inst =nullptr;
|
||||
vulkan::GPUDevice * device =nullptr;
|
||||
const vulkan::GPUPhysicalDevice *physical_device =nullptr;
|
||||
VulkanInstance * inst =nullptr;
|
||||
GPUDevice * device =nullptr;
|
||||
const GPUPhysicalDevice *physical_device =nullptr;
|
||||
|
||||
inst=InitVulkanInstance();
|
||||
|
||||
|
@@ -32,11 +32,11 @@ private:
|
||||
|
||||
Camera cam;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *render_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -48,7 +48,7 @@ private:
|
||||
return(false);
|
||||
|
||||
// pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d"));
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D); //等同上一行,为Framework重载,默认使用swapchain的render target
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D); //等同上一行,为Framework重载,默认使用swapchain的render target
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ private:
|
||||
|
||||
bool InitVBO()
|
||||
{
|
||||
vulkan::Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT);
|
||||
Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT);
|
||||
if(!render_obj)return(false);
|
||||
|
||||
if(!render_obj->Set(VAN::Position, db->CreateVAB(VAF_VEC2,VERTEX_COUNT,vertex_data)))return(false);
|
||||
|
@@ -36,11 +36,11 @@ private:
|
||||
|
||||
Camera cam;
|
||||
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -49,7 +49,7 @@ private:
|
||||
material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/FragColor"));
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D);
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D);
|
||||
return(true);
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ public:
|
||||
int main(int,char **)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if(!vulkan::CheckStrideBytesByFormat())
|
||||
if(!CheckStrideBytesByFormat())
|
||||
return 0xff;
|
||||
#endif//
|
||||
|
||||
|
@@ -49,12 +49,12 @@ class TestApp:public VulkanApplicationFramework
|
||||
|
||||
private:
|
||||
|
||||
vulkan::Texture2D * texture =nullptr;
|
||||
vulkan::Sampler * sampler =nullptr;
|
||||
vulkan::MaterialInstance * material_instance =nullptr;
|
||||
vulkan::RenderableInstance *renderable_instance =nullptr;
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
vulkan::Pipeline * pipeline =nullptr;
|
||||
Texture2D * texture =nullptr;
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
private:
|
||||
|
||||
@@ -63,10 +63,10 @@ private:
|
||||
material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/Texture2D"));
|
||||
if(!material_instance)return(false);
|
||||
|
||||
pipeline=CreatePipeline(material_instance,vulkan::InlinePipeline::Solid2D);
|
||||
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D);
|
||||
if(!pipeline)return(false);
|
||||
|
||||
texture=vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/lena.Tex2D"));
|
||||
texture=CreateTextureFromFile(device,OS_TEXT("res/image/lena.Tex2D"));
|
||||
if(!texture)return(false);
|
||||
|
||||
db->Add(texture);
|
||||
@@ -148,7 +148,7 @@ public:
|
||||
int main(int,char **)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if(!vulkan::CheckStrideBytesByFormat())
|
||||
if(!CheckStrideBytesByFormat())
|
||||
return 0xff;
|
||||
#endif//
|
||||
|
||||
|
@@ -27,8 +27,8 @@ class VulkanApplicationFramework
|
||||
{
|
||||
private:
|
||||
|
||||
Window * win =nullptr;
|
||||
vulkan::VulkanInstance * inst =nullptr;
|
||||
Window * win =nullptr;
|
||||
VulkanInstance * inst =nullptr;
|
||||
|
||||
void OnKeyDown (KeyboardButton kb){key_status[kb]=true;}
|
||||
void OnKeyUp (KeyboardButton kb){key_status[kb]=false;}
|
||||
@@ -46,20 +46,20 @@ protected:
|
||||
|
||||
protected:
|
||||
|
||||
vulkan::GPUDevice * device =nullptr;
|
||||
vulkan::SwapchainRenderTarget * sc_render_target =nullptr;
|
||||
GPUDevice * device =nullptr;
|
||||
SwapchainRenderTarget * sc_render_target =nullptr;
|
||||
|
||||
protected:
|
||||
|
||||
int32_t swap_chain_count =0;
|
||||
|
||||
vulkan::GPUCmdBuffer ** cmd_buf =nullptr;
|
||||
GPUCmdBuffer ** cmd_buf =nullptr;
|
||||
|
||||
Color4f clear_color;
|
||||
|
||||
protected:
|
||||
|
||||
vulkan::RenderResource * db =nullptr;
|
||||
RenderResource * db =nullptr;
|
||||
|
||||
bool key_status[kbRangeSize];
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
clear_color.Zero();
|
||||
|
||||
#ifdef _DEBUG
|
||||
if(!vulkan::CheckStrideBytesByFormat())
|
||||
if(!CheckStrideBytesByFormat())
|
||||
return(false);
|
||||
#endif//
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
cili.khronos.validation = true;
|
||||
cili.RenderDoc.Capture = true;
|
||||
|
||||
inst=vulkan::CreateInstance("VulkanTest",nullptr,&cili);
|
||||
inst=CreateInstance("VulkanTest",nullptr,&cili);
|
||||
|
||||
if(!inst)
|
||||
return(false);
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
if(!device)
|
||||
return(false);
|
||||
|
||||
db=new vulkan::RenderResource(device);
|
||||
db=new RenderResource(device);
|
||||
|
||||
InitCommandBuffer();
|
||||
|
||||
@@ -161,20 +161,20 @@ public:
|
||||
{
|
||||
const VkExtent2D extent=sc_render_target->GetExtent();
|
||||
|
||||
cmd_buf=hgl_zero_new<vulkan::GPUCmdBuffer *>(swap_chain_count);
|
||||
cmd_buf=hgl_zero_new<GPUCmdBuffer *>(swap_chain_count);
|
||||
|
||||
for(int32_t i=0;i<swap_chain_count;i++)
|
||||
cmd_buf[i]=device->CreateCommandBuffer(extent,2);
|
||||
}
|
||||
}
|
||||
|
||||
void BuildCommandBuffer(vulkan::RenderTarget *rt,vulkan::RenderableInstance *ri)
|
||||
void BuildCommandBuffer(RenderTarget *rt,RenderableInstance *ri)
|
||||
{
|
||||
if(!rt||!ri)
|
||||
return;
|
||||
|
||||
vulkan::GPUCmdBuffer *cb=rt->GetCommandBuffer();
|
||||
const vulkan::IndexBuffer *ib=ri->GetIndexBuffer();
|
||||
GPUCmdBuffer *cb=rt->GetCommandBuffer();
|
||||
const IndexBuffer *ib=ri->GetIndexBuffer();
|
||||
|
||||
cb->Begin();
|
||||
cb->BindFramebuffer(rt);
|
||||
@@ -196,14 +196,14 @@ public:
|
||||
clear_color.Use(cc,1.0);
|
||||
}
|
||||
|
||||
void BuildCommandBuffer(uint32_t index,vulkan::RenderableInstance *ri)
|
||||
void BuildCommandBuffer(uint32_t index,RenderableInstance *ri)
|
||||
{
|
||||
if(!ri)
|
||||
return;
|
||||
|
||||
const vulkan::IndexBuffer *ib=ri->GetIndexBuffer();
|
||||
const IndexBuffer *ib=ri->GetIndexBuffer();
|
||||
|
||||
vulkan::GPUCmdBuffer *cb=cmd_buf[index];
|
||||
GPUCmdBuffer *cb=cmd_buf[index];
|
||||
|
||||
cb->SetClearColor(0,clear_color.r,clear_color.g,clear_color.b);
|
||||
|
||||
@@ -222,13 +222,13 @@ public:
|
||||
cb->End();
|
||||
}
|
||||
|
||||
void BuildCommandBuffer(vulkan::RenderableInstance *ri)
|
||||
void BuildCommandBuffer(RenderableInstance *ri)
|
||||
{
|
||||
for(int32_t i=0;i<swap_chain_count;i++)
|
||||
BuildCommandBuffer(i,ri);
|
||||
}
|
||||
|
||||
void BuildCurrentCommandBuffer(vulkan::RenderableInstance *ri)
|
||||
void BuildCurrentCommandBuffer(RenderableInstance *ri)
|
||||
{
|
||||
BuildCommandBuffer(sc_render_target->GetCurrentFrameIndices(),ri);
|
||||
}
|
||||
@@ -237,7 +237,7 @@ public:
|
||||
{
|
||||
if(!rl)return;
|
||||
|
||||
vulkan::GPUCmdBuffer *cb=cmd_buf[index];
|
||||
GPUCmdBuffer *cb=cmd_buf[index];
|
||||
|
||||
cb->SetClearColor(0,clear_color.r,clear_color.g,clear_color.b);
|
||||
|
||||
@@ -297,32 +297,32 @@ public:
|
||||
|
||||
public: //pipeline
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::Material *mtl,const vulkan::InlinePipeline &ip,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
Pipeline *CreatePipeline(Material *mtl,const 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)
|
||||
Pipeline *CreatePipeline(MaterialInstance *mi,const 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)
|
||||
Pipeline *CreatePipeline(Material *mtl,PipelineData *pd,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mtl,sc_render_target,pd,prim,prim_restart);
|
||||
}
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::MaterialInstance *mi,vulkan::PipelineData *pd,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
Pipeline *CreatePipeline(MaterialInstance *mi,PipelineData *pd,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mi,sc_render_target,pd,prim,prim_restart);
|
||||
}
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::Material *mtl,const OSString &pipeline_name,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
Pipeline *CreatePipeline(Material *mtl,const OSString &pipeline_name,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mtl,sc_render_target,pipeline_name,prim,prim_restart);
|
||||
}
|
||||
|
||||
vulkan::Pipeline *CreatePipeline(vulkan::MaterialInstance *mi,const OSString &pipeline_name,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
Pipeline *CreatePipeline(MaterialInstance *mi,const OSString &pipeline_name,const Prim &prim=Prim::Triangles,const bool prim_restart=false)
|
||||
{
|
||||
return db->CreatePipeline(mi,sc_render_target,pipeline_name,prim,prim_restart);
|
||||
}
|
||||
@@ -332,7 +332,7 @@ class CameraAppFramework:public VulkanApplicationFramework
|
||||
{
|
||||
private:
|
||||
|
||||
vulkan::GPUBuffer * ubo_world_matrix =nullptr;
|
||||
GPUBuffer * ubo_world_matrix =nullptr;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -375,7 +375,7 @@ public:
|
||||
camera.height=h;
|
||||
}
|
||||
|
||||
vulkan::GPUBuffer *GetCameraMatrixBuffer()
|
||||
GPUBuffer *GetCameraMatrixBuffer()
|
||||
{
|
||||
return ubo_world_matrix;
|
||||
}
|
||||
|
Reference in New Issue
Block a user