Add mesh generation delay
parent
22567d107f
commit
4d5177ff70
|
@ -511,6 +511,10 @@ hud_hotbar_max_width (Maximum hotbar width) float 1.0
|
||||||
# Enables caching of facedir rotated meshes.
|
# Enables caching of facedir rotated meshes.
|
||||||
enable_mesh_cache (Mesh cache) bool false
|
enable_mesh_cache (Mesh cache) bool false
|
||||||
|
|
||||||
|
# Delay between mesh updates on the client in ms. Increasing this will slow
|
||||||
|
# down the rate of mesh updates, thus reducing jitter on slower clients.
|
||||||
|
mesh_generation_interval (Mapblock mesh generation delay) int 0 0 50
|
||||||
|
|
||||||
# Enables minimap.
|
# Enables minimap.
|
||||||
enable_minimap (Minimap) bool true
|
enable_minimap (Minimap) bool true
|
||||||
|
|
||||||
|
|
|
@ -594,6 +594,11 @@ enable_client_modding (Client modding) bool false
|
||||||
# type: bool
|
# type: bool
|
||||||
# enable_mesh_cache = false
|
# enable_mesh_cache = false
|
||||||
|
|
||||||
|
# Delay between mesh updates on the client in ms. Increasing this will slow
|
||||||
|
# down the rate of mesh updates, thus reducing jitter on slower clients.
|
||||||
|
# type: int min: 0 max: 50
|
||||||
|
# mesh_generation_interval = 0
|
||||||
|
|
||||||
# Enables minimap.
|
# Enables minimap.
|
||||||
# type: bool
|
# type: bool
|
||||||
# enable_minimap = true
|
# enable_minimap = true
|
||||||
|
|
|
@ -157,6 +157,12 @@ QueuedMeshUpdate *MeshUpdateQueue::pop()
|
||||||
MeshUpdateThread
|
MeshUpdateThread
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
MeshUpdateThread::MeshUpdateThread() : UpdateThread("Mesh")
|
||||||
|
{
|
||||||
|
m_generation_interval = g_settings->getU16("mesh_generation_interval");
|
||||||
|
m_generation_interval = rangelim(m_generation_interval, 0, 50);
|
||||||
|
}
|
||||||
|
|
||||||
void MeshUpdateThread::enqueueUpdate(v3s16 p, MeshMakeData *data,
|
void MeshUpdateThread::enqueueUpdate(v3s16 p, MeshMakeData *data,
|
||||||
bool ack_block_to_server, bool urgent)
|
bool ack_block_to_server, bool urgent)
|
||||||
{
|
{
|
||||||
|
@ -168,7 +174,8 @@ void MeshUpdateThread::doUpdate()
|
||||||
{
|
{
|
||||||
QueuedMeshUpdate *q;
|
QueuedMeshUpdate *q;
|
||||||
while ((q = m_queue_in.pop())) {
|
while ((q = m_queue_in.pop())) {
|
||||||
|
if (m_generation_interval)
|
||||||
|
sleep_ms(m_generation_interval);
|
||||||
ScopeProfiler sp(g_profiler, "Client: Mesh making");
|
ScopeProfiler sp(g_profiler, "Client: Mesh making");
|
||||||
|
|
||||||
MapBlockMesh *mesh_new = new MapBlockMesh(q->data, m_camera_offset);
|
MapBlockMesh *mesh_new = new MapBlockMesh(q->data, m_camera_offset);
|
||||||
|
|
|
@ -120,13 +120,14 @@ class MeshUpdateThread : public UpdateThread
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
MeshUpdateQueue m_queue_in;
|
MeshUpdateQueue m_queue_in;
|
||||||
|
int m_generation_interval;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void doUpdate();
|
virtual void doUpdate();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MeshUpdateThread() : UpdateThread("Mesh") {}
|
MeshUpdateThread();
|
||||||
|
|
||||||
void enqueueUpdate(v3s16 p, MeshMakeData *data,
|
void enqueueUpdate(v3s16 p, MeshMakeData *data,
|
||||||
bool ack_block_to_server, bool urgent);
|
bool ack_block_to_server, bool urgent);
|
||||||
|
|
|
@ -38,6 +38,7 @@ void set_default_settings(Settings *settings)
|
||||||
settings->setDefault("enable_sound", "true");
|
settings->setDefault("enable_sound", "true");
|
||||||
settings->setDefault("sound_volume", "0.8");
|
settings->setDefault("sound_volume", "0.8");
|
||||||
settings->setDefault("enable_mesh_cache", "false");
|
settings->setDefault("enable_mesh_cache", "false");
|
||||||
|
settings->setDefault("mesh_generation_interval", "0");
|
||||||
settings->setDefault("enable_vbo", "true");
|
settings->setDefault("enable_vbo", "true");
|
||||||
settings->setDefault("free_move", "false");
|
settings->setDefault("free_move", "false");
|
||||||
settings->setDefault("fast_move", "false");
|
settings->setDefault("fast_move", "false");
|
||||||
|
|
|
@ -245,6 +245,8 @@ fake_function() {
|
||||||
gettext("Maximum proportion of current window to be used for hotbar.\nUseful if there's something to be displayed right or left of hotbar.");
|
gettext("Maximum proportion of current window to be used for hotbar.\nUseful if there's something to be displayed right or left of hotbar.");
|
||||||
gettext("Mesh cache");
|
gettext("Mesh cache");
|
||||||
gettext("Enables caching of facedir rotated meshes.");
|
gettext("Enables caching of facedir rotated meshes.");
|
||||||
|
gettext("Mapblock mesh generation delay");
|
||||||
|
gettext("Delay between mesh updates on the client in ms. Increasing this will slow\ndown the rate of mesh updates, thus reducing jitter on slower clients.");
|
||||||
gettext("Minimap");
|
gettext("Minimap");
|
||||||
gettext("Enables minimap.");
|
gettext("Enables minimap.");
|
||||||
gettext("Round minimap");
|
gettext("Round minimap");
|
||||||
|
|
Loading…
Reference in New Issue