Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow switching between OpenGL and software rendering without restarting #5863

Merged
merged 3 commits into from
Jul 13, 2017

Conversation

willox
Copy link
Contributor

@willox willox commented Jul 11, 2017

This change makes the game re-create its window rather than requiring a restart when switching between software/OpenGL rendering.

Previously it was only necessary to restart the game when switching to OpenGL's renderer, but I noticed some issues when switching from OpenGL whilst in full-screen. Now the window will be re-created when switching either to or from OpenGL rendering.

I also solved a couple of issues that popped up which wouldn't have been noticed until this change:

  • The OpenGL renderer had some global state in the OpenGLState namespace that would persist when switching render modes. This is now reset each time OpenGL is enabled.
  • I removed a couple of invalid calls to glBindVertexArray that ran during disposal of the OpenGL renderer. It looks like they were left in by accident at some point.

I've tested this on Windows 10 and Ubuntu 16.04.

@rwjuk
Copy link
Contributor

rwjuk commented Jul 11, 2017

Could you rebase this so that the CIs can check it properly (apologies - our fault!). We can do it for you if you wish.

@rwjuk rwjuk added the pending rebase PR needs to be rebased. label Jul 11, 2017
@IntelOrca IntelOrca added this to the v0.1.1 milestone Jul 11, 2017
@rwjuk rwjuk removed the pending rebase PR needs to be rebased. label Jul 11, 2017
@IntelOrca IntelOrca merged commit 6a05aa9 into OpenRCT2:develop Jul 13, 2017
@janisozaur
Copy link
Member

Awww, I wanted to review and test it too.

