Commit Graph

315 Commits

Author SHA1 Message Date
Danilo Guanabara
546aeb4ec0 Create crumbs for missing Shapes (https://github.com/enso-org/ide/pull/313)
Original commit: f746857cc9
2020-04-01 21:50:16 -03:00
Adam Obuchowicz
97c146fbdc Fix problems with tests run in parallel (https://github.com/enso-org/ide/pull/332)
Global spawner was made thread local.

Original commit: 8931df9b44
2020-04-01 17:33:04 +02:00
Adam Obuchowicz
160811f506 IDE controllers refactoring (https://github.com/enso-org/ide/pull/314)
This change refactor controllers such way, that use RefCells only 
when it is necessary, and do some more code cleanup.


Original commit: 56ae2d48a4
2020-03-31 18:37:36 +02:00
Josef
4d92869db2 Cache dependencies for CI. (https://github.com/enso-org/ide/pull/277)
Original commit: 4e55dc5a9c
2020-03-31 14:10:37 +02:00
Michał Wawrzyniec Urbańczyk
c2ef15c0bf Fix #[derive(CloneRef)] for generic types with more than one type parameter. (https://github.com/enso-org/ide/pull/316)
Original commit: 7f8541ad54
2020-03-29 01:29:10 +01:00
Michał Wawrzyniec Urbańczyk
f39686e152 Proc macro for #[derive(CloneRef)] (https://github.com/enso-org/ide/pull/315)
Original commit: 6378d9ef11
2020-03-28 02:10:09 +01:00
Michał Wawrzyniec Urbańczyk
fd269d2457 Node Operations (https://github.com/enso-org/ide/pull/298)
Original commit: cf01ebf061
2020-03-27 23:59:02 +01:00
Danilo Guanabara
6552176247 CI fails on error (https://github.com/enso-org/ide/pull/291)
Original commit: 1de3c3413a
2020-03-27 09:25:55 -03:00
Adam Obuchowicz
4af19c5745 Fix drawing instance with empty buffers (https://github.com/enso-org/ide/pull/292)
This code was developed as a fix for occuring "crashes" on Windows, 
which were in fact a "contextLost" events of WebGl.


Original commit: 92b95df814
2020-03-25 15:29:36 +01:00
Michael Mauderer
1b573988a7 Fix instructions to set up toolchain for project build. Fixes #2179. (https://github.com/enso-org/ide/pull/284)
Original commit: cad50bb093
2020-03-23 21:26:30 +01:00
Josef
248a1caace Graph API - Node position in metadata (https://github.com/enso-org/ide/pull/274)
authored-by: Josef <j.f.vonasek@gmail.com>

Original commit: e4a9d7742a
2020-03-20 08:37:28 +01:00
Danilo Guanabara
cac0dfc0c3 Cursor word step tests fix (https://github.com/enso-org/ide/pull/278)
Original commit: 6d3fe6472d
2020-03-18 17:29:45 -03:00
Adam Obuchowicz
cd31d690b3 Mac and Windows shortcuts fixes (https://github.com/enso-org/ide/pull/273)
* Fix pasting on Mac
* Fix AltGraph handling on Windows

Original commit: c077e466b2
2020-03-18 16:09:11 +01:00
Josef
81ad282d84 removed idmap (https://github.com/enso-org/ide/pull/276)
Original commit: b6ce9ef2ea
2020-03-18 10:40:39 +01:00
Adam Obuchowicz
32a4cc37ea Improve cursor blinking (https://github.com/enso-org/ide/pull/271)
Before blinking cursor was done by setting width to 0.0, but this leaves a very-thin line instead of disappearing cursor entirely.

This fixes this, and make the blinking by setting color to transparent instead of setting width.

Original commit: d01523fb21
2020-03-18 09:19:12 +01:00
Michał Wawrzyniec Urbańczyk
83c66d265a Graph and Node controllers stub and mock implementations (https://github.com/enso-org/ide/pull/262)
For early design / API review.
Authored by michal.urbanczyk@luna-lang.org

Original commit: 461e6ae780
2020-03-18 08:43:52 +01:00
Danilo Guanabara
ef070434f3 Make the extra cursor navigation operations in TextField (https://github.com/enso-org/ide/pull/241)
Original commit: 3a9ed82efd
2020-03-17 19:50:45 -03:00
Adam Obuchowicz
46d0376c81 Fix build script (https://github.com/enso-org/ide/pull/269)
See https://doc.rust-lang.org/cargo/reference/build-scripts.html#rerun-if-changed for reference

Original commit: a342ecfea4
2020-03-17 17:30:43 +01:00
Adam Obuchowicz
b4ad324cf5 Fix stuck keymask after alt-tabbing (https://github.com/enso-org/ide/pull/270)
After pressing Alt-tab editor did not received keyup events so the keymask was stuck with pressed-alt state. To fix that, we clear the mask each time window lose focus.

Original commit: 29f3226f11
2020-03-17 17:06:12 +01:00
Wojciech Daniło
0a2164110d Update README.md
Original commit: 0d33957957
2020-03-17 03:56:07 +01:00
Wojciech Daniło
4f95075f2f Improving Electron App (https://github.com/enso-org/ide/pull/263)
Original commit: da0872f05a
2020-03-17 03:44:27 +01:00
Adam Obuchowicz
e207e0afa9 Fix text selection (https://github.com/enso-org/ide/pull/265)
Original commit: ada57d9078
2020-03-16 11:56:53 +01:00
Wojciech Daniło
6009caa205 Making tests on CI faster by running them in parallel (https://github.com/enso-org/ide/pull/264)
Original commit: 44df1d6706
2020-03-16 11:16:16 +01:00
Wojciech Daniło
500c8c21ed Update README.md
Original commit: d8b7dc348f
2020-03-16 04:29:03 +01:00
Wojciech Daniło
e10fc464a8 Refactoring file structure (https://github.com/enso-org/ide/pull/260)
Original commit: c38ca0d5a4
2020-03-16 03:58:00 +01:00
Michał Wawrzyniec Urbańczyk
757b4cbe7d Shape now implements Clone and Ast allows setting/removing id. (https://github.com/enso-org/ide/pull/261)
Original commit: 79e886c3de
2020-03-14 03:44:35 +01:00
Josef
a013563ce2 Metadata storage for module controller. (https://github.com/enso-org/ide/pull/237)
Original commit: c93076e7cf
2020-03-13 21:34:15 +01:00
Adam Obuchowicz
f26d88593c Implemented notification about text&graph changes brokering (https://github.com/enso-org/ide/pull/231)
Add possibility to subscribe for notifications about changes of one of module representations. Today, the notifications are sent after applying code changes (there are no other operations implemented yet).

Original commit: 68b63f2891
2020-03-13 17:52:41 +01:00
Wojciech Daniło
4fd137bfc3 Refactoring & Performance Improvements (https://github.com/enso-org/ide/pull/255)
Original commit: b2ee9388e4
2020-03-13 05:10:08 +01:00
Michał Wawrzyniec Urbańczyk
17f729874e Node Discovery (https://github.com/enso-org/ide/pull/250)
This PR introduces node discovery logic in `double_representation/node.rs`.
The parser dependency has been bumped, due to #2154.
Improvements in definition discovery — fixed previous issue where first line in block was ignored.


Original commit: 1370aaf431
2020-03-10 17:54:28 +01:00
Wojciech Daniło
619eb4fabd Fixing node version (https://github.com/enso-org/ide/pull/251)
Original commit: af54d2876c
2020-03-10 15:33:02 +01:00
Wojciech Daniło
c57c57d7f1 Update README.md
Original commit: 54c4d6393f
2020-03-07 21:16:14 +01:00
Wojciech Daniło
7631be9951 Update README.md
Original commit: 5e3f07d5de
2020-03-07 21:15:06 +01:00
Wojciech Daniło
02cea5ddee Update README.md
Original commit: 54edd76976
2020-03-07 20:25:57 +01:00
Wojciech Daniło
28a5644090 Update README.md
Original commit: 7b25827351
2020-03-06 21:05:07 +01:00
Wojciech Daniło
a52cf702ad Update README.md
Original commit: c939b175a8
2020-03-06 21:04:13 +01:00
Wojciech Daniło
2706c6f008 Update README.md
Original commit: e9444e4267
2020-03-06 21:01:55 +01:00
Wojciech Daniło
a3789aab2d Update README.md
Original commit: 6b37483b93
2020-03-06 20:58:21 +01:00
Wojciech Daniło
0335721b80 Update README.md
Original commit: 5079cad2f6
2020-03-06 20:56:32 +01:00
Wojciech Daniło
ee727745fc Update README.md
Original commit: a853dceff3
2020-03-06 20:53:46 +01:00
Wojciech Daniło
d3f782ea9d Update README.md
Original commit: e54672e192
2020-03-06 20:33:35 +01:00
Wojciech Daniło
51bb59421d Fixing wrong npm LTS version.
Original commit: 87e71f60f1
2020-03-06 16:50:17 +01:00
Michał Wawrzyniec Urbańczyk
23425718ff Definition Discovery (https://github.com/enso-org/ide/pull/225)
Original commit: 41895d7a94
2020-03-06 14:05:59 +01:00
Wojciech Daniło
d2a70667fc Cleaning codebase (https://github.com/enso-org/ide/pull/235)
Original commit: 820113e061
2020-03-05 20:00:47 +01:00
Wojciech Daniło
7d197fd5cf Update README.md
Original commit: 2f4eb02c1b
2020-03-05 18:39:51 +01:00
Wojciech Danilo
48c262f007 Fixing electron internal path bug.
Original commit: 11cdeadf66
2020-03-05 06:55:13 +01:00
Wojciech Daniło
b38bcac15a Fixing documentation links.
Original commit: 56992d239f
2020-03-05 06:29:34 +01:00
Wojciech Daniło
68601ba9e9 Electron support (https://github.com/enso-org/ide/pull/223)
Original commit: d0b71bb46c
2020-03-05 06:25:00 +01:00
Josef
f0075eba50 Generate idmap from AST. (https://github.com/enso-org/ide/pull/215)
Authored by josev

Original commit: 6614e2ab1e
2020-03-04 15:00:49 +01:00
Danilo Guanabara
ce9a1d7f5f Keep cursor positions on text refresh (https://github.com/enso-org/ide/pull/232)
Original commit: 0b8efa24fd
2020-03-04 05:06:38 -03:00
Danilo Guanabara
dac19291dc Selecting word occurrences (https://github.com/enso-org/ide/pull/224)
Original commit: d83b53e1c6
2020-03-03 10:05:21 -03:00
Adam Obuchowicz
58e12104b0 Minimal Text API for Double Representation (https://github.com/enso-org/ide/pull/221)
Implemented Text API which updates id_map and ast on each code change.

This PR contains also an implementation for actual opening and initializing Module Controller.
Added a "Text changed" callback to TextField which is fired on every user edit.


Original commit: b027517b34
2020-02-28 19:29:37 +01:00
Wojciech Daniło
8b3eba16b0 Initial shape of collapsed nodes + progress bar.
Original commit: 19d6b6636b
2020-02-28 00:06:22 +01:00
Danilo Guanabara
81a7147387 View x Controller integration (https://github.com/enso-org/ide/pull/219)
Original commit: ff80159116
2020-02-26 16:12:38 -03:00
Josef
edebe6b661 Pass IDMap to scala parser. (https://github.com/enso-org/ide/pull/212)
Original commit: ae92ae1a96
2020-02-26 14:11:40 +01:00
Danilo Guanabara
5c3f1dadec Using Chrome in ./script/test.sh (https://github.com/enso-org/ide/pull/171)
Original commit: b9b9c510f0
2020-02-24 02:56:32 -03:00
Michał Wawrzyniec Urbańczyk
5a9c32360e File Manager Integration (https://github.com/enso-org/ide/pull/203)
This PR brings code necessary to fully integrate file manager and properly use it.
Two most important parts are:
* executor that can be integrated with basegl's event loop;
* implementation of the `Transport` trait based on `web_sys::WebSocket`.

I've also added some glue code to put the file manager connection into the project view.

Implements #2105.

Original commit: 64c06632e1
2020-02-21 16:54:42 +01:00
Danilo Guanabara
5c4e444e4e Navigator refactoring and other improvements on the new MouseManager (https://github.com/enso-org/ide/pull/201)
Original commit: f4e3f13f5c
2020-02-20 00:36:55 -03:00
Adam Obuchowicz
1a796a2e07 Text controller implementation (https://github.com/enso-org/ide/pull/180)
This contains an initial TextController implementation, which can read and store the file content, and is obtainable from ProjectController.

Original commit: 66f4dfd0fa
2020-02-18 21:06:37 +01:00
Danilo Guanabara
a9f2de5b00 Initial Project View (https://github.com/enso-org/ide/pull/159)
Original commit: bfe5377ba5
2020-02-18 14:40:24 -03:00
Michał Wawrzyniec Urbańczyk
6897884a9e fixes for rendering on windows/chrome (https://github.com/enso-org/ide/pull/183)
Original commit: ef6fdb59d4
2020-02-18 14:01:59 +01:00
Adam Obuchowicz
ca9497e879 TextField mouse input (https://github.com/enso-org/ide/pull/175)
Implemented FRP graph handling mouse events for TextField. Alt+Shift click add new cursor, enabling multicursor edit.

Original commit: 1f5a8257b4
2020-02-14 17:08:47 +01:00
Danilo Guanabara
8527741ad3 Fix renderer & navigator resizing (https://github.com/enso-org/ide/pull/165)
Original commit: fb3ad45f8c
2020-02-13 10:02:18 -03:00
Adam Obuchowicz
0fe5b0fe8e TextField keyboard input. (https://github.com/enso-org/ide/pull/170)
Implemented the reactions of TextField for keyboard events.

It includes change for Fonts - now we don't have to pass
reference to FontRegistry on each text operation.

Original commit: e6e44ad827
2020-02-13 10:26:42 +01:00
Michał Wawrzyniec Urbańczyk
dc1ce292b0 Make JSON-RPC handler more async-compatible (https://github.com/enso-org/ide/pull/172)
Original commit: 0dd46b3013
2020-02-13 03:16:38 +01:00
Michał Wawrzyniec Urbańczyk
10f78ec5c3 JSON-RPC uses params, not input (https://github.com/enso-org/ide/pull/173)
Original commit: ecd09ab2ac
2020-02-12 23:42:30 +01:00
Michał Wawrzyniec Urbańczyk
e184719b95 Fixes and Improvements for File Manager Mock Server (https://github.com/enso-org/ide/pull/174)
Original commit: 08525ce337
2020-02-12 22:40:21 +01:00
Michał Wawrzyniec Urbańczyk
91f3703663 Mock File Manager Server (https://github.com/enso-org/ide/pull/167)
Ref #2106 

Original commit: a6569fefa7
2020-02-12 02:54:21 +01:00
Wojciech Daniło
b3c8d954de Update README.md
Original commit: 27adb447dc
2020-02-11 23:52:44 +01:00
Wojciech Daniło
ecda629e98 Node shapes part 1, build time optimization, lazy WASM loader. (https://github.com/enso-org/ide/pull/162)
Implements #2117
The application is now distributed to WASM binary (gzipped, not processed by webpack) and JS helpers bundle (gzipped, processed by webpack).
There is a new loader implementation that starts downloading the bundles and as soon as it finishes downloading the helper bundle, it starts online WASM compilation (before the WASM binary finishes downloading).
The loader displays a nice progress bar to the user.
The top-level examples folder was renamed to app and changed significantly. It is meant now to be the base for our cloud and native app. When you run it, please navigate to http://localhost:8080/debug to get the list of debug demo scenes.

Implements #2118
Please use ./scripts/watch.sh --dev. After changing any example scene, the time between hitting ctrl+s and seeing new results in the browser dropped from 45s to 3s.

Implements #2110

Original commit: f21998f4f2
2020-02-11 00:47:03 +01:00
Adam Obuchowicz
d6d59d224d Moving cursors after each edit (https://github.com/enso-org/ide/pull/160)
Before, all edits did not adjust the cursor positions, but they remained with their selection in the same location. 

Original commit: 57cdbbf588
2020-02-10 18:20:47 +01:00
Adam Obuchowicz
81d0bb555b Wip/ao/clipboard (https://github.com/enso-org/ide/pull/154)
The implementation of clipboard operations on TextField.

Original commit: cee54a7614
2020-02-10 14:04:52 +01:00
Michał Wawrzyniec Urbańczyk
1879b97b57 Utilities for safe usage of handles with RefCell values. (https://github.com/enso-org/ide/pull/156)
Original commit: 23ea51b92d
2020-02-07 04:02:18 +01:00
Danilo Guanabara
685c6d0c37 World Integration 🌎🕊️ to Css3dSystem (https://github.com/enso-org/ide/pull/133)
CSS 3D System x World integration

Original commit: 7c47432a09
2020-02-06 13:09:29 -03:00
Danilo Guanabara
692432e498 File size checking 📏 (https://github.com/enso-org/ide/pull/148)
File size checking

Original commit: cce31b31ae
2020-02-06 07:13:07 -03:00
Wojciech Daniło
ca2b242a33 Create CODEOWNERS
Original commit: b80f1d9643
2020-02-06 03:49:42 +01:00
Wojciech Daniło
adf6a10fb9 Implementation of optimization passes to the FRP engine. (https://github.com/enso-org/ide/pull/135)
Original commit: 675039a37d
2020-02-05 22:13:37 +01:00
Adam Obuchowicz
3c95b1502f New Text Component (https://github.com/enso-org/ide/pull/132)
Refactored TextComponent to use the sprites and glyph system, and renamed it to TextField. Also do much refactoring stuff and add missing documentation.

Original commit: 49efefad2c
2020-02-04 20:07:08 +01:00
Michał Wawrzyniec Urbańczyk
e6642e8df3 fixed accidental replace (https://github.com/enso-org/ide/pull/131)
Original commit: 568fa87533
2020-02-01 02:33:49 +01:00
Adam Obuchowicz
df1d78dd74 Glyph system (https://github.com/enso-org/ide/pull/121)
Original commit: afcaff970c
2020-02-01 02:31:31 +01:00
Michał Wawrzyniec Urbańczyk
e49daec321 Run wasm-pack test on Windows and macOS (https://github.com/enso-org/ide/pull/127)
Original commit: 862ff6938d
2020-01-30 15:00:58 +01:00
Wojciech Daniło
152a14f1c3 Fixing global state (https://github.com/enso-org/ide/pull/130)
Original commit: 17b0d32159
2020-01-30 10:07:17 +01:00
Michał Wawrzyniec Urbańczyk
db977692f7 Add IDE Code From enso Repository (https://github.com/enso-org/ide/pull/128)
As per https://github.com/luna/enso/issues/431

Original commit: 8f993cc1d2
2020-01-29 21:30:09 +01:00
Danilo Guanabara
ebfc075938 Adding lints to the codebase (https://github.com/enso-org/ide/pull/126)
Addings lints to the codebase

Original commit: cf45cd64ac
2020-01-28 23:25:22 -03:00
Wojciech Daniło
d068dfb829 Initial FRP engine implementation. (https://github.com/enso-org/ide/pull/122)
Original commit: cf25c22bb1
2020-01-28 15:50:15 +01:00
Danilo Guanabara
8478df259b Integration of WebGL and CSS scenes and renderers (https://github.com/enso-org/ide/pull/119)
* Removed web's Camera. We are now using Camera2d

* Fixed camera set_screen and set_position order

* Added screen dimensions to Camera2d constructor

* Removed the need for UniformScope in Camera2d's constructor and exposed an 'add_zoom_update_callback' method

* Lints

* Removed dom's transform and dom's object

* Making use of DisplayObject in HTMLObject and HTMLScene

* Unified HTMLRenderer with DisplayObject logic

* Changes from farmaazon's feedback

* Changes from reviews

* More changes from reviews

* Fixed trigonometric function

* Using Navigator on examples

* Minor fixes

* Lints

* Stylistic renaming

* Some more fixes

* Simplified API without event_loop and dom_id

* Camera2d alignments

* Removed IntersectionObserver

* &loggers

* Minor fixes

* More fixes :P

* Fixed CloneRef impls


Original commit: e35fa857f6
2020-01-27 23:09:59 -03:00
Paul Kapustin
b2edfbbc28 Minor language improvements (https://github.com/enso-org/ide/pull/120)
Original commit: 2696f77d04
2020-01-22 16:01:11 +01:00
Wojciech Daniło
22785293c2 Renderpasses (https://github.com/enso-org/ide/pull/114)
Original commit: 25bb702b48
2020-01-22 15:38:24 +01:00
Danilo Guanabara
4fb53686ad Animation Manager (aka EasingAnimator) (https://github.com/enso-org/ide/pull/108)
* 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

* Animation Manager with examples

* Removed FIXME comment from animation.rs

* Updates based on review

* Changed point size

* lint fix

* Manually merging master

* Adding position to animation

* Fixed tests

* Removed unused variables from text test

* Code cleanup

* Refactored code with EventLoop

* Code refactoring with EventLoop

* Removed old callback impl

* Removed old event_loop file

* Fixing bencher.rs

* Linter

* First round of feedback impl

* Added more docs

* Better callback guard naming

* A little bit more docs

* EasingAnimator now can be used with any object implementing Interpolable

* Review fixes

* Refactoring

* Time values are now f64

* Fixed callback names

* Got rid of unecessary muts

* Re-exporting EventLoop and better easing function macro

* Moar refactoring

* PhysicsSimulator is now using the same callback-based design of other animators

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


Original commit: 1dc496d504
2020-01-18 23:31:13 -03:00
Danilo Guanabara
7fba387683 Using Firefox for headless web tests (https://github.com/enso-org/ide/pull/113)
* Using Firefox for headless web tests

* Fixing headless web test command

* Remove unecessary  GitHub Action step


Original commit: 35941c4a68
2020-01-18 22:55:14 -03:00
Wojciech Daniło
9d785ef3f1 Update style-guide.md
Original commit: 3d92c1096f
2020-01-18 02:23:29 +01:00
Wojciech Daniło
45a3ef5f01 Update style-guide.md
Original commit: 2de7a766eb
2020-01-18 02:21:22 +01:00
Adam Obuchowicz
29e66af802 Texture rendering (https://github.com/enso-org/ide/pull/112)
Original commit: c4fd0b0908
2020-01-17 14:36:38 +01:00
Wojciech Daniło
d9d4b8b702 Cleaning codebase + initial texture support (https://github.com/enso-org/ide/pull/110)
Original commit: 1b37638dfb
2020-01-15 15:47:44 +01:00
Adam Obuchowicz
1b6094a126 Cursor navigation (https://github.com/enso-org/ide/pull/106)
Original commit: 9d1b18d681
2020-01-10 16:17:40 +01:00
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
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
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
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
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
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
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
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
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
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
Wojciech Daniło
e0eea3ae72 Buffer Management for BaseGL (https://github.com/enso-org/ide/pull/51)
Original commit: 23a8bd1b07
2019-11-27 18:04:33 +01:00
Adam Obuchowicz
a07ad85444 Add wasm-pack test to github workflows (https://github.com/enso-org/ide/pull/49)
To the test workflow added a step where wasm-pack test is run for each crate in workspace.

A script was added, which runs wasm-pack test for each workspace members, because The wasm-pack itself cannot read workspaces. The script was written in rust, therefore a special crate for build-and-utility-scripts in rust was created.


Original commit: 51d3eaec7e
2019-11-25 11:52:51 +01:00
Danilo Guanabara
846cd870a2 HTML Rendering System (https://github.com/enso-org/ide/pull/48)
HTML CSS3D Renderer implementation

Original commit: 81ae637b60
2019-11-22 02:40:30 +01:00
Wojciech Daniło
148a5b50b0 Update build.yml
Original commit: 7b854d1e28
2019-11-22 02:09:48 +01:00
Adam Obuchowicz
e3dd6a7027 Add msdfgen-sys crate (https://github.com/enso-org/ide/pull/39)
Original commit: 2115a3127c
2019-11-18 16:56:26 +01:00
Ara Adkins
6c2d42d890 Add issue and PR templates
Original commit: 389062ec1a
2019-10-14 11:00:17 +01:00
Wojciech Daniło
c279693279 Update README.md
Original commit: 568ad0b482
2019-10-08 06:00:00 +02:00
Wojciech Daniło
c32c22afbf Update README.md
Original commit: edb1f2f52c
2019-10-08 05:25:29 +02:00
Wojciech Daniło
6f228cda73 Update README.md
Original commit: b5c18ef0d7
2019-10-07 23:44:37 +02:00
Wojciech Daniło
fb7a430f7b Update README.md
Original commit: d4760ec516
2019-10-07 23:22:16 +02:00
Wojciech Daniło
cb12fb3f00 Update README.md
Original commit: b4e2a5db73
2019-10-07 23:10:09 +02:00
Wojciech Danilo
9d8b4fd502 Merge branch 'master' of github.com:luna/basegl
Original commit: ef679256df
2019-10-07 22:54:07 +02:00
Wojciech Danilo
c48b61e5ab Update readme.
Original commit: 083ee2b151
2019-10-07 22:53:53 +02:00
Wojciech Daniło
6248e63991 Update build.yml
Original commit: 5be879ff2d
2019-10-07 22:45:07 +02:00
Wojciech Daniło
3286eb3cf7 Update grcov.yml
Original commit: fdd44439ae
2019-10-07 22:43:56 +02:00
Wojciech Danilo
97f7b80fa7 Merge branch 'master' of github.com:luna/basegl
Original commit: 5918903a0d
2019-10-07 22:28:54 +02:00
Wojciech Danilo
ee8fc93f07 Adding tests, refactoring scripts.
Original commit: ad45bc5f17
2019-10-07 22:27:40 +02:00
Wojciech Daniło
e046e9c6f7 Update build.yml
Original commit: 8da2909aeb
2019-10-07 22:06:02 +02:00
Wojciech Daniło
ecde1bc976 Update build.yml
Original commit: 9b8a529793
2019-10-07 21:03:03 +02:00
Wojciech Daniło
4cc7695412 Update build.yml
Original commit: 2440f88c4a
2019-10-07 20:52:33 +02:00
Wojciech Danilo
cb5e6ce515 Merge branch 'master' of github.com:luna/basegl
Original commit: 5e433c8499
2019-10-07 20:33:31 +02:00
Wojciech Danilo
9e947eb8a0 Fixing warnings, refactoring
Original commit: ae77cfb98d
2019-10-07 20:33:09 +02:00
Wojciech Daniło
6c829d23bf Update README.md
Original commit: 3471dc8589
2019-10-07 20:01:12 +02:00
Wojciech Daniło
e1bfe81886 Update build.yml
Original commit: 6a044ef0b6
2019-10-07 19:36:42 +02:00
Wojciech Daniło
c520ec60da Update build.yml
Original commit: b0a6c89cf7
2019-10-07 19:16:09 +02:00
Wojciech Daniło
ad49d38c2b Update build.yml
Original commit: 6f73052d99
2019-10-07 19:04:43 +02:00
Wojciech Daniło
7da952348e Update build.yml
Original commit: beb2f41aeb
2019-10-07 19:03:52 +02:00
Wojciech Daniło
66e35ead0b Update build.yml
Original commit: 36ea46e5dd
2019-10-07 18:59:19 +02:00
Wojciech Daniło
1bd3eb1434 Update build.yml
Original commit: 97b4beaf2d
2019-10-07 18:38:15 +02:00
Wojciech Daniło
d18f517dd0 Update build.yml
Original commit: 52221059f9
2019-10-07 18:36:06 +02:00
Wojciech Daniło
d5028c7fa3 Update build.yml
Original commit: c364752a9f
2019-10-07 18:31:07 +02:00
Wojciech Daniło
360ece4b03 Enable unstable features without requiring nightly channel
Original commit: ca363c228f
2019-10-07 17:12:07 +02:00
Wojciech Daniło
d59b2c95be Update build.yml
Original commit: 59cd584785
2019-10-07 17:10:04 +02:00
Wojciech Daniło
1e0d0aba62 Delete grcov.yml
Original commit: 1eedcbf73e
2019-10-07 17:04:35 +02:00
Wojciech Daniło
ab19c07b7e Update grcov.yml
Original commit: a77ef509c0
2019-10-07 17:03:58 +02:00
Wojciech Daniło
e212835e22 Create grcov.yml
Original commit: cf7275c861
2019-10-07 17:03:15 +02:00
Wojciech Daniło
c49fa8371d Update build.yml
Original commit: 33506baf77
2019-10-07 17:01:11 +02:00
Wojciech Daniło
ad547bf4b0 Update build.yml
Original commit: 51678ba2d0
2019-10-07 16:53:07 +02:00
Wojciech Daniło
0a05a8f527 Create grcov.yml
Original commit: 53c2df3dd5
2019-10-07 16:51:54 +02:00
Wojciech Daniło
5413ddd546 Update build.yml
Original commit: 40444da4b6
2019-10-07 16:41:00 +02:00
Wojciech Daniło
0308cf9f6c Update build.yml
Adding coverage tests

Original commit: c60bc70a78
2019-10-07 16:19:06 +02:00
Wojciech Daniło
910641d81f Update README.md
Original commit: 6d2d9ea15f
2019-10-07 15:44:57 +02:00
Wojciech Daniło
c80ee14c60 Update build.yml
Original commit: 5f355507a7
2019-10-07 14:45:49 +02:00
Wojciech Daniło
2df869093e Update README.md
Original commit: f4df97df06
2019-10-07 14:37:12 +02:00
Wojciech Daniło
184d9ca4e0 Delete rust.yml
Original commit: 7fc536bd7a
2019-10-07 14:15:57 +02:00
Wojciech Daniło
0834645fe8 Update and rename rust.yml to build.yml
Original commit: ffa91f8183
2019-10-07 14:15:41 +02:00
Wojciech Daniło
bf49cb3ff9 Update README.md
Original commit: 9ef06992b9
2019-10-07 13:51:18 +02:00
Wojciech Daniło
cf98e18319 Update rust.yml
Original commit: e89005203b
2019-10-07 13:42:20 +02:00
Wojciech Daniło
7564e532bb Update rust.yml
Original commit: 62c39f00a8
2019-10-07 13:28:34 +02:00
Wojciech Daniło
ccea9f8907 Update README.md
Original commit: f3f41af005
2019-10-06 21:56:53 +02:00
Wojciech Danilo
5bbb3e2524 Init
Original commit: c745d7d896
2019-10-06 21:47:17 +02:00