0.9.2 preparation

I’m thinking it’s probably high time for another Cinder release.

The primary purpose of this release will be to open the door to some upgrades and streamlining. More specifically, in general we try to maintain a policy of making toolset-breaking changes toward the start of a new release cycle.

Some things we would like to do soon after this release (in what will be 0.9.3dev):

  • Remove Boost as a requirement on all platforms
    • This will require dropping ci::JsonTree. IMO nlohmann::json looks like the right replacement candidate inasmuch as we need one (mostly for samples), possibly supplemented with a convenience method to strip JSON comments.
  • VC2019 Support. This would involve skipping direct support for VC2017, but not immediately dropping VC2015 support. The latter can easily be upgraded to the VC2017 compiler.
  • Requiring C++14 on all platforms, and defaulting to C++17 on VC2019.
  • Requiring Ubuntu version 16.04 or later, which ships with GCC 5.3.1 (and supports C++14)
  • Dropping support for older SBC’s, including the Jetson TK1, and Raspberry Pi’s preceding the 4.
    • The above (specifically the Pi <4) allows us to drop OpenGL ES 2

Of that list, I anticipate dropping older Raspberry Pi support is probably the trickiest. My own thinking is that for the most part, these SBC’s don’t represent a substantial financial investment, so replacing them is relatively inexpensive, and the older models will still be supported until we release 0.9.3 (not to mention previous versions of Cinder). Being able to drop ES 2 represents a pretty significant win in terms of simplifying our GL stack.

Regarding the JSON library, I think for the most part we’ll want to keep this as a light-touch dependency, since there are a lot of different opinions on how a JSON library should be built, and there are many high quality ones available. However I believe there’s value in having a library the presence of which Cinder users can count on, particularly for samples and similar.

All that said, we don’t need to immediately answer these questions in order to do this next release. I think it makes sense to focus exclusively on any lingering fixes we should try to get in ahead of shipping 0.9.2 though. Please let us know if there’s something you believe should specifically be merged ahead of that.

11 Likes

This is great. There were also talks of using GLAD instead of glew … i think that would be nice… as far as I know, it just needs to be figured out for osx…

maybe a tinderbox for linux will be greaT

+1 for GLAD or some other system which makes it easier to add opengl extensions.
Currently using Paul’s cinder fork on all projects.

2 Likes

Just thought I’d pitch in my two cents and say that my experiences with this json lib have been quite positive. Also - pretty stoked about Cinder 0.9.2.

Also - if I can finally get all my shit together, I’ll eventually (meaning within 6 months) try and put together a demo for a six year long project I have been working on in Cinder.

1 Like

This is great news, thank you for the amazing job you’re doing. Do you know when could we expect the 0.9.2 stable release?

I’m especially looking forward to adapt the Win version of our app to HighDPI displays.

Hi,

With support for Visual Studio 2019, we may also want to improve support for CMake. I have gone ahead and created a PR with changes to the make files that allow you to use CMake to build Cinder for Visual Studio 2019, as well as building it as a shared library.

Truth be told, I wasn’t yet aware of other people’s work in this regard, most notably this and this, but maybe these pull requests can be merged.

I’ll have a look at the state of the GLAD branch next.

-Paul

2 Likes

I keep thinking about how nice it would be to have bindless buffers and textures in the new release… it should bring CPU usage down, and makes “mapping” buffers directly extremely efficient. the more I look at it… the more it makes sense to put it natively into Cinder instead of building completely seperate classes. Anyone else think it would be nice and doable…
Here’s a simple Cinder example I made using nvidia’s bindless sample.

1 Like

Hey everyone - just wanted to give a heads-up that I am planning to package 0.9.2 over this long weekend, and as soon as tomorrow.

Just to reiterate, the primary purpose of this release is to draw a line in the sand to ensure that current projects have a fixed target before we make some more aggressive moves to update Cinder’s baseline OS and compiler targets. Those planned changes are outlined at the beginning of this thread, but for the time being we’re just trying to ensure that features and platforms that have worked to date still do so.

I’ve updated our Windows Cairo builds for vc2015 and have made some minor Xcode build settings updates to try to simplify work on that platform. So far all my tests are passing and samples are building, so I believe we’re good to go.

6 Likes