Commit Graph

120 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
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