Implemented Set and Erase operations on SpanTree. Also modified SpanTree, that it have much more Empty nodes, and those empty nodes now are used for inserting.
Note: Because we're approaching deadline, functions added to chains have not unit tests for their own, although they're covered by spantree operations tests.
Original commit: a2701a0cdd
* Enable working alpha blending for ID pass via bit encoding of IDs in a RGB8 texture..
* Add facilities to change texture parameters.
Original commit: b46012e3fa
We don't want to set up releases right now, so the publishing is disabled.
I managed to do it with CLI option. In theory it should be done by configuration options - but those didn't work. So, for know I leave one what works.
Original commit: 9ad8a51dcb
Created a new SpanTree crate in IDE. The structure itself is quite straightforward. To generate span-tree from AST you may use method generate_tree from generator::SpanTreeGenerator trait.
Original commit: 194caafd09
* Add dummy scaffolding for port drawing capabilities to nodes.
* Add abstractions for trigonometric functions on types.
* Add Registry to handle port creation and layouting.
* Freeze `math::algebra` exports to prelude.
* Add zoom adjustments for port shapes.
* Allow setting of positions and add dummy ports.
Original commit: d24dd5e053
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
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
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
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
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
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
This contains an initial TextController implementation, which can read and store the file content, and is obtainable from ProjectController.
Original commit: 66f4dfd0fa
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
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
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
* 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
* 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
* 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
* 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
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
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
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
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