Commit Graph

2203 Commits

Author SHA1 Message Date
Danilo Guanabara
65a687b911 Camera Animation System (https://github.com/enso-org/ide/pull/60)
* HTMLScene and HTMLObject implementation

* Added HTMLRenderer and Camera objects

* Adding rlib as crate-type to make basegl available in tests

*  HTMLRenderer tests and code cleanup

* Fixed transformations and adapted Quaternion euler transformation order from XYZ to YXZ (like threejs)

* Added knowledge comments

* Recovering original lib.rs (with world demo)

* Added shrinkwraprs

* Formatted files

* Improved opt_vec test coverage

* Fixes based on clippy and rustfmt

* Remove unused WeakSet :)

* Added documentation

* Improved HTMLObject::from_html_string and beautified the code fmt

* Created StyleSetter and AttributeSetter to deal with panics

* Fixed code chars limits

* Matrix code cleanup and more code style guidelines fixes

* More alignment fixes

* Some more fixes and refactoring

* Refactored IntoCSSMatrix

* Refactoring

* Removed examples/02-html

* More refactoring

* Derived rendering structs from Debug

* Refactoring (https://github.com/enso-org/ide/pull/50)

* Comments on HTMLRenderer tests

* Removed unwanted console_log

* Recovered missed css matrix3d code

* Added  attribute to invalid doc codes

* Clippy lints fixes

* Fixed function access

* Added AnimationFrameLoop

* Custom web benchmarks implementation

* Added #[web_test] and #[web_bench] procedural macros

* Added documentation

* Lints

* Removed unused benchmark

* Removed unused test

* HTMLRenderer optimizations ;)

* resize_observe should return the index

* ResizeObserve for Scene & HTMLScene

* Lints

* Using array.join

* Added test scenario where OptVec has empty indices

* Made HTMLScene.objects private and provided accessors to it

* HTMLScene properties renaming

* Added unit test for Matrix4 memory layout

* Renamed packages author to Enso Team

* Improved benchmark readability

* Made IntoFloat32Array trait safe

* Refactored HTMLRenderer

* Lints

* Better code style

* Qualified Float32ArrayView as unsafe

* Usage example for web_test

* Style fixes

* Scene::add_resize_callback abstraction

* Spacing

* Major refactoring!

* Some minor fixes

* Comments for IntoFloat32ArrayView usage

* Navigation without smoothed movement

* Intersection Observer and navigator impl

* Intersection Observer and navigator impl

* Navigator with orthographic projection

* Camera refactoring

* Removed unecessary source note now that the code is self explanatory

* Smoothed camera navigation

* Refactored event_handler and navigator

* Linter fixes

* Fixed invalid_container test

* Included MouseEvent in system::web's Cargo.toml

* Code cleanup (unwraps refactoring) and documentation

* Adding Event and MouseEvent to basegl-system-web

* Added EventTarget to basegl-system-web

* Fixed navigation test

* Small fixes from review feedback

* Small fixes from review feedback

* Introduction of MouseManager

* Better physics with PhysicsSimulator and overshooting avoidance with AnimationManager

* Clippy fixes

* Disabling html_renderer test to verify CI failure

* Putting back html_renderer test. It looks like headless web testing is broken

* 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging)

* Style fix

* Review refactoring

* Moved mass to Kinematics

* Linter fixes

* Vertical alignemnt update

* Removing std::mem::forget from physics test

* Physically correct interpolated simulator

* PhysicsSimulator using Stokes' drag equation

* Created camera navigation example

* Refactored camera animation system

* Progress from reviews

* More progress on reviews

* Linter fixes

* Added fixme comment

* MouseManager refactoring

* Removed naked refcells

* Switched some usages of Rc to Weak

* New file hierarchy

* Fixed names

* Linter

* Breaking things and adding comments.

* Fixed touchpad panning

* Preventing default wheel event

* Zooming at constant speed

* Fixes

* Linter and test fixes

* Debug

* Removed debug

* Zoom clamping

* Better physics submodule name

* Animators now takes AnimationFrameLoop as a parameter and Bencher exposes it so we can reuse it

* Linter fixes

* Removed FIXME comment from animation.rs

* Updates based on review

* lint fix

* Manually merging master

* Adding position to animation

* Fixed tests

* Removed unused variables from text test

Co-authored-by: Wojciech Daniło <wojciech.danilo@gmail.com>
Co-authored-by: Adam Obuchowicz <obuchowiczadam@gmail.com>


Original commit: d1fcf4548b
2020-01-09 03:17:39 -03:00
Wojciech Daniło
af276039eb Shapes EDSL (https://github.com/enso-org/ide/pull/105)
Original commit: 31f5dcbaa5
2020-01-08 15:26:36 +01:00
Mateusz Czapliński
50593f6093 Fix paths in ide/README (#420)
Previously, paths in markdown links were incorrectly pointing to non-existent directories at repo root. This commit fixes them to link to existing subdirectories relative to the Readme file they're in.
2020-01-08 09:50:05 +00:00
Michał Wawrzyniec Urbańczyk
2f015c70de
HasSpan and HasRepr implementation for AST (#416)
Provides implementation of `HasSpan` and (newly introduced) `HasRepr` for all relevant Ast types.
Implements #379.

Wherever feasible, I tried to reduce boilerplate with macros. Certainly more can be done in that regard but that'd require spending more time on this task than we allocated.
2020-01-08 00:51:59 +01:00
Marcin Kostrzewa
05118016e1
Implement value extraction from scopes (#419) 2020-01-07 17:38:49 +01:00
Marcin Kostrzewa
4f177aa0f5
Fix uncached flows, refactor and document the function call flow (#417) 2020-01-07 13:39:07 +01:00
Adam Obuchowicz
74e24e62ca Cursors in text (https://github.com/enso-org/ide/pull/93)
Original commit: 73b8fff6c7
2020-01-03 15:52:20 +01:00
Wojciech Daniło
2cebd28a8d Update README.md
Original commit: 73d7e72ad0
2020-01-03 14:48:54 +01:00
Wojciech Daniło
67a471591e Update README.md
Original commit: 7220d9bd24
2020-01-03 14:48:00 +01:00
Wojciech Daniło
1e0de6fc24 Update style-guide.md (https://github.com/enso-org/ide/pull/92)
Original commit: c9c496b2e2
2020-01-03 14:46:27 +01:00
Wojciech Daniło
5af7a0fd2f Performance fine-tuning & monitoring (https://github.com/enso-org/ide/pull/95)
Original commit: 4351c60828
2020-01-03 14:29:57 +01:00
Danilo Guanabara
cd95b281e8 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging) (https://github.com/enso-org/ide/pull/91)
* 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging)

* Style fix

* Review refactoring

* Moved mass to Kinematics

* Linter fixes

* Vertical alignemnt update

* Removing std::mem::forget from physics test

* Physically correct interpolated simulator

* PhysicsSimulator implementation only with one Animator

* Added source commcents

* Safer Physics mod setters

* Removed use of performance.now() in set_time


Original commit: 0596cc5097
2019-12-26 13:53:25 -03:00
Wojciech Daniło
df8321d9da Refactoring file structure. (https://github.com/enso-org/ide/pull/94)
Original commit: 17ee3dba94
2019-12-24 09:29:10 +01:00
Wojciech Daniło
6e07e795d3 Material manager. (https://github.com/enso-org/ide/pull/90)
Original commit: 9e51ce8357
2019-12-22 00:46:13 +01:00
Michał Wawrzyniec Urbańczyk
192440bedd
derive(Iterator) support for structs with fields of dependent types (#412)
This adds support for using `derive(Iterator)` to iterate over such structures like 
```rust 
struct Foo<T> { 
    a:(T,U,T), 
    b:Option<T> 
}
```
i.e. where fields are dependent over last type argument, however they do not store it directly.

Dependent types like `Option<T>` are required to provide a compatible `iter` method.

Implements #407.
2019-12-21 03:55:39 +01:00
Ara Adkins
83efbdfd6f
Organise the design documentation (#415) 2019-12-20 16:42:54 +00:00
Adam Obuchowicz
74ed8b36c8 Text editing (https://github.com/enso-org/ide/pull/88)
Added operation for editing text in text component, which does the minimal 
required buffer refresh.

Original commit: 2ece0ca13b
2019-12-20 16:57:52 +01:00
Marcin Kostrzewa
1eed651728
Interpreter lifecycle & Module changes (#414) 2019-12-20 16:02:34 +01:00
Ara Adkins
d24577c565
Update design docs for engine services (#411) 2019-12-19 14:13:20 +00:00
Adam Obuchowicz
99e08bbe75 Text scrolling (https://github.com/enso-org/ide/pull/84)
TextComponent supports scrolling now. During scroll we try to refresh a minimum
number of buffer fragments to make a uncovered lines actually displayed.

Original commit: a10bba9776
2019-12-19 12:06:48 +01:00
Dmytro Mitin
f4480354c9 Update CONTRIBUTING.md (#391) 2019-12-19 10:57:41 +00:00
Wojciech Daniło
901cca37f7 Display Objects, Camera management, Shaders Generator (https://github.com/enso-org/ide/pull/89)
Original commit: 5c37d3c9bc
2019-12-19 01:37:41 +01:00
Michał Wawrzyniec Urbańczyk
3455d75101
derive(Iterator) support for enum types (#387)
This PR extends `derive(Iterator)` proc macro to support enumeration type when they have variants with a single unnamed field, that implements `IntoIterator`.
Thanks to that, it is now finally possible to derive iterator for the `Shape` type and similar enum types used in AST.
Implements #385
2019-12-18 14:30:46 +01:00
Josef
0b9664de60
Integrating Scala Parser Into Rust. (#362) 2019-12-17 14:33:21 +01:00
Marcin Kostrzewa
1cbe3d3534
Update engine-services.md 2019-12-17 11:26:20 +01:00
Ara Adkins
96fabb91f4
Sync Rust style guide with BaseGL repo 2019-12-17 10:21:59 +00:00
Ara Adkins
2bf9fea172
Add an initial design doc for engine services (#386) 2019-12-16 17:34:24 +00:00
Ara Adkins
f2aa6b6b26
Update scala-style-guide.md 2019-12-16 13:35:26 +00:00
Ara Adkins
b9ae90ba34
Update java-style-guide.md 2019-12-16 13:35:14 +00:00
Michał Wawrzyniec Urbańczyk
68c6ceff40
Completing Rust AST data structures (#378)
This pull request adjusts AST data structures in Scala and Rust to be compatible, while also fixing a number of JSON format mismatches find along the way. This implements #336.
2019-12-16 14:03:59 +01:00
Adam Obuchowicz
070d264dbb Text clipping (https://github.com/enso-org/ide/pull/75)
Text in text component is clipped to specified area on screen. Only visible 
part of text have its data in opengl buffers. The buffer management was
somewhat adapted to quick scrolling with minimum buffer data refreshing.

Original commit: 0b39d6f89a
2019-12-11 13:27:44 +01:00
Adam Obuchowicz
ebe9db1b74 Implemented newlines (https://github.com/enso-org/ide/pull/67)
TextComponent will properly display text containing newline characters.

Code of the TextComponent was somewhat prepared for optimal clipping text and scrolling; each line of text have an own fixed-size buffer fragment, so the lines should be easily extended and fragments reused.

Original commit: 647430f1d8
2019-12-09 14:24:21 +01:00
Wojciech Daniło
aebfe94a80 Update design notes (#376) 2019-12-09 05:32:36 +00:00
Ara Adkins
b1372cbf94
Fix naming for new design document 2019-12-06 22:10:47 +00:00
Ara Adkins
cbe5c441de
Edit the language design doc (#375) 2019-12-06 22:08:50 +00:00
Ara Adkins
c3acc5c615
Complete AST to AstExpression translation (#374) 2019-12-06 19:22:20 +00:00
Danilo Guanabara
d6df7dd156 HTMLRenderer Benchmarks (https://github.com/enso-org/ide/pull/58)
* Custom benchmark solution
* Optimized HTMLRenderer

Original commit: 8a147bf9d4
2019-12-06 13:11:17 -03:00
Marcin Kostrzewa
2b8af07148
Fix jupyter & tweak stacktrace elements & pretty printer (#373) 2019-12-06 12:58:20 +01:00
Wojciech Daniło
b80e3f29e4 Rust code style guide (https://github.com/enso-org/ide/pull/61)
Original commit: 3204946622
2019-12-06 08:01:58 +01:00
Josef
8ae06e0f09
support escaping in raw strings (#369) 2019-12-05 11:13:46 +01:00
Adam Obuchowicz
495bdf93df Text display: letters alignment (https://github.com/enso-org/ide/pull/62)
Display text properly, making appropriate spacing between glyphs and implementing kerning.

Original commit: 704537b0eb
2019-12-04 17:45:31 +01:00
Ara Adkins
db4cbacec3
Add suspended blocks, fix thunk performance (#371)
This commit adds support for suspended blocks in the interpreter and also fixes 
a major performance issue with nested thunks that was causing quadratic 
evaluation time.
2019-12-04 16:00:53 +00:00
Michał Wawrzyniec Urbańczyk
07baa9212b
Scala/Rust JSON serialization protocol unification (#370)
This PR updates JSON serialization in Scala in Rust, so they are compatible, implementing #297. The parser wrapper now uses the real AST in API. Still most of non-trivial use-cases will fail. Once #336 is done, it should finally work.
2019-12-04 16:34:54 +01:00
Adam Obuchowicz
636d459971 Line of chars (https://github.com/enso-org/ide/pull/57)
The component displaying a not-properly aligned line of characters on webgl context

Original commit: 01d1665208
2019-12-03 22:46:38 +01:00
Marcin Kostrzewa
c7b3d31415
Source locations in Truffle nodes (#368) 2019-12-02 19:41:46 +01:00
Michał Wawrzyniec Urbańczyk
47f9a4889c
Scala AST refactoring (#360)
A new implementation of Scala AST, as described in #352.
2019-12-02 14:30:37 +01:00
Ara Adkins
ed5786d99e
Add pattern matching and lazy arguments (#365)
Add new syntax support for the above constructs.
2019-12-02 11:59:45 +00:00
Marcin Kostrzewa
6bc14a3b9f Add a tiny subset of nodelocs (#364) 2019-11-29 12:36:48 +00:00
Marcin Kostrzewa
8432a9695a
Absolute code locations (#363) 2019-11-29 10:27:34 +01:00
Paul Kapustin
2ff8f6277e Make some language improvements in design docs (#361) 2019-11-28 22:06:43 +00:00