Commit Graph

327 Commits

Author SHA1 Message Date
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