Remove backend features. Add a crate for each backend. Add a cargo workspace to the top level. Update dependencies.#1223
Conversation
Also begins removing the feature-related code from the glium backend but I'm thinking it might make more sense to move all these examples to the root of the repo for better visibility. Going to rebase and then try this.
Also updates conrod_derive to 0.2 in preparation for publishing.
Removes use of feature flags throughout example that used to be necessary when backends where added via features. The conrod_example_shared crate is a local crate (not intended to be published) in which a GUI displaying (almost) all widgets can be instantiated to edit a basic demo app. This same GUI is re-used by the `all_*.rs` example for each of the backends to ensure they all behave the same.
This commit also temporarily switches the glium dependency to a git branch of mine pending glium/glium#1715.
|
This will make maintenance much easier! Also makes it easier to iterate on the backends without having to release new versions of Conrod. |
|
Great stuff, thanks for taking this up again. To be quite frank it felt (and to some extent still feels) as if Conrod was dead. |
|
Amazing! I've been holding back publishing some of my work on Conrod for this exact reason; the inability to make a small crate that would make use of the core without pushing a whole PR to conrod itself was really really putting me off (also meant bringing optional deps, features and all the complexity that was going with that). Cheers! (Also, on another note, we were really successful in making our embedded prototype with Conrod, and I'm currently exploring the likes of Azul & co. At least I know conrod does the job for GUI stuff, so if the others don't fit our use case, I might come back to Conrod :) ) |
|
@OtaK thanks for sharing! In case you're interested, there's still a small amount of room for further crate separation, namely:
|
This rebases work by @Kurble and @Abendstolz onto PistonDevelopers#1223, ready to land a working conrod vulkano backend once the crate split lands. I have made some small tweaks to deduplicate some code and make the `conrod_vulkano` crate a little more modular so that it does not require consuming the `AutoCommandBufferBuilder`. Closes PistonDevelopers#1052.
This rebases work by @Kurble and @Abendstolz onto PistonDevelopers#1223, ready to land a working conrod vulkano backend once the crate split lands. I have made some small tweaks to deduplicate some code and make the `conrod_vulkano` crate a little more modular so that it does not require consuming the `AutoCommandBufferBuilder`. Closes PistonDevelopers#1052.
This is a follow on from @Abendstolz's work in #1203 that makes a lot of small tweaks and creates a cargo workspace.
This is an important step for #754 as it moves conrod's core slightly closer to being publishable as a
1.0, as most of the instability these days lies within the backend specific code. That said, my primary motivation is so that I may go ahead with rebasing, tweaking and merging @Abendstolz's following PR #1204 that adds support for vulkano as I will be needing it for a downstream project.All features have been removed. Instead, we now have
conrod_core,conrod_gfx,conrod_glium,conrod_pistonandconrod_winitcrates.The examples are now in each of the backend crates for which they were created. Although they are slightly less visible now, this has simplified them a lot as we no longer need a lot of scary feature-checking code in them. It also makes it a little clearer which backend is used by each of the examples. Chapter 2 of the guide has been updated in accordance with the change in how examples are now run.
This also applies the dependency version updates by @bvssvni from #1214 along with updates for winit and glium.
Merging is currently pending glium/glium#1715 as the latest published version of glium uses a version of winit that is 2 versions behind and is incompatible with the
conrod_winitevent conversion code.Related to #754.
Closes #1183.
Closes #1203.
Closes #1214.
Closes #1217.
Closes #1219.