janisozaur added a commit to janisozaur/OpenRCT2 that referenced this pull request Aug 9, 2017
- Feature: [OpenRCT2#5815] Add cheat to ignore research status and access rides/scenery not yet invented.
- Feature: [OpenRCT2#5857] Keyboard shortcut for clear scenery.
- Feature: [OpenRCT2#5877] Allow up to 16 stations to be synchronised
- Feature: [OpenRCT2#5970] The Bobsleigh Roller Coaster now supports on-ride photos.
- Feature: [OpenRCT2#5991] Allow all tracked rides that can be tested without guests to the Track Designer
- Fix: [OpenRCT2#2127, OpenRCT2#2229, OpenRCT2#5586] Mountain tool cost calculation
- Fix: [OpenRCT2#3589] Crash due to invalid footpathEntry in path_paint
- Fix: [OpenRCT2#3852] Constructing path not clearing scenery on server.
- Fix: [OpenRCT2#4455] Crash in window_sign_invalidate due to original bug
- Fix: [OpenRCT2#4715] Fix OpenGL rendering of water when zoomed. See OpenRCT2#5890.
- Fix: [OpenRCT2#4931] Crash in path_paint - footpathentry was null
- Fix: [OpenRCT2#5629] Issue with tower ride modes approach to station - incorrect sum caused sawtooth in velocity
- Fix: [OpenRCT2#5768] Prevent loading non-existent title sequences.
- Fix: [OpenRCT2#5858] Crash when using custom ride with no colour presets.
- Fix: [OpenRCT2#5865] Ride preview flickering on uneven terrain or mid air.
- Fix: [OpenRCT2#5872] Incorrect OpenGL rendering of masked sprites
- Fix: [OpenRCT2#5880] Leaving bumper cars without building causes assertion.
- Fix: [OpenRCT2#5890] Fix zoomed OpenGL rendering of special sprites with primary and secondary colours.
- Fix: [OpenRCT2#5912] Negative queue when moving entrance in paused state.
- Fix: [OpenRCT2#5920] Placing guest spawn doesn't do anything every 3rd click
- Fix: [OpenRCT2#5939] Crash when importing 'Six Flags Santa Fe'.
- Fix: [OpenRCT2#5977] Custom music files not showing up in music list
- Fix: [OpenRCT2#5981] Ride list doesn't update after using quick demolish.
- Fix: [OpenRCT2#5984] Allow socket binding to same port after crash
- Fix: [OpenRCT2#5998] Staff not getting paid / no loan interest.
- Fix: [OpenRCT2#6026] 'Select ride to advertise' dropdown does not display all items.
- Fix: [OpenRCT2#6052] Unable to place entrance/exit on certain ride types.
- Fix: [OpenRCT2#6071] Quick demolish can delete protected ride.
- Fix: [OpenRCT2#6111] Mute button always visible in editor.
- Fix: [OpenRCT2#6113] Track preview shows incorrect highest drop height.
- Improved: [OpenRCT2#2223] Change mountain tool to ignore higher surrounding tiles.
- Improved: [OpenRCT2#4301] Leading and trailing whitespace in player name is now removed.
- Improved: [OpenRCT2#5859] OpenGL rendering performance
- Improved: [OpenRCT2#5863] Switching drawing engines no longer requires the application to restart.
- Improved: [OpenRCT2#6003] Doors placed on tracks will now work with all vehicles
- Improved: [OpenRCT2#6037] Autosaves are now stored in a subfolder
- Improved: The land tool buttons can now be held down to increase/decrease size.
- Improved: Dropdowns longer than 32 items overflow into columns.
- Improved: Ride Type option in ride window is now a dropdown.
- Improved: "About OpenRCT2" window redesigned, now contains OpenRCT2 info and access to changelog
janisozaur added a commit that referenced this pull request Aug 9, 2017
- Feature: [#5815] Add cheat to ignore research status and access rides/scenery not yet invented.
- Feature: [#5857] Keyboard shortcut for clear scenery.
- Feature: [#5877] Allow up to 16 stations to be synchronised
- Feature: [#5970] The Bobsleigh Roller Coaster now supports on-ride photos.
- Feature: [#5991] Allow all tracked rides that can be tested without guests to the Track Designer
- Fix: [#2127, #2229, #5586] Mountain tool cost calculation
- Fix: [#3589] Crash due to invalid footpathEntry in path_paint
- Fix: [#3852] Constructing path not clearing scenery on server.
- Fix: [#4455] Crash in window_sign_invalidate due to original bug
- Fix: [#4715] Fix OpenGL rendering of water when zoomed. See #5890.
- Fix: [#4931] Crash in path_paint - footpathentry was null
- Fix: [#5629] Issue with tower ride modes approach to station - incorrect sum caused sawtooth in velocity
- Fix: [#5768] Prevent loading non-existent title sequences.
- Fix: [#5858] Crash when using custom ride with no colour presets.
- Fix: [#5865] Ride preview flickering on uneven terrain or mid air.
- Fix: [#5872] Incorrect OpenGL rendering of masked sprites
- Fix: [#5880] Leaving bumper cars without building causes assertion.
- Fix: [#5890] Fix zoomed OpenGL rendering of special sprites with primary and secondary colours.
- Fix: [#5912] Negative queue when moving entrance in paused state.
- Fix: [#5920] Placing guest spawn doesn't do anything every 3rd click
- Fix: [#5939] Crash when importing 'Six Flags Santa Fe'.
- Fix: [#5977] Custom music files not showing up in music list
- Fix: [#5981] Ride list doesn't update after using quick demolish.
- Fix: [#5984] Allow socket binding to same port after crash
- Fix: [#5998] Staff not getting paid / no loan interest.
- Fix: [#6026] 'Select ride to advertise' dropdown does not display all items.
- Fix: [#6052] Unable to place entrance/exit on certain ride types.
- Fix: [#6071] Quick demolish can delete protected ride.
- Fix: [#6111] Mute button always visible in editor.
- Fix: [#6113] Track preview shows incorrect highest drop height.
- Improved: [#2223] Change mountain tool to ignore higher surrounding tiles.
- Improved: [#4301] Leading and trailing whitespace in player name is now removed.
- Improved: [#5859] OpenGL rendering performance
- Improved: [#5863] Switching drawing engines no longer requires the application to restart.
- Improved: [#6003] Doors placed on tracks will now work with all vehicles
- Improved: [#6037] Autosaves are now stored in a subfolder
- Improved: The land tool buttons can now be held down to increase/decrease size.
- Improved: Dropdowns longer than 32 items overflow into columns.
- Improved: Ride Type option in ride window is now a dropdown.
- Improved: "About OpenRCT2" window redesigned, now contains OpenRCT2 info and access to changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants