Commit Graph

903 Commits

Author SHA1 Message Date
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
glx
869581eb23 Codechange: Replace FOR_ALL_SIGNS with range-based for loops 2019-12-21 20:13:03 +01:00
glx
ddabfed1cd Codechange: Replace station related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01: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
Niels Martin Hansen
9900af38f5 Fix #7847: Use ViewportSign coordinates for sign Kdtree coordinates (#7849)
Ensure the same coordinates are used for station/town/player signs regardless of how the landscape changes below it after the coordinates were first determined.

By keeping track of whether each ViewportSign is valid for Kdtree use (and only ever registering the viewport sign when the object is valid) a lot of code can be simplified and become more robust at the same time.
2019-12-01 23:17:33 +01:00
Jonathan G Rennison
cbdd9f84d8 Merge branch 'master' into jgrpp
# Conflicts:
#	src/console_gui.cpp
#	src/lang/korean.txt
#	src/video/sdl2_v.cpp
#	src/video/sdl2_v.h
#	src/window.cpp
#	src/window_gui.h
2019-11-12 18:43:10 +00:00
S. D. Cloudt
13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
Jonathan G Rennison
6562937899 Merge branch 'master' into jgrpp-nrt
# Conflicts:
#	src/console_cmds.cpp
#	src/script/api/script_order.cpp
#	src/station_cmd.cpp
#	src/statusbar_gui.cpp
#	src/town_gui.cpp
2019-08-24 11:00:41 +01:00
Gabda
b870596f15 Add #6887: Option to show zone inside local authority boundary of towns
Can be found at town information > local authority window
Layout for button is same as Graph Keys
Turn on/off for every town individually
2019-08-17 21:45:20 +01:00
Jonathan G Rennison
7ed86e7488 Merge branch 'jgrpp' into jgrpp-nrt 2019-07-29 22:50:51 +01:00
Jonathan G Rennison
67dd9ffe8c Use light blue colour for station tile coverage highlight 2019-07-18 17:46:02 +01:00
Jonathan G Rennison
dbc5f1baed Merge branch 'master' into jgrpp-nrt
# Conflicts:
#	src/fontcache.cpp
#	src/game/game_text.cpp
#	src/lang/korean.txt
#	src/os/macosx/crashlog_osx.cpp
#	src/os/windows/crashlog_win.cpp
#	src/station_cmd.cpp
#	src/viewport.cpp
2019-07-11 20:03:23 +01:00
Jonathan G Rennison
36eb4165b8 Merge branch 'master' into jgrpp
# Conflicts:
#	src/bridge_map.h
#	src/crashlog.cpp
#	src/industry.h
#	src/linkgraph/linkgraph_type.h
#	src/order_type.h
#	src/saveload/afterload.cpp
#	src/settings.cpp
#	src/settings_type.h
#	src/smallmap_gui.cpp
#	src/spritecache.cpp
#	src/stdafx.h
#	src/table/settings.h.preamble
#	src/train.h
#	src/vehicle.cpp
#	src/viewport.cpp
#	src/viewport_func.h
#	src/widgets/station_widget.h
#	src/zoom_func.h
#	src/zoom_type.h
2019-07-08 16:19:07 +01:00
PeterN
2d0352d67f Fix e8d397e4ee: Avoid using RemapCoords2 during savegame conversion. (#7588) 2019-05-13 12:27:35 +01:00
Niels Martin Hansen
c9fe6e7b8f Fix #7371: Avoid dependency on foundations of town tile during saveload 2019-05-11 14:58:00 +02:00
Charles Pigott
96a4787710 Codechange: Set ZoomLevel's base type to byte instead of using ZoomLevelByte 2019-04-29 17:40:22 +01:00
Jonathan G Rennison
d47c083e00 Comment out some unused constants 2019-04-28 12:24:40 +01:00
peter1138
81d335b081 Feature: Add station coverage area display for towns. 2019-04-25 09:14:01 +02:00
peter1138
81f0f97406 Feature: Add existing station coverage area display when placing new station parts. 2019-04-25 09:14:01 +02:00
peter1138
b6733edd17 Feature: Add coverage area display for existing stations. 2019-04-25 09:14:01 +02:00
Jonathan G Rennison
bd2fdde759 Merge branch 'master' into jgrpp
# Conflicts:
#	src/core/sort_func.hpp
#	src/rail_cmd.cpp
#	src/timetable_cmd.cpp
#	src/video/sdl_v.cpp
#	src/video/win32_v.cpp
2019-04-23 08:11:52 +01:00
PeterN
c17736b493 Fix e8d397e: Invisible station/waypoint signs could still be clicked on. (#7531) 2019-04-20 17:49:54 +01:00