Use a CStr instead of str, to avoid an extra CString allocation. The underlying operating system API for
this expects a zero terminated C String.
Fixes#1943
Commit 01d2efce4e ended up creating our
OpenGLSurface type with the GL context not current, and right after that
SkiaRenderer would invoke the RenderingSetup callback, which expects a
current context.
Solve this by simplifying the context handling in the OpenGLSurface in
the Skia renderer: The main purpose of glutin's NotCurrentContext
appears to be the ability to send it across threads, which we don't
need. Therefore always store a PossiblyCurrent and use the context's own
interior mutability to make it current if needed.
The crate is an internal crate until the API has been polished and
documented, after which we can call slint-renderer-skia for example.
This also duplicates a little bit of the glutin setup code, because
that would otherwise have to go into another shared crate.