Commit graph

143 commits

Author SHA1 Message Date
Olivier Goffart
dbada7977e Fix C++ build 2020-05-12 08:03:18 +02:00
Olivier Goffart
b9cd725f78 Allow to use proc_macro tokens
And report errors
2020-05-11 22:24:28 +02:00
Olivier Goffart
dc33cbbcda Dummy structure for the rust example 2020-05-11 20:39:16 +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
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
63d3f5125e Move the main loop implementation into the core library 2020-05-11 14:30:41 +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
fbc9505425 Don't require web-sys when not targeting wasm
Not that this caused any harm, but it's pointless.
2020-05-11 11:56:10 +02:00
Simon Hausmann
fb6267649b Fix the event loop usage to only redraw when requested
This avoids spinning the CPU.
2020-05-11 11:53:51 +02:00
Olivier Goffart
6cf327166e Parser: add support for parentheses in expressions 2020-05-11 11:19:57 +02:00
Simon Hausmann
d24437055d Prospective build fix for GH actions build
Make sure to call cargo from within the source tree
2020-05-11 11:02:43 +02:00
Simon Hausmann
5b313af9aa Use winit also when targeting wasm
This allows unifying the code paths more.
2020-05-11 10:56:33 +02:00
Simon Hausmann
9be4c88b13 Fix wasm build
Make sure that glow selects the web-sys feature when targeting wasm.
2020-05-11 10:56:33 +02:00
Simon Hausmann
932ac8e2a7 Avoid the use of glutin in the event loop itself
Replace the re-exports with winit types.
2020-05-11 10:56:33 +02:00
Simon Hausmann
4a90c08bd4 Minor cleanup
Replace winit re-exports from glutin with a direct winit dependency.
This is done to prepare for moving the code into the core library that may depend on winit but not glutin.
2020-05-11 10:56:33 +02:00
Simon Hausmann
5a3ad60ad4 Ignore more generated files
... including the cmake build directory
2020-05-11 10:56:33 +02:00
Simon Hausmann
5953b10e1c Ensure the runtime library is up-to-date before linking the binary 2020-05-11 10:56:33 +02:00
Simon Hausmann
27aca08392 Ignore some generated files
* What's in generated/ is ... generated.
* .cargo/config may contain local changes - we don't need to track
  that for now.
2020-05-11 08:59:39 +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
f55c4e50f0 Track the issue of keeping the GL context current 2020-05-07 20:42:28 +02:00
Simon Hausmann
dd7d2c6dda Fix build on macOS
* Enable C++17 by default (we could do with less also... but the
  compiler does not default to C++11 at least)
* Replace the .so shared library extension with the cmake variable
  that handles different platforms
2020-05-07 15:18:10 +02:00
Simon Hausmann
c67b688a9e Add README that explains how to try the wasm build 2020-05-07 15:07:29 +02:00
Simon Hausmann
cf37242952 Implement image rendering 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
Olivier Goffart
bdaf14ae23 Parse numbers 2020-05-07 09:06:58 +02:00
Olivier Goffart
3a541ec1eb Handle children elements 2020-05-06 16:43:04 +02:00
Olivier Goffart
b2b57887e2 add sixtyfps-cpp draft 2020-05-06 12:52:31 +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
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
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
081310e3ac Use codemap to show diagnostics 2020-05-04 20:14:29 +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
Olivier Goffart
fbf0eebfd5 Draft of the parser 2020-05-04 14:30:05 +02:00