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 IDE code
* updated readme, removed ide dir
* typo
* Update README.md
Co-Authored-By: Ara Adkins <iamrecursion@users.noreply.github.com>
* flatten common/scala to scala
Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
* 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
This PR adds `json-rpc` crate — a library facilitating writing clients using JSON-RPC 2.0 protocol.
This library is meant to be used in implementation of File Manager and, in future, of Language Server clients.
The library is agnostic about `Transport` — but the interface has been designed in compliance with web-sys websockets, as this will be primary platform.
The RPC clients implemented on top of this library are expected to provide Future-based asynchronous API.
Client is designed to work in a single-thread environment,
Implements #426.
* 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