moved codes of about camera to CameraAppFramework.
This commit is contained in:
parent
b4dccf7814
commit
84d0dc99c8
@ -1 +1 @@
|
|||||||
Subproject commit 4074a6f01ffff144ff77814a9dd0387b63419a03
|
Subproject commit 861d1668cb6d8f730c89158933a133ba2c8ad426
|
@ -61,16 +61,11 @@ protected:
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
ViewportInfo vp_info;
|
ViewportInfo vp_info;
|
||||||
Camera * camera =nullptr;
|
|
||||||
CameraInfo camera_info;
|
|
||||||
|
|
||||||
DeviceBuffer * ubo_camera_info =nullptr;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual ~VulkanApplicationFramework()
|
virtual ~VulkanApplicationFramework()
|
||||||
{
|
{
|
||||||
SAFE_CLEAR(camera);
|
|
||||||
win->Unjoin(this);
|
win->Unjoin(this);
|
||||||
|
|
||||||
SAFE_CLEAR(db);
|
SAFE_CLEAR(db);
|
||||||
@ -129,43 +124,14 @@ public:
|
|||||||
|
|
||||||
win->Join(this);
|
win->Join(this);
|
||||||
|
|
||||||
{
|
|
||||||
camera=new Camera;
|
|
||||||
|
|
||||||
camera->pos=Vector3f(10,10,10);
|
|
||||||
|
|
||||||
vp_info.Set(w,h);
|
vp_info.Set(w,h);
|
||||||
|
|
||||||
RefreshCameraInfo(&camera_info,&vp_info,camera);
|
|
||||||
|
|
||||||
ubo_camera_info=db->CreateUBO(sizeof(CameraInfo),&camera_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
const CameraInfo &GetCameraInfo()
|
|
||||||
{
|
|
||||||
return camera_info;
|
|
||||||
}
|
|
||||||
|
|
||||||
DeviceBuffer *GetCameraInfoBuffer()
|
|
||||||
{
|
|
||||||
return ubo_camera_info;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BindCameraUBO(MaterialInstance *mi)
|
|
||||||
{
|
|
||||||
return mi->BindUBO(DescriptorSetType::Global,"g_camera",ubo_camera_info);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Resize(int w,int h)
|
virtual void Resize(int w,int h)
|
||||||
{
|
{
|
||||||
vp_info.Set(w,h);
|
vp_info.Set(w,h);
|
||||||
|
|
||||||
RefreshCameraInfo(&camera_info,&vp_info,camera);
|
|
||||||
|
|
||||||
ubo_camera_info->Write(&camera_info);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetClearColor(const Color4f &cc)
|
void SetClearColor(const Color4f &cc)
|
||||||
@ -453,6 +419,10 @@ class CameraAppFramework:public VulkanApplicationFramework
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
Camera * camera =nullptr;
|
||||||
|
|
||||||
|
DeviceBuffer * ubo_camera_info =nullptr;
|
||||||
|
|
||||||
FirstPersonCameraControl *camera_control=nullptr;
|
FirstPersonCameraControl *camera_control=nullptr;
|
||||||
|
|
||||||
CameraKeyboardControl * ckc=nullptr;
|
CameraKeyboardControl * ckc=nullptr;
|
||||||
@ -466,6 +436,7 @@ public:
|
|||||||
{
|
{
|
||||||
SAFE_CLEAR(ckc);
|
SAFE_CLEAR(ckc);
|
||||||
SAFE_CLEAR(cmc);
|
SAFE_CLEAR(cmc);
|
||||||
|
SAFE_CLEAR(camera);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool Init(int w,int h)
|
virtual bool Init(int w,int h)
|
||||||
@ -488,6 +459,14 @@ public:
|
|||||||
|
|
||||||
win->Join(ckc);
|
win->Join(ckc);
|
||||||
win->Join(cmc);
|
win->Join(cmc);
|
||||||
|
|
||||||
|
camera=new Camera;
|
||||||
|
|
||||||
|
camera->pos=Vector3f(10,10,10);
|
||||||
|
|
||||||
|
RefreshCameraInfo(&camera_control->GetCameraInfo(),&vp_info,camera);
|
||||||
|
|
||||||
|
ubo_camera_info=db->CreateUBO(sizeof(CameraInfo),&camera_control->GetCameraInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Resize(int w,int h)override
|
void Resize(int w,int h)override
|
||||||
@ -496,7 +475,22 @@ public:
|
|||||||
|
|
||||||
camera_control->Refresh();
|
camera_control->Refresh();
|
||||||
|
|
||||||
ubo_camera_info->Write(&camera_info);
|
ubo_camera_info->Write(&camera_control->GetCameraInfo());
|
||||||
|
}
|
||||||
|
|
||||||
|
const CameraInfo &GetCameraInfo()
|
||||||
|
{
|
||||||
|
return camera_control->GetCameraInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
DeviceBuffer *GetCameraInfoBuffer()
|
||||||
|
{
|
||||||
|
return ubo_camera_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BindCameraUBO(MaterialInstance *mi)
|
||||||
|
{
|
||||||
|
return mi->BindUBO(DescriptorSetType::Global,"g_camera",ubo_camera_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void BuildCommandBuffer(uint32_t index)=0;
|
virtual void BuildCommandBuffer(uint32_t index)=0;
|
||||||
@ -505,7 +499,7 @@ public:
|
|||||||
{
|
{
|
||||||
camera_control->Refresh(); //更新相机矩阵
|
camera_control->Refresh(); //更新相机矩阵
|
||||||
|
|
||||||
ubo_camera_info->Write(&camera->info); //写入缓冲区
|
ubo_camera_info->Write(&camera_control->GetCameraInfo()); //写入缓冲区
|
||||||
|
|
||||||
const uint32_t index=AcquireNextImage();
|
const uint32_t index=AcquireNextImage();
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
add_subdirectory(Util)
|
add_subdirectory(Util)
|
||||||
|
add_subdirectory(ShaderGen)
|
||||||
add_subdirectory(SceneGraph)
|
add_subdirectory(SceneGraph)
|
||||||
#add_subdirectory(Tools)
|
#add_subdirectory(Tools)
|
||||||
add_subdirectory(GUI)
|
add_subdirectory(GUI)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user