X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fclientmap.h;h=492e23fa5e98d61c5066ffb831bc580090777c32;hb=29b413b376d42c27bf1f7065c9f7c850b61f3f24;hp=786f35b77f0a7ecd73dfac6b73e59d6438a27ded;hpb=979ca23f1eae1adeb8b0083dffe7203c54d87395;p=dragonfireclient.git diff --git a/src/clientmap.h b/src/clientmap.h index 786f35b77..492e23fa5 100644 --- a/src/clientmap.h +++ b/src/clientmap.h @@ -22,6 +22,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "irrlichttypes_extrabloated.h" #include "map.h" +#include "camera.h" +#include +#include struct MapDrawControl { @@ -31,7 +34,8 @@ struct MapDrawControl wanted_max_blocks(0), wanted_min_range(0), blocks_drawn(0), - blocks_would_have_drawn(0) + blocks_would_have_drawn(0), + farthest_drawn(0) { } // Overrides limits by drawing everything @@ -46,6 +50,8 @@ struct MapDrawControl u32 blocks_drawn; // Number of blocks that would have been drawn in wanted_range u32 blocks_would_have_drawn; + // Distance to the farthest block drawn + float farthest_drawn; }; class Client; @@ -81,12 +87,13 @@ class ClientMap : public Map, public scene::ISceneNode ISceneNode::drop(); } - void updateCamera(v3f pos, v3f dir, f32 fov) + void updateCamera(v3f pos, v3f dir, f32 fov, v3s16 offset) { JMutexAutoLock lock(m_camera_mutex); m_camera_position = pos; m_camera_direction = dir; m_camera_fov = fov; + m_camera_offset = offset; } /* @@ -120,7 +127,7 @@ class ClientMap : public Map, public scene::ISceneNode int getBackgroundBrightness(float max_d, u32 daylight_factor, int oldvalue, bool *sunlight_seen_result); - void renderPostFx(); + void renderPostFx(CameraMode cam_mode); // For debug printing virtual void PrintInfo(std::ostream &out); @@ -128,7 +135,7 @@ class ClientMap : public Map, public scene::ISceneNode // Check if sector was drawn on last render() bool sectorWasDrawn(v2s16 p) { - return (m_last_drawn_sectors.find(p) != NULL); + return (m_last_drawn_sectors.find(p) != m_last_drawn_sectors.end()); } private: @@ -141,11 +148,16 @@ class ClientMap : public Map, public scene::ISceneNode v3f m_camera_position; v3f m_camera_direction; f32 m_camera_fov; + v3s16 m_camera_offset; JMutex m_camera_mutex; - core::map m_drawlist; + std::map m_drawlist; - core::map m_last_drawn_sectors; + std::set m_last_drawn_sectors; + + bool m_cache_trilinear_filter; + bool m_cache_bilinear_filter; + bool m_cache_anistropic_filter; }; #endif