Fix ModelViewer and WorldColEditor#114
Merged
Merged
Conversation
Moves GLControl initialization to where it can be disabled at design time.
They aren't exactly plugins now, but they fit better with the rest of BM.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #103 and #107.
The problem with the designer was related to OpenTK 4 moving to a different threading system which isn't compatible with
GLControls being created in a nested control'sInitializeComponent(). The solution was to create it in code instead.The ModelViewer had been temporarily removed in a previous commit. This was because the plugin loader would trigger a search for OpenTK 3 types using OpenTK 4 libraries, and of course fail since the namespaces changed between versions. There was no good solution to this except to refactor the plugin system so that dependencies could be automatically resolved. As a result, the plugin loader has basically been gutted, only serving to run each plugin's
Init()method, and plugins are now in the root folder. This also fixes the issue that led to #111, so the unnecessary top-level packages have once again been removed.On the developer side, the most notable change to the plugin system is that plugins are now manually added instead of automatically found. This is necessary to ensure they and their dependencies are correctly loaded.