Simon Hausmann
da57d6be04
Start the switch to glow, comment out all renderer code
2020-05-07 15:07:29 +02:00
Olivier Goffart
a9690a2fa3
Add a bunch of comments
2020-05-07 14:39:54 +02:00
Olivier Goffart
0398a221d2
Add a visitor to visit the items of a component
2020-05-07 12:11:01 +02:00
Olivier Goffart
e01de2e0ff
Add a item visitor
2020-05-07 11:44:17 +02:00
Olivier Goffart
2f16517291
Put the CompoentType inside the class in the generated code
...
and start working on safe wrapper
2020-05-07 10:36:23 +02:00
Olivier Goffart
bdaf14ae23
Parse numbers
2020-05-07 09:06:58 +02:00
Olivier Goffart
ecf1599d35
Silent warnings
2020-05-07 08:20:44 +02:00
Olivier Goffart
a0d9369336
Add a crate to compute the field offsets as const fn
2020-05-06 20:58:10 +02:00
Olivier Goffart
b128a848e2
Parse quoted string
2020-05-06 18:24:30 +02:00
Olivier Goffart
05624c68ee
Add some properties in the Rectangle
2020-05-06 17:53:42 +02:00
Olivier Goffart
3a541ec1eb
Handle children elements
2020-05-06 16:43:04 +02:00
Olivier Goffart
3035cbdc23
Action for the C++ test
2020-05-06 14:15:30 +02:00
Simon Hausmann
4cbfee1087
Try upgrading to a newer rust version
2020-05-06 13:23:01 +02:00
Olivier Goffart
b2b57887e2
add sixtyfps-cpp draft
2020-05-06 12:52:31 +02:00
Olivier Goffart
74b3c9147e
Fix build
2020-05-06 11:56:08 +02:00
Olivier Goffart
9ad39d835e
move the abi in its own module
2020-05-06 10:27:09 +02:00
Olivier Goffart
35fde11515
Use cbindgen to generate the internal abi
2020-05-06 10:11:32 +02:00
Simon Hausmann
d921a4a301
Minor README edits
2020-05-06 09:53:33 +02:00
Simon Hausmann
c41cb3e179
Fix alpha blending in the gl renderer
2020-05-06 09:51:21 +02:00
Olivier Goffart
8896364809
Update README.md
...
typos
2020-05-06 07:15:18 +02:00
Olivier Goffart
f26c8b9baa
Create README.md
2020-05-06 07:10:06 +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
Olivier Goffart
30646068c0
Fix the CodeStatement::from_node
2020-05-05 18:36:24 +02:00
Olivier Goffart
da31466e64
Ident the C++ code properly
2020-05-05 18:31:00 +02:00
Olivier Goffart
acccb33c8c
Lower and generate some C++
2020-05-05 18:31:00 +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
Olivier Goffart
f0b5a9fee9
Use the parser_test only in test mode
...
So it does not have to be published on crate.io
2020-05-05 16:37:49 +02:00
Simon Hausmann
61dc3d9dc9
Sketching out some more data structure bits
...
Co-authored-by: Olivier Goffart <olivier@sixtyfps.io>
2020-05-05 16:12:35 +02:00
Olivier Goffart
86011528f1
Draft of data structures
2020-05-05 14:06:52 +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
Olivier Goffart
cd670d6012
Compiler tests
2020-05-05 12:43:42 +02:00
Simon Hausmann
0c4283020f
Render the second test rectangle using a transform
...
The transform is applied through a uniform at run-time.
2020-05-05 11:41:38 +02:00
Simon Hausmann
7a129d66d3
Split graphics::RenderNode into RenderNodeMut and RenderNode
...
This allows a read-only tree traversal and thus rendering.
2020-05-05 11:38:29 +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
3a6d39bfe9
Generate an object tree
2020-05-05 11:18:13 +02:00
Olivier Goffart
b7633f78d6
parse() returns a rowan::SynstaxNode
2020-05-05 09:21:04 +02:00
Olivier Goffart
081310e3ac
Use codemap to show diagnostics
2020-05-04 20:14:29 +02:00
Olivier Goffart
684d516fee
Small cleanups to get rid of the .0
2020-05-04 19:36:32 +02:00
Olivier Goffart
e76b2e5c0f
Use a macro to declare the token so each token is declared next to its regexp
2020-05-04 19:11:58 +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
Olivier Goffart
e1b7949864
proc_macro to have parser tests
2020-05-04 17:11:02 +02:00
Simon Hausmann
4edf2291d6
Simplfy new_frame trait signature
...
The life time specifier wasn't needed, it seems.
2020-05-04 15:29:04 +02:00
Simon Hausmann
590d8887e6
Ignore VS Code settings
2020-05-04 15:27:21 +02:00
Simon Hausmann
9c961059e1
Beginnings of a simple lyon and glium based GL renderer
2020-05-04 15:27:21 +02:00
Olivier Goffart
112613712f
Move the actual parsing in its own file
2020-05-04 14:44:34 +02:00
Olivier Goffart
1b69df8087
Parsing: The small example parses
2020-05-04 14:40:32 +02:00