From bf1de6bbfa26989a77b141b79b92f0ee2661ee49 Mon Sep 17 00:00:00 2001 From: lawnjelly Date: Thu, 4 Mar 2021 13:33:41 +0000 Subject: [PATCH] Revert backport of 2D transform and camera snapping options More work is needed to make sure that those options actually solve users' issues, so we prefer to remove the options for 3.2.4 and revisit for a future release. --- core/engine.cpp | 1 - core/engine.h | 4 ---- doc/classes/ProjectSettings.xml | 8 -------- main/main.cpp | 3 +-- scene/2d/animated_sprite.cpp | 4 +--- scene/2d/sprite.cpp | 8 ++------ servers/visual/visual_server_canvas.cpp | 4 ---- servers/visual/visual_server_canvas.h | 1 - servers/visual/visual_server_viewport.cpp | 8 -------- 9 files changed, 4 insertions(+), 37 deletions(-) diff --git a/core/engine.cpp b/core/engine.cpp index d0f35b3b82e..6281df94f18 100644 --- a/core/engine.cpp +++ b/core/engine.cpp @@ -228,7 +228,6 @@ Engine::Engine() { _target_fps = 0; _time_scale = 1.0; _gpu_pixel_snap = false; - _snap_2d_transforms = false; _physics_frames = 0; _idle_frames = 0; _in_physics = false; diff --git a/core/engine.h b/core/engine.h index 66069916198..7ddae0ebbe2 100644 --- a/core/engine.h +++ b/core/engine.h @@ -59,8 +59,6 @@ private: int _target_fps; float _time_scale; bool _gpu_pixel_snap; - bool _snap_2d_transforms; - bool _snap_2d_viewports; uint64_t _physics_frames; float _physics_interpolation_fraction; @@ -109,8 +107,6 @@ public: Object *get_singleton_object(const String &p_name) const; _FORCE_INLINE_ bool get_use_gpu_pixel_snap() const { return _gpu_pixel_snap; } - bool get_snap_2d_transforms() const { return _snap_2d_transforms; } - bool get_snap_2d_viewports() const { return _snap_2d_viewports; } #ifdef TOOLS_ENABLED _FORCE_INLINE_ void set_editor_hint(bool p_enabled) { editor_hint = p_enabled; } diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 6b7ce0e7662..6464e4609bb 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -1046,19 +1046,11 @@ Currently only available when [member rendering/batching/options/use_batching] is active. [b]Note:[/b] Antialiased software skinned polys are not supported, and will be rendered without antialiasing. - - If [code]true[/code], forces snapping of 2D viewports to the nearest whole coordinate. - Can reduce unwanted camera relative movement in pixel art styles. - If [code]true[/code], forces snapping of vertices to pixels in 2D rendering. May help in some pixel art styles. This snapping is performed on the GPU in the vertex shader. Consider using the project setting [member rendering/batching/precision/uv_contract] to prevent artifacts. - - If [code]true[/code], forces snapping of 2D object transforms to the nearest whole coordinate. - Can help prevent unwanted relative movement in pixel art styles. - When batching is on, this regularly prints a frame diagnosis log. Note that this will degrade performance. diff --git a/main/main.cpp b/main/main.cpp index 731e1287b61..96c9c590536 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1127,8 +1127,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } Engine::get_singleton()->_gpu_pixel_snap = GLOBAL_DEF("rendering/2d/snapping/use_gpu_pixel_snap", false); - Engine::get_singleton()->_snap_2d_transforms = GLOBAL_DEF("rendering/2d/snapping/use_transform_snap", false); - Engine::get_singleton()->_snap_2d_viewports = GLOBAL_DEF("rendering/2d/snapping/use_camera_snap", false); + OS::get_singleton()->_keep_screen_on = GLOBAL_DEF("display/window/energy_saving/keep_screen_on", true); if (rtm == -1) { rtm = GLOBAL_DEF("rendering/threads/thread_model", OS::RENDER_THREAD_SAFE); diff --git a/scene/2d/animated_sprite.cpp b/scene/2d/animated_sprite.cpp index 6769dcc0cde..780d5254fe6 100644 --- a/scene/2d/animated_sprite.cpp +++ b/scene/2d/animated_sprite.cpp @@ -452,9 +452,7 @@ void AnimatedSprite::_notification(int p_what) { if (centered) ofs -= s / 2; - if (Engine::get_singleton()->get_snap_2d_transforms()) { - ofs = ofs.round(); - } else if (Engine::get_singleton()->get_use_gpu_pixel_snap()) { + if (Engine::get_singleton()->get_use_gpu_pixel_snap()) { ofs = ofs.floor(); } Rect2 dst_rect(ofs, s); diff --git a/scene/2d/sprite.cpp b/scene/2d/sprite.cpp index 7040a1741cc..ca1ea7b84fb 100644 --- a/scene/2d/sprite.cpp +++ b/scene/2d/sprite.cpp @@ -100,9 +100,7 @@ void Sprite::_get_rects(Rect2 &r_src_rect, Rect2 &r_dst_rect, bool &r_filter_cli if (centered) dest_offset -= frame_size / 2; - if (Engine::get_singleton()->get_snap_2d_transforms()) { - dest_offset = dest_offset.round(); - } else if (Engine::get_singleton()->get_use_gpu_pixel_snap()) { + if (Engine::get_singleton()->get_use_gpu_pixel_snap()) { dest_offset = dest_offset.floor(); } @@ -381,9 +379,7 @@ Rect2 Sprite::get_rect() const { Point2 ofs = offset; if (centered) ofs -= Size2(s) / 2; - if (Engine::get_singleton()->get_snap_2d_transforms()) { - ofs = ofs.round(); - } else if (Engine::get_singleton()->get_use_gpu_pixel_snap()) { + if (Engine::get_singleton()->get_use_gpu_pixel_snap()) { ofs = ofs.floor(); } diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp index d3f96476bf1..50206073b21 100644 --- a/servers/visual/visual_server_canvas.cpp +++ b/servers/visual/visual_server_canvas.cpp @@ -99,9 +99,6 @@ void VisualServerCanvas::_render_canvas_item(Item *p_canvas_item, const Transfor Rect2 rect = ci->get_rect(); Transform2D xform = ci->xform; - if (snap_2d_transforms) { - xform.elements[2] = xform.elements[2].round(); - } xform = p_transform * xform; Rect2 global_rect = xform.xform(rect); @@ -1484,7 +1481,6 @@ VisualServerCanvas::VisualServerCanvas() { z_last_list = (RasterizerCanvas::Item **)memalloc(z_range * sizeof(RasterizerCanvas::Item *)); disable_scale = false; - snap_2d_transforms = Engine::get_singleton()->get_snap_2d_transforms(); } VisualServerCanvas::~VisualServerCanvas() { diff --git a/servers/visual/visual_server_canvas.h b/servers/visual/visual_server_canvas.h index 7503e955725..19c3ff40b52 100644 --- a/servers/visual/visual_server_canvas.h +++ b/servers/visual/visual_server_canvas.h @@ -158,7 +158,6 @@ public: RID_Owner canvas_light_owner; bool disable_scale; - bool snap_2d_transforms; private: void _render_canvas_item_tree(Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, RasterizerCanvas::Light *p_lights); diff --git a/servers/visual/visual_server_viewport.cpp b/servers/visual/visual_server_viewport.cpp index 0c64be8cbd7..f4df196ee25 100644 --- a/servers/visual/visual_server_viewport.cpp +++ b/servers/visual/visual_server_viewport.cpp @@ -41,22 +41,14 @@ static Transform2D _canvas_get_transform(VisualServerViewport::Viewport *p_viewp float scale = 1.0; - bool snap = Engine::get_singleton()->get_snap_2d_viewports(); - if (p_viewport->canvas_map.has(p_canvas->parent)) { Transform2D c_xform = p_viewport->canvas_map[p_canvas->parent].transform; - if (snap) { - c_xform.elements[2] = c_xform.elements[2].round(); - } xf = xf * c_xform; scale = p_canvas->parent_scale; } Transform2D c_xform = p_canvas_data->transform; - if (snap) { - c_xform.elements[2] = c_xform.elements[2].round(); - } xf = xf * c_xform; if (scale != 1.0 && !VSG::canvas->disable_scale) {