We got a skybox
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <destrum/Graphics/Util.h>
|
||||
|
||||
#include "destrum/Util/GameState.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
|
||||
GameRenderer::GameRenderer(MeshCache& meshCache, MaterialCache& matCache): meshCache{meshCache}, materialCache{matCache} {
|
||||
@@ -19,6 +20,11 @@ void GameRenderer::init(GfxDevice& gfxDevice, const glm::ivec2& drawImageSize) {
|
||||
meshPipeline = std::make_unique<MeshPipeline>();
|
||||
meshPipeline->init(gfxDevice, drawImageFormat, depthImageFormat);
|
||||
|
||||
skyboxPipeline = std::make_unique<SkyboxPipeline>();
|
||||
skyboxPipeline->init(gfxDevice, drawImageFormat, depthImageFormat);
|
||||
|
||||
|
||||
GameState::GetInstance().SetRenderer(this);
|
||||
}
|
||||
|
||||
void GameRenderer::beginDrawing(GfxDevice& gfxDevice) {
|
||||
@@ -80,6 +86,9 @@ void GameRenderer::draw(VkCommandBuffer cmd, GfxDevice& gfxDevice, const Camera&
|
||||
meshDrawCommands,
|
||||
sortedMeshDrawCommands);
|
||||
|
||||
skyboxPipeline->draw(cmd, gfxDevice, camera);
|
||||
|
||||
|
||||
vkCmdEndRendering(cmd);
|
||||
// vkutil::cmdEndLabel(cmd);
|
||||
|
||||
@@ -106,6 +115,21 @@ const GPUImage& GameRenderer::getDrawImage(const GfxDevice& gfx_device) const {
|
||||
return gfx_device.getImage(drawImageId);
|
||||
}
|
||||
|
||||
Material& GameRenderer::getMaterialMutable(MaterialID id) {
|
||||
assert(id != NULL_MATERIAL_ID);
|
||||
return materialCache.getMaterialMutable(id);
|
||||
}
|
||||
|
||||
void GameRenderer::updateMaterialGPU(MaterialID id) {
|
||||
assert(id != NULL_MATERIAL_ID);
|
||||
materialCache.updateMaterialGPU(GameState::GetInstance().Gfx(), id);
|
||||
}
|
||||
|
||||
void GameRenderer::setSkyboxTexture(ImageID skyboxImageId) {
|
||||
spdlog::debug("Set skybox texture to image id {}", skyboxImageId);
|
||||
skyboxPipeline->setSkyboxImage(skyboxImageId);
|
||||
}
|
||||
|
||||
void GameRenderer::createDrawImage(GfxDevice& gfxDevice,
|
||||
const glm::ivec2& drawImageSize,
|
||||
bool firstCreate)
|
||||
|
||||
Reference in New Issue
Block a user