Go to file
Campbell Barton 648417bfff GHOST/Wayland: improve internal fractional scaling behavior
Logic for the recently included fractional scaling support [0] was
difficult to reason about as it depended on two different callbacks
one that listened to a preferred scale, another that tracked which
physical displays the window overlapped.
Checking if fractional scaling was in used depended on the order
the callbacks ran - which is undefined.

In practice - mixing non-fractional and fractional displays would
flicker when the window was moved between monitors.

Resolve this problem with the following changes:

- When the fractional-scale manager is supported,
  only respond to the scale from it's preferred_scale callback.
- When no fractional-scale manager is available,
  set the scale based on the scale of overlapping outputs.
- Add support for postponing the buffers commit call to prevent
  flickering when changing the windows scale.

Other changes:

- Use a lock before setting the pending frame state from
  wp_fractional_scale_handle_preferred_scale.
- Ensure pending actions that themselves trigger pending actions
  run in the time gwl_window_pending_actions_handle is called.
- Rename GWL_Window::scale -> GWL_WindowFrame::buffer_scale.

[0]: cde99075e87032d99d986182e98d9c367b22d417
2023-04-04 17:35:42 +10:00
.gitea Merge branch 'blender-v3.5-release' into main 2023-03-07 13:23:43 +01:00
.github Docs: change Git URLs to point projects.blender.org instead of git.blender.org 2023-02-07 14:23:05 +01:00
build_files GHOST/Wayland: remove fractional-scale ifdef's 2023-04-04 17:26:37 +10:00
doc Merge branch 'blender-v3.5-release' 2023-03-07 20:06:05 -05:00
extern Externals/IO: update fast_float.h to latest version 2023-03-31 11:03:13 +03:00
intern GHOST/Wayland: improve internal fractional scaling behavior 2023-04-04 17:35:42 +10:00
locale Updated translations from SVN trunk (r6419). 2023-04-03 12:58:50 +02:00
release Fix Snap package error on startup in older Linux version 2023-04-03 17:32:35 +02:00
scripts Fix #106422: Mesh Data Attributes Using tip_ for iface_ 2023-04-03 20:55:22 +02:00
source Cleanup: remove unused RenderData::stereomode 2023-04-04 17:26:37 +10:00
tests Fix Cycles Metal failing when run in parallel, always run serial 2023-03-30 19:46:49 +02:00
tools Cleanup: spelling in comments 2023-03-27 12:08:14 +11:00
.clang-format Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
.clang-tidy Clang-tidy: Ignore variable name length and .c/.cc include warnings 2022-05-06 15:26:54 +02:00
.editorconfig pyproject: add configuration for autopep8 2022-04-22 10:13:39 +10:00
.git-blame-ignore-revs Cleanup: git-blame-ignore-revs: Update policy & commits 2021-01-29 13:20:32 +05:30
.gitignore Ignore build files for VS and VS Code 2023-03-07 17:38:34 +01:00
CMakeLists.txt Cleanup: remove references to the Blender Game Engine Player 2023-04-04 17:26:37 +10:00
COPYING
GNUmakefile Re-design of submodules used in blender.git 2023-02-21 16:39:58 +01:00
make.bat make.bat: adjust for recent submodule changes 2023-03-16 17:51:12 -06:00
pyproject.toml pyproject: remove tools/pyproject.toml 2023-03-01 22:18:28 +11:00
README.md Update references to the new projects platform and main branch 2023-02-07 14:18:19 +01:00

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.

See blender.org/about/license for details.