40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
#ifndef GP1_DIRECTX_PLANETSCENE_H
|
|
#define GP1_DIRECTX_PLANETSCENE_H
|
|
|
|
//https://learnopengl.com/Advanced-OpenGL/Instancing
|
|
|
|
#include "BaseScene.h"
|
|
#include "../InstancedMesh.h"
|
|
|
|
class PlanetScene : public BaseScene {
|
|
public:
|
|
void Initialize(ID3D11Device *DevicePtr, ID3D11DeviceContext *DeviceContextPtr, Camera *camera) override;
|
|
|
|
void Render(ID3D11DeviceContext* devicePtr, ID3D11RenderTargetView *renderTargetViewPtr, ID3D11DepthStencilView *depthStencilViewPtr, const Camera& camera) override;
|
|
|
|
void Update() override;
|
|
|
|
void Cleanup() override;
|
|
|
|
std::vector<Mesh *> &GetMeshes() override;
|
|
|
|
std::vector<std::shared_ptr<Material>> &GetMaterials() override;
|
|
|
|
private:
|
|
|
|
ID3D11DeviceContext* m_DeviceContextPtr{};
|
|
|
|
std::vector<Mesh*> m_meshes;
|
|
//Kind of hack since InstancedMesh doesnt extend mesh
|
|
std::vector<InstancedMesh*> m_instancedMeshes;
|
|
std::vector<InstancedData> m_InstancedData;
|
|
std::vector<std::shared_ptr<Material>> m_materials;
|
|
|
|
Mesh* m_skyboxMesh;
|
|
|
|
Camera* m_Camera;
|
|
};
|
|
|
|
|
|
#endif //GP1_DIRECTX_PLANETSCENE_H
|