| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These two traits both exposed different parts of the compositing API,
but now that the compositor doesn't depend directly on `script` any
longer and the `script_traits` crate has been split into the
`constellation_traits` crate, this can be finally be cleaned up without
causing circular dependencies. In addition, some unit tests for the
`IOPCompositor`'s scroll node tree are also moved into
`compositing_traits` as well.
Testing: This just combines two crates, so no new tests are necessary.
Fixes: #35984.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use 2024 style edition
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Reformat all code
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
|
|
|
|
|
|
|
|
|
|
|
| |
The `OffscreenRenderingContext` does not need to be double-buffered.
Instead, when resizing the framebuffer, create a new one and blit the
old contents onto the new surface. This allows immediately displaying
the contents without having to render paint the WebRender scene one more
time. In addition to speeding up the rendering pipeline, the goal here
is to reduce flickering during resizes (though there is more work to
do).
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first step toward removing `WindowMethods`, which will
gradually be integrated into the `WebView` and `WebViewDelegate`. Sizing
of the `WebView` is now handled by the a size associated with a
`RenderingContext`. `WebView`s will eventually just paint the entire
size of their `RenderingContext`. Notes:
- This is transitionary step so now there is a `WebView::resize` and a
`WebView::move_resize`. The first is the future which will resize the
`WebView` and its associated `RenderingContext`. The second is a
function that the virtual `WebView`s that will soon be replaced by a
the one-`WebView` per `WebView` model.
- We do not need to call `WebView::move_resize` at as much any longer
because the default size of the `WebView` is to take up the whole
`RenderingContext`.
- `SurfmanRenderingContext` is no longer exposed in the API, as a
surfman context doesn't naturally have a size unless a surface is
bound to it.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
simplify it (#35553)
This moves the GL accelerated media setup out of `RenderingContext`
which prevents making libservo dependo on the Wayland and X11 versions
of surfman explicitly. This support is experimental and (honestly) a bit
broken. I've confirmed that this works as well as it did before the
change.
The main thing here is that the configuration, which currently needs
surfman types, moves to servoshell. In addition:
1. Instead of passing the information to the Constellation, the setup is
stored statically. This is necessary to avoid introducing a
dependency on `media` in `webrender_traits`. It's quite likely that
`media` types should move to the internal embedding API to avoid
this. This is preserved for a followup change.
2. The whole system of wrapping the media channels in an abstract type
is removed. They could be either mpsc channels or IPC channels. This
was never going to work because mpsc channels cannot be serialized
and deserialized with serde. Instead this just uses IPC channels. We
also have other ways of doing this kind of abstraction in Servo so we
do not need another. The `mpsc` version was hard-coded to be
disabled.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#35501)
Expose two easy-to-use wrappers around `SurfmanRenderingContext` that
make the API simpler to use:
- `WindowRenderingContext`: This `RenderingContext` is a newtype around
`SurfmanRenderingContext` takes a `raw-window-handle` display and window
and creates a full window rendering context.
- `SoftwareRenderingContext`: is wraps `SurfmanRenderingContext` and
adds a swap chain in order to expose a software GL rendering context.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#35465)
Create a new `RenderingContext` which is used to render to a
`SurfmanRenderingContext`-related offscreen buffer. This allows having a
temporary place to render Servo and then blitting the results to a
subsection of the parent `RenderingContext`.
The goal with this change is to remove the details of how servoshell
renders from the `Compositor` and prepare for the compositor-per-WebView
world.
Co-authred-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Reapply "Use surfman with glow bindings (#34328)" (#35402)
This reverts commit 0fed99590a9377d8be071e457ecb1b3284f9ef27.
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* update surfman
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
|
|
|
|
|
| |
This reverts commit 503bb10c5b1fafe01ebfb6b320902be2e8671c69.
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Bring back connection method to fix texture error
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Print GL info in log instead
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
---------
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a few methods are still difficult to implement without
the help of surfman. To simplify the trait methods, all methods that
return surfman types are removed. They are either handled by
embedders themselves or abstract to simpler types that servo
components need. The most noticeable changes are:
- Methods related to native surface are moved to servo_glue. The
embedder should decide when to remove/replace the surface and it's
outside of servo's scope.
- Methods required by servo media now return exact media types for it.
The other major change is sevevral difficult trait methods that are
reuiqred by WebGL and Servo media have default implementation. So they
can be optional for users to implement.
Signed-off-by: Wu Wayne <yuweiwu@pm.me>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use glowing surfman
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Port https://github.com/servo/webxr/pull/255
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixups rebase
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fmt
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update surfman
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix stale TODO
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* feat: turn RenderingContext into a trait
Signed-off-by: DK Liao <dklassic@gmail.com>
Add comment and handle drop error
Signed-off-by: DK Liao <dklassic@gmail.com>
Add doc comment
Signed-off-by: DK Liao <dklassic@gmail.com>
Allow make_current to propagate Error
Signed-off-by: DK Liao <dklassic@gmail.com>
Fix all make_current occurances
Signed-off-by: DK Liao <dklassic@gmail.com>
Move back to Rc<dyn RenderingContext>
Signed-off-by: DK Liao <dklassic@gmail.com>
fix android/ohos
Signed-off-by: DK Liao <dklassic@gmail.com>
Fix build
Signed-off-by: DK Liao <dklassic@gmail.com>
fix android/ohos again
Signed-off-by: DK Liao <dklassic@gmail.com>
* Fix macOS smoke test
Signed-off-by: DK Liao <dklassic@gmail.com>
* Add comment for create_texture and destroy_texture
Signed-off-by: DK Liao <dklassic@gmail.com>
* Improve comments written
Signed-off-by: DK Liao <dklassic@gmail.com>
---------
Signed-off-by: DK Liao <dklassic@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Create Servo without initial webview ID
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Add rendering context in App struct
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Make webview manager optional
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Move window creation to init
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Create window from external rendering context
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Resize surface in compositor
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Obey clippy
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Update Android and OHOS
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Add missing arguent on OHOS
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Show webview after focused on Android and OH
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Remove rendering_context in ServoWindowCallbacks
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
* Create surface before swapchain in headless mode
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
---------
Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* replace u64::max_value() with u64::MAX
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* removed redundant import
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* Fixed dereference
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* Fixed a probable bug
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* fixed imports
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* fixed dereference
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* dereference formatting
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* removed unnessicary number imports
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* removed unnessicary number imports
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* removed excess borrow
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* ran mach fmt
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* fixed doc comment
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* removed deref on an immutable reference
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* fixed minor syntax error
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* reverted clamping
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* formatting
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
* reverted final clamp
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
---------
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Co-authored-by: Ashwin Naren <ashwin@pixelators.org>
|
|
|
| |
Signed-off-by: Wu Wayne <yuweiwu@pm.me>
|
|
|
| |
Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
|
|
The `gfx_traits` crate is gradually become just about text and fonts and
this is one of the few things there that is standing in the way of this.
Eventually `webrender_traits` will be the general cross-process
compositor API, so this sort of makes sense as well.
|