Commit Graph

974 Commits

Author SHA1 Message Date
Charles Pigott
9b800a96ed Codechange: Remove min/max functions in favour of STL variants (#8502) 2021-01-08 11:16:18 +01:00
Niels Martin Hansen
2d9fa81bd0 Feature: Plant clumps of trees in editor by dragging on the landscape 2020-12-27 01:03:27 +01:00
dP
e82333cf77 Feature #7962: Improve rendering of large viewports 2020-12-20 10:13:35 +01:00
dP
5ca8a0bda9 Feature #7962: Significantly improve sprite sorter performance 2020-12-20 10:13:35 +01:00
Michael Lutz
79240eab1e Codechange: Make use of the improved C++17 emplace_back function. 2020-12-15 00:29:30 +01:00
Jonathan G Rennison
760a1f0163 Fix assert failure in MarkAllViewportMapsDirty
Assertion is incorrect
2020-11-07 23:37:50 +00:00
Jonathan G Rennison
0902243ab3 Allow changing the colour of plans 2020-11-06 22:40:02 +00:00
Jonathan G Rennison
ddaffef632 Add viewport map mode: routes 2020-10-13 23:06:33 +01:00
Jonathan G Rennison
2c4808e239 Viewport: Add debug flag to disable landscape cache 2020-10-03 16:01:59 +01:00
Jonathan G Rennison
7e68459ebd Fix plans/route line viewport mark dirty not being wide enough 2020-10-02 03:05:31 +01:00
Jonathan G Rennison
b4ceb93406 Plans: Improve drawing performance of current plan line 2020-10-02 03:04:33 +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
352b361e1b Viewport: Replace viewport mark dirty if zoom level below with flags param
Fix missing flags for tracerestrict and effect vehicles
2020-10-01 23:18:39 +01:00
Jonathan G Rennison
38ebad6123 Plans: Fix adding plan lines in viewport map mode 2020-09-29 17:48:15 +01:00
Jonathan G Rennison
3b47b7b091 Plans: Improve performance of viewport plan rendering 2020-09-29 01:40:12 +01:00
Jonathan G Rennison
3b49f892fa Redraw connecting link graph overlay links when moving station sign
Add test console command
2020-09-18 18:58:16 +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
TechGeekNZ
a10013dd00 Codechange: Spell 'Viewport' consistently
Some places in the codebase misspell 'Viewport' as 'ViewPort' or 'view_port'.
This patch makes everything consistent.
2020-07-27 17:31:29 +01:00
TechGeekNZ
8652a4db76 Cleanup: Give SetDirtyBlocks a more descriptive name. 2020-06-09 13:15:47 +01:00
Jonathan G Rennison
e559bb98c4 Viewport: Fix scroll region sort comparison not meeting strict weak ordering
fa90b567 was not a proper fix
2020-04-30 18:53:19 +01:00
Jonathan G Rennison
686ff03817 Fix graphical glitch when rendering narrow viewport slices 2020-04-27 17:34:47 +01:00
Jonathan G Rennison
60dabc68a0 Add a scope info logger for DoSetViewportPosition calls 2020-04-27 17:21:11 +01:00
Jonathan G Rennison
3cb521afb3 Viewport: Fix screen bounds of empty bounding box sprites when splitting 2020-04-19 11:30:20 +01:00
Jonathan G Rennison
89902f2f4a Debug: Add viewport debug flags for sprite split control 2020-04-19 10:58:18 +01:00
Jonathan G Rennison
4b374cb84a Add half-tile margin when horizontally splitting viewport drawing region 2020-04-18 23:34:46 +01:00
Jonathan G Rennison
e0902c93a4 Revert "Viewport: Trim parent sprites to redraw area before sorting"
This reverts commit f563dfe194.

This caused rendering issues with vehicles passing under bridges
at the very edge of the drawing area.
2020-04-18 23:06:38 +01:00
Jonathan G Rennison
5ac240147e Fix wrong viewport virtual size in InitializeWindowViewport 2020-04-12 18:38:28 +01:00
Jonathan G Rennison
fa90b56780 Viewport: Fix scroll region sort comparison not meeting strict weak ordering
See: #137
2020-03-29 02:20:02 +01: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
7949de2c05 Add a minimum visible height and no ground tile parameter to DrawTileProc.
Filter out tile parts which are entirely outside the drawing area.
2020-03-05 23:06:01 +00:00
Jonathan G Rennison
8ef367b126 Add viewport debug commands 2020-03-05 00:27:17 +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
d740a19e5f Increase viewport chunking size 2020-03-03 22:05:42 +00:00
Jonathan G Rennison
8956b1ab02 Improve performance of tunnel rendering in viewport map mode 2020-03-03 06:57:50 +00:00
Jonathan G Rennison
65152503de Viewport: Do not process tile selection sprites below drawing area 2020-02-27 01:57:35 +00:00
Jonathan G Rennison
f563dfe194 Viewport: Trim parent sprites to redraw area before sorting 2020-02-27 01:57:35 +00:00
Jonathan G Rennison
61dfca98c7 Fix text effects using the wrong size for viewport dirtying at 8x zoom 2020-02-25 23:16:14 +00:00
Jonathan G Rennison
c13ff2a1d3 Reduce viewport invalidation area of track reservation changes 2020-02-20 00:16:51 +00:00
Jonathan G Rennison
2c2184f89d Fix viewport signs always using the larger font size for marking dirty 2020-02-17 23:23:56 +00:00
Jonathan G Rennison
c42ce832ae Fix viewport signs and text effects marking viewports dirty unnecessarily
* When at high zoom levels where the signs are not shown
* Where the sign type is disabled in the display options
2020-02-17 23:23:15 +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
4d9e07e885 Viewport: Split sprite sort regions when more than 60 sprites present 2020-02-05 22:57:52 +00:00
Jonathan G Rennison
a561f29dc3 Viewporrt map mode: Bridge and tunnel cache optimisations 2020-02-04 00:43:02 +00:00
Jonathan G Rennison
14af8701df Fix #6566: Fix signed integer overflow in viewport draw area chunking
This caused drawing areas larger than 2097151 pixels at 8x zoom to
not be subdivided into smaller chunks as required.
This resulted in pathological performance issues in the sprite sorter.
2020-02-02 15:37:14 +01:00
Jonathan G Rennison
6f6bac5212 Fix signed integer overflow in viewport draw area chunking
This caused drawing areas larger than 2097151 pixels at 8x zoom to
not be subdivided into smaller chunks as required.
This resulted in pathological performance issues in the sprite sorter.
2020-02-02 02:04:06 +00: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
ee7a8eebca Codechange: Replace FOR_ALL_TOWNS with range-based for loops 2019-12-21 20:13:03 +01:00