Jonathan G Rennison
5e14b54a0c
Merge branch 'master' into jgrpp
2021-04-05 17:51:45 +01:00
Patric Stout
4866e43862
Codechange: rework codeflow introduced in 098d5b22
( #8837 )
...
It didn't sit well to me, how I wrote the commit initially. First
casting a variable into another, only to write it back into the
originally feels wrong.
This flow makes a bit more sense to me.
2021-03-10 13:57:52 +01:00
Patric Stout
970fedd78c
Add: make modal windows update more smooth
...
Basically, modal windows had their own thread-locking for what
drawing was possible. This is a bit nonsense now we have a
game-thread. And it makes much more sense to do things like
NewGRFScan and GenerateWorld in the game-thread, and not in a
thread next to the game-thread.
This commit changes that: it removes the threads for NewGRFScan
and GenerateWorld, and just runs the code in the game-thread.
On regular intervals it allows the draw-thread to do a tick,
which gives a much smoother look and feel.
It does slow down NewGRFScan and GenerateWorld ever so slightly
as it spends more time on drawing. But the slowdown is not
measureable on my machines (with 700+ NewGRFs / 4kx4k map and
a Debug build).
Running without a game-thread means NewGRFScan and GenerateWorld
are now blocking.
2021-03-10 13:41:18 +01:00
Patric Stout
098d5b2239
Fix #8711 : having gui_zoom lower than zoom_min causes crashes ( #8835 )
...
gui_zoom was never clamp'd between zoom_min/zoom_max.
zoom_min controls how zoomed-in we load sprites. For a value of 1,
no quad-sizes sprites are loaded. If gui_zoom would be 0, meaning
it wants quad-sized sprites to display, it was printing random
stuff to the screen, which could or could not result in crashes.
2021-03-10 13:39:03 +01:00
Patric Stout
b9eac7c6dc
Codechange: remove the unused lock around Blitter
2021-03-08 19:18:55 +01:00
Jonathan G Rennison
3e017ddaa9
Remove unused dirty block size constants
2021-03-02 23:45:08 +00:00
Jonathan G Rennison
f4e29071be
Merge tag '1.11.0-beta2' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release.yml
# CMakeLists.txt
# src/blitter/32bpp_optimized.cpp
# src/debug.cpp
# src/gfx.cpp
# src/gfx_func.h
# src/lang/czech.txt
# src/lang/english.txt
# src/lang/italian.txt
# src/lang/swedish.txt
# src/lang/ukrainian.txt
# src/network/network_server.cpp
# src/os/windows/crashlog_win.cpp
# src/os/windows/win32.cpp
# src/pathfinder/follow_track.hpp
# src/screenshot.cpp
# src/settings_type.h
# src/spritecache.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/video_driver.cpp
# src/video/video_driver.hpp
# src/video/win32_v.cpp
2021-03-02 11:59:03 +00:00
Patric Stout
f183ded9fe
Add: settings to limit your fast-forward game speed
...
By default this setting is set to 2500% normal game speed.
(cherry picked from commit c3dc27e37e
)
# Conflicts:
# src/gfx.cpp
# src/gfx_func.h
# src/settings_type.h
# src/video/cocoa/cocoa_v.mm
# src/video/video_driver.cpp
# src/video/win32_v.cpp
2021-03-01 17:54:15 +00:00
Patric Stout
c3dc27e37e
Add: settings to limit your fast-forward game speed
...
By default this setting is set to 2500% normal game speed.
2021-02-28 18:04:51 +00:00
Jonathan G Rennison
4ef363422a
Add 32bpp blitter support for adjusting brightness of drawn sprites
2021-02-26 18:02:13 +00:00
Michael Lutz
3e49aff35c
Codechange: Allow video drivers to handle the cursor themselves.
2021-02-22 22:16:07 +01:00
Jonathan G Rennison
c9ab460a03
Re-apply c0616750
...
Lost in merge: e95216b5
2021-02-21 12:25:43 +00:00
Jonathan G Rennison
e95216b59d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/core/geometry_func.cpp
# src/date.cpp
# src/genworld_gui.cpp
# src/gfx.cpp
# src/object_gui.cpp
# src/openttd.cpp
# src/settings_type.h
# src/video/allegro_v.cpp
# src/video/dedicated_v.cpp
# src/video/null_v.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
2021-02-19 15:38:34 +00:00
Patric Stout
d437445c67
Codechange: use std::chrono to track time in modal windows
...
Adding to _realtime_ticks in a random place is a bit of a hack,
and by using modern C++, we can avoid this hack.
2021-02-19 10:43:15 +01:00
Michael Lutz
22f5aeab07
Feature: Automatic UI and font zoom levels when supported by the OS.
2021-02-14 14:16:40 +01:00
Jonathan G Rennison
b7ddd486cf
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/aircraft_cmd.cpp
# src/blitter/32bpp_anim.cpp
# src/cargopacket.cpp
# src/cheat_gui.cpp
# src/company_cmd.cpp
# src/company_gui.cpp
# src/core/pool_func.hpp
# src/date.cpp
# src/economy.cpp
# src/error_gui.cpp
# src/ground_vehicle.cpp
# src/ground_vehicle.hpp
# src/group_gui.cpp
# src/industry_cmd.cpp
# src/lang/dutch.txt
# src/lang/french.txt
# src/lang/german.txt
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/mcf.cpp
# src/network/network_content.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/newgrf_engine.cpp
# src/newgrf_station.cpp
# src/order_cmd.cpp
# src/order_gui.cpp
# src/pathfinder/follow_track.hpp
# src/pathfinder/yapf/yapf_common.hpp
# src/saveload/saveload.cpp
# src/settings_gui.cpp
# src/station_cmd.cpp
# src/station_kdtree.h
# src/string_func.h
# src/table/settings.ini
# src/tgp.cpp
# src/timetable_cmd.cpp
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/train_cmd.cpp
# src/train_gui.cpp
# src/tree_gui.cpp
# src/tunnelbridge_cmd.cpp
# src/vehicle.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
# src/viewport.cpp
# src/viewport_sprite_sorter_sse4.cpp
# src/window.cpp
2021-02-01 17:07:34 +00:00
Jonathan G Rennison
6c3e5642f8
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/crashlog.cpp
# src/fileio.cpp
# src/fileio_func.h
# src/fios_gui.cpp
# src/ini_load.cpp
# src/ini_type.h
# src/lang/english.txt
# src/lang/german.txt
# src/lang/korean.txt
# src/network/network_client.cpp
# src/order_base.h
# src/order_cmd.cpp
# src/os/windows/win32.cpp
# src/road_cmd.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/settings.cpp
# src/station_cmd.cpp
# src/stdafx.h
# src/table/settings.ini
# src/tree_cmd.cpp
# src/tree_gui.cpp
# src/vehicle_base.h
# src/video/cocoa/cocoa_v.mm
# src/video/cocoa/event.mm
# src/video/cocoa/wnd_quartz.mm
# src/viewport.cpp
# src/widgets/tree_widget.h
2021-01-31 01:08:35 +00:00
Jonathan G Rennison
43980639de
Merge branch 'master' into jgrpp
...
# Conflicts:
# .gitignore
# CMakeLists.txt
# src/3rdparty/optional/optional.hpp
# src/group_cmd.cpp
# src/industry_cmd.cpp
# src/misc_gui.cpp
# src/video/sdl2_v.cpp
2021-01-29 17:45:15 +00:00
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
Charles Pigott
860c270c73
Codechange: Replace assert_compile macro with static_assert
2020-12-27 10:55:42 +00:00
Jonathan G Rennison
5fe5884613
Debug: Add experimental command to switch baseset
2020-12-26 10:54:01 +00:00
Patric Stout
d5b9f7ac37
Add: [Emscripten] use "relative mouse mode" with SDL2
...
This mode doesn't wrap the mouse constantly, but requests SDL
to lock the mouse pointer. This is needed, as with Emscripten
you are not allowed to change the mouse poisition (only to lock
it into place).
2020-12-15 15:46:39 +01:00
Jonathan G Rennison
6ecf232edd
Fix rendering artefacts in colour news window viewports
...
Off by one error in applying dimming recolour created
doubly-dimmed lines on dirty block redrawing boundaries.
2020-12-09 22:56:49 +00:00
Jonathan G Rennison
0902243ab3
Allow changing the colour of plans
2020-11-06 22:40:02 +00:00
Jonathan G Rennison
ab4026c28d
Fix assertion failure when redrawing window/widget wholly off-screen
2020-10-23 17:30:57 +01:00
Jonathan G Rennison
d29a08dfe1
Add gfx_debug console command
2020-10-02 02:10:09 +01:00
Jonathan G Rennison
a474e71243
Viewport: Cache landscape pixels in map mode
...
Avoid invalidating landscape pixels for non-landscape updates
(vehicles, overlays, etc.)
2020-10-01 23:18:39 +01:00
Jonathan G Rennison
35565a115b
Viewport: Fix casing of ClearViewportCache(s)
2020-10-01 23:18:39 +01:00
Jonathan G Rennison
5b78090a61
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# src/saveload/town_sl.cpp
# src/screenshot.h
# src/script/api/ai/ai_date.hpp.sq
# src/script/api/ai/ai_marine.hpp.sq
# src/script/api/ai/ai_station.hpp.sq
# src/script/api/game/game_date.hpp.sq
# src/script/api/game/game_marine.hpp.sq
# src/script/api/game/game_station.hpp.sq
# src/script/api/game/game_window.hpp.sq
# src/script/api/script_window.hpp
# src/script/api/template/template_window.hpp.sq
# src/signal.cpp
# src/statusbar_gui.cpp
# src/toolbar_gui.cpp
# src/viewport.cpp
# src/viewport_func.h
2020-08-27 18:31:09 +01:00
Jonathan G Rennison
48b15bb7b8
Avoid superfluous calls to SetDirtyAsBlocks when dragging window
...
See: #170
2020-07-09 20:27:51 +01:00
TechGeekNZ
cf8ea74733
Update: Merge branch 'jgrpp_master_cmake' into jgrpp_cmake
2020-06-28 21:56:43 +01:00
TechGeekNZ
fd2a120c9d
Cleanup: Improve documentation of dirty block system.
...
Partially re-applies 8652a4db76
, which
was reverted to allow commits to be cherry-picked from JGRPP.
2020-06-27 11:34:30 +12:00
TechGeekNZ
c9abf6ade6
Revert: "Cleanup: Give SetDirtyBlocks
a more descriptive name."
...
This reverts commit 8652a4db76
.
This is necessary to aid in the cherry-picking of commits from JGRPP.
2020-06-27 11:32:26 +12:00
TechGeekNZ
8652a4db76
Cleanup: Give SetDirtyBlocks
a more descriptive name.
2020-06-09 13:15:47 +01:00
TechGeekNZ
3d8597d42e
Cleanup: Add undocumented parameter to GetSpriteSize.
2020-06-07 01:04:41 +01:00
Jonathan G Rennison
4c59dfb6b1
Fix data race during palette animation with threaded blitters
2020-04-12 00:12:58 +01:00
Jonathan G Rennison
c061675001
Allow modal progress sleep to finish early on completion
2020-04-12 00:12:58 +01:00
Jonathan G Rennison
e2ab622a14
Avoid data race in modal progress mode
2020-04-12 00:12:58 +01:00
Jonathan G Rennison
0a6a38886d
Viewport: Fix viewport updates being applied to shaded windows
2020-03-28 23:54:01 +00:00
Jonathan G Rennison
c227d30801
Fix window re-rendering when ReInit() called within OnPaint/draw handler
2020-03-23 00:22:46 +00:00
Jonathan G Rennison
722af5f77a
Do not assert when attempting to draw 0 size sprite
...
Silently drop instead
2020-03-18 11:22:11 +00:00
Jonathan G Rennison
b4a814d371
Improve performance of vehicle route overlay rendering
2020-03-05 23:06:01 +00:00
Jonathan G Rennison
a4608f6f72
Cache vehicle positions across draw blocks in viewport map mode
2020-03-05 23:06:01 +00:00
Jonathan G Rennison
8f442500ea
Change how dirty screen, window and viewport areas are tracked for later redrawing
...
Track dirty viewport areas seperately form general screen redraws.
Maintain a dirty block grid per viewport, with a smaller block size.
Use even smaller block size in viewport map mode.
Use a rectangle array for general screen redraws instead of a block grid.
Add a dirty bit to windows and widgets, to simplify the common case
of repainting a whole window or widget, without catching
neighbouring windows or viewports.
2020-03-05 00:27:17 +00:00
Jonathan G Rennison
a152e2327c
Viewport: Reduce unnecessary region redraws when scrolling viewports
2020-02-09 10:54:32 +00:00
Jonathan G Rennison
4adfe0c9ae
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/industry_gui.cpp
# src/lang/korean.txt
# src/town.h
# src/town_gui.cpp
2020-01-08 18:40:34 +00:00
Niels Martin Hansen
35c55dfe70
Add: Filled polygon drawing function
2020-01-07 18:13:58 +01:00
Jonathan G Rennison
7960db35f2
Merge branch 'master' into jgrpp
...
# Conflicts:
# config.lib
# projects/openttd_vs140.vcxproj
# projects/openttd_vs140.vcxproj.filters
# projects/openttd_vs141.vcxproj
# projects/openttd_vs141.vcxproj.filters
# projects/openttd_vs142.vcxproj
# projects/openttd_vs142.vcxproj.filters
# src/aircraft_cmd.cpp
# src/base_station_base.h
# src/core/pool_type.hpp
# src/disaster_vehicle.cpp
# src/economy.cpp
# src/engine.cpp
# src/group.h
# src/group_cmd.cpp
# src/group_gui.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/linkgraph/linkgraph_gui.cpp
# src/network/network_command.cpp
# src/network/network_server.cpp
# src/openttd.cpp
# src/order_cmd.cpp
# src/road_cmd.cpp
# src/saveload/afterload.cpp
# src/saveload/cargopacket_sl.cpp
# src/saveload/linkgraph_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/station_sl.cpp
# src/saveload/town_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/screenshot.cpp
# src/screenshot.h
# src/settings_gui.cpp
# src/settings_type.h
# src/smallmap_gui.cpp
# src/station.cpp
# src/station_cmd.cpp
# src/table/settings.ini
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/train.h
# src/train_cmd.cpp
# src/train_gui.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/vehiclelist.cpp
# src/window_type.h
2020-01-06 18:45:51 +00:00
glx
42144ecd56
Add: a TextColour flag to ignore colour changes from strings
2019-12-23 17:30:13 +00:00
Jonathan G Rennison
fe9b024f1a
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/signs_cmd.cpp
# src/station.cpp
# src/station_cmd.cpp
# src/town_cmd.cpp
# src/viewport.cpp
# src/waypoint.cpp
# src/waypoint_cmd.cpp
2019-12-11 18:20:24 +00:00