Olivier Goffart
adaadc30a9
Remove the "Rendering..." debug message.
...
This just polute the output while debugging other stuff
2020-06-04 12:49:33 +02:00
Olivier Goffart
49d2aec7e2
Node: add possibility to add signal handler
...
Right now, this only works once and then panic the second time
2020-06-04 12:49:33 +02:00
Simon Hausmann
12457ed7f3
Fix crash when using optimized gcc builds
...
Don't return void in non-void functions.
2020-06-04 08:44:24 +02:00
Olivier Goffart
5ee09398e8
Node: Allow to init properties to value
2020-06-03 17:33:45 +02:00
Olivier Goffart
30d61452ba
Interpreter and node API: some refactoring towards being able to set properties from JS
2020-06-03 17:33:43 +02:00
Olivier Goffart
fd829fc89f
Some more refactoring of the interpreter
...
Move the content of lib.rs to a module so we can have some
kind of public api in the lib.rs
2020-06-03 17:33:26 +02:00
Olivier Goffart
0a48252702
Interpreter: implement the ComponentVTable properly
...
with the drop and construct function
2020-06-03 17:33:26 +02:00
Olivier Goffart
8cfde5be5e
Refactor the creation of dynamic type in the viewer
...
Put the creation of dynamic type in another module.
Respect the alignement.
2020-06-03 17:33:26 +02:00
Olivier Goffart
13c7e0dec8
Begin working on a Node API
...
Currently, the followinf command in the example/nodetest directory works:
npm install ../../api/sixtyfps-node && node main.js
2020-06-03 17:33:05 +02:00
Olivier Goffart
a8f02df642
Refactor the viewer into a binary, and an interpreter crate
...
The interpreter can be used from other crates such as the test or the JS for example
2020-06-02 17:05:48 +02:00
Olivier Goffart
9c3dbe1a81
Small doc fixup to workaround rustdoc bug
...
https://github.com/rust-lang/rust/issues/45939
https://github.com/rust-lang/rust/issues/60543
2020-05-31 16:20:22 +02:00
Olivier Goffart
63430c2acb
Add a readme for the cpp api
2020-05-31 15:34:04 +02:00
Olivier Goffart
88b7f7c0bf
Signal support in the viewer
2020-05-31 02:03:02 +02:00
Olivier Goffart
2debdb43ed
Viewer: Use corelib::rtti::PropertyInfo for declared property
2020-05-30 18:16:51 +02:00
Olivier Goffart
c024f97890
Viewer: use binding when needed
2020-05-30 17:42:17 +02:00
Olivier Goffart
5f01ec30ee
Fix the viewer using generated rtti from a macro
...
One thing that needed to change is that we needed the vtable to be unique
2020-05-30 15:08:51 +02:00
Olivier Goffart
a883da3281
WIP: Use a macro to generate the RTTI
2020-05-30 15:01:50 +02:00
Olivier Goffart
0819b6f6cb
WIP to create a macro crate for corelib
2020-05-29 11:51:25 +02:00
Simon Hausmann
c5cdb86b25
Get rid of the life time specifier for ComponentImpl
...
This was done by simply reference-counting the RTTI structure that's shared.
2020-05-28 20:38:42 +02:00
Simon Hausmann
f9fe2d8fea
Don't crash on hello.60
...
There's a signal binding in there that's not handled yet.
2020-05-28 20:37:36 +02:00
Olivier Goffart
619e21295d
reformat
2020-05-28 17:15:11 +02:00
Olivier Goffart
dc276290e9
Add support for self assignment (+=, -=, ...)
2020-05-28 17:02:06 +02:00
Simon Hausmann
d0b9505b28
Don't crash when loading hello.60 in the viewer
...
Ignore signals for now.
2020-05-28 15:44:00 +02:00
Olivier Goffart
9891779022
Fix the C++ property
2020-05-28 15:25:56 +02:00
Simon Hausmann
b8a8abcdf9
Make the plus minus use-case work with the Rust frontend
...
Initialize the counter label from a property that we modify in signals handlers
from Rust code.
2020-05-28 15:20:30 +02:00
Simon Hausmann
993caa1cd4
Fix conversion from float to string in Rust frontend
...
Use as_str() to fix the compilation and call the macro with a bang :)
2020-05-28 15:20:30 +02:00
Simon Hausmann
97dc677854
Emit signal handler bindings and expressions for emitting signals in the Rust frontend
2020-05-28 15:20:30 +02:00
Simon Hausmann
a3892ea102
Emit declared signals in the rust frontend
2020-05-28 15:20:30 +02:00
Olivier Goffart
38329361b6
Use Property::set in C++ for constant bindings
2020-05-28 14:58:08 +02:00
Olivier Goffart
74898a1386
Make property conneciton binding in the C++
...
(somehow plus/minus is not working yet)
2020-05-28 14:52:43 +02:00
Simon Hausmann
e227f8a46e
Use both set() and set_binding() in the rust frontend
...
When an expression holds just a constant value, then we can avoid creating a binding.
2020-05-28 14:41:15 +02:00
Olivier Goffart
f6d1151832
Use the EvaluationContext in the signal handler
2020-05-28 14:26:35 +02:00
Olivier Goffart
e86a7d3192
Merge signal and property declaration
...
A Signal is just a property of type Type::Signal
Simplifies the code a bit
2020-05-28 12:49:18 +02:00
Olivier Goffart
95b671c97c
Support for code blocks and signal call
2020-05-28 12:30:08 +02:00
Simon Hausmann
f2df9293a9
Fix the C++ build
...
Remove the Optional from the evaluation context passing for property
evaluation. Unfortunately there are nullptr uses left on the C++ side,
that need to be replaced with passing through.
2020-05-28 12:07:11 +02:00
Simon Hausmann
4f9c53879b
Implement property references as bindings in the Rust frontend
2020-05-28 11:37:59 +02:00
Simon Hausmann
f1adf323c2
Introduce the use of EvaluationContext in the viewer
2020-05-28 09:20:11 +02:00
Simon Hausmann
daf23f8736
Pass the evaluation context through the binding closure
2020-05-28 09:20:11 +02:00
Simon Hausmann
c4dd857e0d
Add an evaluation context to property evaluations
...
The context is not used yet or passed on to the binding closure.
2020-05-28 09:20:11 +02:00
Olivier Goffart
8c39ada671
Add downcast method to VRef and VRefMut
2020-05-28 09:18:28 +02:00
Olivier Goffart
f27816a450
Recurse into the expressions in the passes
2020-05-28 08:01:33 +02:00
Olivier Goffart
92697ec6b0
Add some code to parse statements in blocks (separated with semicolon)
2020-05-28 07:22:08 +02:00
Olivier Goffart
250b0a2e5b
Rust macro: get the right span for the diagnostics
...
Merge the features proc_macro_span and proc_macro_diagnostics, they are the same.
2020-05-27 18:37:45 +02:00
Olivier Goffart
42cddf2925
Add the conversion test
2020-05-27 16:46:31 +02:00
Olivier Goffart
5580b5112f
Fix number to string conversion in C++
2020-05-27 16:18:08 +02:00
Olivier Goffart
486b2ab8f8
Do type checking and convert from number to string
2020-05-27 15:43:45 +02:00
Simon Hausmann
c8b64f5c4b
Remove the lowering
...
The LoweredItem and LoweredComponent contained, in essence, the same
information as the Element and Component in object_tree. Since the
moving declarations pass moved everything to the root element and the
LoweredPropertyDeclarations have been removed as well, this is the last
step.
2020-05-27 14:45:35 +02:00
Olivier Goffart
1389afda0d
viewer: handle property references
...
Note: Currently, the bindings are set as constant value, not as bindings
Since the setting of property happen in a indeterminate order, the value depending on other are currently undeterminate
2020-05-27 11:35:58 +02:00
Olivier Goffart
b084491878
Start working on trying to get custom properties working for the viewer
2020-05-27 11:33:20 +02:00
Simon Hausmann
32990e15e2
Remove LoweredPropertyDeclaration
...
This type that allowed indexing the property declarations in the hierarchy
to the properties moved to the root is not needed anymore.
For now a simple set remains in the LoweredItem to generate
correct accessor prefixes.
2020-05-27 11:13:58 +02:00