X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fworld%2FWorld.cpp;h=97dcc0848a40a7936179ee7e4171aac8c29f1fd1;hb=a1f911f8257f614f874c201fede5d5206f5b7e80;hp=94cd092f88c03a7fd40562342231e06c6bb00dfc;hpb=55dbd6b35a39888f245e247d2e140f141f918178;p=blank.git diff --git a/src/world/World.cpp b/src/world/World.cpp index 94cd092..97dcc08 100644 --- a/src/world/World.cpp +++ b/src/world/World.cpp @@ -1,8 +1,7 @@ #include "World.hpp" #include "WorldCollision.hpp" -#include "../graphics/BlockLighting.hpp" -#include "../graphics/DirectionalLighting.hpp" +#include "../graphics/Viewport.hpp" #include #include @@ -295,10 +294,11 @@ void World::Resolve(Entity &e, std::vector &col) { } -void World::Render(BlockLighting &chunk_prog, DirectionalLighting &entity_prog) { - chunk_prog.Activate(); +void World::Render(Viewport &viewport) { + viewport.WorldPosition(player->Transform(player->ChunkCoords())); + + BlockLighting &chunk_prog = viewport.ChunkProgram(); chunk_prog.SetFogDensity(fog_density); - chunk_prog.SetView(glm::inverse(player->Transform(player->ChunkCoords()))); for (Chunk &chunk : chunks.Loaded()) { glm::mat4 m(chunk.Transform(player->ChunkCoords())); @@ -309,10 +309,9 @@ void World::Render(BlockLighting &chunk_prog, DirectionalLighting &entity_prog) } } - entity_prog.Activate(); + DirectionalLighting &entity_prog = viewport.EntityProgram(); entity_prog.SetLightDirection(light_direction); entity_prog.SetFogDensity(fog_density); - entity_prog.SetView(glm::inverse(player->Transform(player->ChunkCoords()))); for (Entity &entity : entities) { if (entity.HasShape()) {