Olivier Goffart
686f4c9591
More work on the vtable macro to adapt the Component
...
This does not work yet
2020-05-18 11:04:54 +02:00
Olivier Goffart
4b19818f6c
WIP: port Component to vtable
2020-05-18 11:04:54 +02:00
Simon Hausmann
c26a2a1562
Fix GL context state handling
...
Make our GL context not current when done with the initialization
and make it current for the duration fo primitive creation and frame
rendering.
Fixes #4
2020-05-12 21:42:34 +02:00
Simon Hausmann
0b807190c7
GL Renderer cleanup
...
Get rid of the vertex array object that's not really used. We do bind the binding
manually right now anyway and this can be reintroduced later.
2020-05-12 19:22:01 +02:00
Simon Hausmann
93bb21f082
Fix dead code warning when targeting wasm
2020-05-12 16:24:56 +02:00
Simon Hausmann
7efcbd5816
Simplify geometry handing
...
Replace the use of kurbo's primitives with lyon/euclid. This means less data copying,
conversion and also no annoying precision
casts.
2020-05-11 19:23:03 +02:00
Olivier Goffart
471dd0f778
Make run_component safe
2020-05-11 15:35:17 +02:00
Simon Hausmann
83eb00b080
Run the C++ generated component through the GL backend
...
... which in turn forward to the corelib, but with the GL renderer attached.
2020-05-11 15:05:33 +02:00
Simon Hausmann
3a954e4cea
Move window system creation and other GL related code into the GL backend
2020-05-11 13:11:55 +02:00
Simon Hausmann
e4ce0bcd7e
Prepare for exposing the rendering backend to C
...
... by building a cdylib.
2020-05-11 10:56:33 +02:00
Simon Hausmann
35831c57c7
Use glow without glutin
...
We don't need the dependency for glow
2020-05-09 14:29:07 +02:00
Simon Hausmann
8843f655eb
Reduce the binary size
...
Only use the png loader from image
2020-05-07 21:02:46 +02:00
Simon Hausmann
50b7b753e8
Minor GL renderer cleanups
...
Rename GLVertexBuffer to GLArrayBuffer, as that's what it is. Also added TODO
issue reference.
2020-05-07 20:50:01 +02:00
Simon Hausmann
f55c4e50f0
Track the issue of keeping the GL context current
2020-05-07 20:42:28 +02:00
Simon Hausmann
3d1df6178e
Track the issue of releaseing GL resources
2020-05-07 20:38:10 +02:00
Simon Hausmann
cf37242952
Implement image rendering with glow
2020-05-07 15:07:29 +02:00
Simon Hausmann
14f807ac21
Implement path filling with glow
2020-05-07 15:07:29 +02:00
Simon Hausmann
12626472c4
Fix wasm build
...
Get rid of the glutin dependency in the GL renderer -- the caller is now responsible for swapping buffers.
2020-05-07 15:07:29 +02:00
Simon Hausmann
e0b024d2cf
Some work towards implementing the gl renderer
...
... in plain GL(ow). swapbuffers and clearing the color buffer is working.
2020-05-07 15:07:29 +02:00
Simon Hausmann
da57d6be04
Start the switch to glow, comment out all renderer code
2020-05-07 15:07:29 +02:00
Simon Hausmann
c41cb3e179
Fix alpha blending in the gl renderer
2020-05-06 09:51:21 +02:00
Simon Hausmann
17d3d49a83
Use cgmath throughout
...
And remove usage of kurbo::Affine. That avoids extra translations.
2020-05-05 23:00:03 +02:00
Simon Hausmann
e8f30b6444
Fix coordinate system in the gl renderer
...
Apply the correct orthographic projection matrix in the position calculations,
which includes the y-flip.
2020-05-05 22:47:27 +02:00
Simon Hausmann
bfac827ec7
Start with image rendering
...
These are the basics. Still to do are fixing the alpha channel blending, the rect handling,
a texture type to avoid consuming the image over and over again. And more :-)
2020-05-05 18:20:21 +02:00
Simon Hausmann
f3a4f75e17
Allow specifying a clear color for the frame
...
... and default it to white.
2020-05-05 13:51:48 +02:00
Simon Hausmann
8dff1967ad
Hide data structures of the GL renderer
...
Don't leak this accidentally to the outside
2020-05-05 13:38:28 +02:00
Simon Hausmann
3bcbe3d931
Store handles to the GPU vertices/indices in the rendering primitive
2020-05-05 13:32:07 +02:00
Simon Hausmann
5d07a6bd5b
Support specifying the color for path filling
2020-05-05 13:24:41 +02:00
Simon Hausmann
fc5f93fab2
First implementation of a tree of rendering nodes
...
The idea is that they can be recursively rendered and propagate at least
the transform but also clip in the future.
One thing that's left is to split RenderNode into RenderNode and
RenderNodeMut, so that the rendering itself can be done on a non-mutable
tree reference.
2020-05-05 11:25:03 +02:00
Olivier Goffart
a83413aabc
Do not put the frame on the heap.
...
But this forced to make GLFrame public.
2020-05-04 18:40:09 +02:00
Simon Hausmann
9c961059e1
Beginnings of a simple lyon and glium based GL renderer
2020-05-04 15:27:21 +02:00
Simon Hausmann
a4b69b23c0
Fix contact info in Cargo manifests
2020-05-04 11:54:45 +02:00
Simon Hausmann
c6553d007e
Initial commit laying out the structure
2020-05-04 10:49:58 +02:00