Commit graph

5401 commits

Author SHA1 Message Date
Anthony Ramine
317d700f5d Remove most of the things in layout 2020
We keep mostly the query system. There is probably more to delete but
that's a good start I think.
2019-07-31 17:09:17 +02:00
Anthony Ramine
4846d76e82 Make layout_2020 be layout_2013 2019-07-31 17:09:16 +02:00
Alan Jeffrey
c757a9c009 Get XR sessions to track the draw texture, so we render the XR framebuffer rather than the default canvas framebuffer 2019-07-28 10:24:38 -04:00
Alan Jeffrey
133a17e15c Replace use of callbacks in webxr by channels 2019-07-26 23:36:13 -05:00
bors-servo
8ec28978cd
Auto merge of #23777 - jdm:webgl-main-thread, r=asajeffrey
Support running WebGL in its own thread or on the main thread.

This is the final missing piece to support WebGL in ANGLE on Windows. ANGLE doesn't support multiple GL contexts on separate threads using the same underlying Direct3d device, so we need to process all GL operations for WebGL on the same thread as the compositor. These changes try to retain enough flexibility to support both approaches so we can get WebGL working on Windows ASAP.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #23697
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23777)
<!-- Reviewable:end -->
2019-07-26 09:16:34 -04:00
Josh Matthews
39d13d1fc8 Support running WebGL in its own thread or on the main thread. 2019-07-25 23:05:03 -04:00
bors-servo
449881f566
Auto merge of #23852 - jdm:arm64-crashfix, r=asajeffrey
Update SpiderMonkey bindings for Windows arm64 crash fix

This allows the Windows ARM64 to load web pages without crashing.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because no Windows arm64 CI.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23852)
<!-- Reviewable:end -->
2019-07-25 22:56:11 -04:00
Josh Matthews
410d5bc772 Update SpiderMonkey bindings for Windows arm64 crash fix. 2019-07-25 20:23:21 -04:00
Alan Jeffrey
701256d837 Pass the event loop waker into WebXR 2019-07-25 12:55:26 -05:00
Emilio Cobos Álvarez
3d57c22e9c Update euclid.
There are a few canvas2d-related dependencies that haven't updated, but they
only use euclid internally so that's not blocking landing the rest of the
changes.

Given the size of this patch, I think it's useful to get this landed as-is.
2019-07-23 23:09:55 +02:00
bors-servo
7afe2153e8
Auto merge of #23814 - Manishearth:events, r=asajeffrey
Partial support for events in WebXR

Needs https://github.com/servo/webxr/pull/20

r? @asajeffrey

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23814)
<!-- Reviewable:end -->
2019-07-23 09:44:59 -04:00
bors-servo
28f7a87186
Auto merge of #23568 - jdm:more-updates, r=nox
Remove some duplicate dependencies

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23568)
<!-- Reviewable:end -->
2019-07-22 12:42:32 -04:00
Manish Goregaokar
59d879b17b Update webxr 2019-07-22 09:32:01 -07:00
Alan Jeffrey
aa0a72df0f Added framebuffer and related attributes to XRWebGLLayer 2019-07-18 14:24:50 -05:00
Josh Matthews
c5d76fdf51 Update raqote. 2019-07-18 09:25:58 -04:00
Josh Matthews
9182e0131b Update bindgen. 2019-07-18 09:25:58 -04:00
Josh Matthews
32ed2c7bf3 Update tokio-timer. 2019-07-18 09:25:57 -04:00
bors-servo
d9ea7ae178
Auto merge of #23784 - asajeffrey:webxr-glwindow-share-contexts, r=Manishearth
Get the glwindow test XR device to share a GL context with WebGL

<!-- Please describe your changes on the following line: -->

Get glutin windows able to open new windows which share GL textures. This is used by the webxr glwindow test device.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because it's plumbing

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23784)
<!-- Reviewable:end -->
2019-07-18 03:56:45 -04:00
bors-servo
91d12669e4
Auto merge of #23630 - Eijebong:dedupe-epoch, r=jdm
Update rayon to dedupe crossbeam-epoch

As a bonus this also removes one version of crossbeam-utils

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23630)
<!-- Reviewable:end -->
2019-07-17 20:01:07 -04:00
Alan Jeffrey
b19e7d1cbf Get the glwindow test XR device to share a GL context with WebGL 2019-07-17 09:49:49 -05:00
Simon Sapin
b6bd2d7302 Remove uses of mem::uninitialized 2019-07-17 10:48:54 +02:00
Simon Sapin
0677704953 Update cssparser
Pick up a behavior fix https://github.com/servo/rust-cssparser/pull/251
2019-07-17 10:47:58 +02:00
Josh Matthews
e53fc93e7f Update ANGLE to a version with working GLES loading. 2019-07-13 11:54:23 -04:00
Bastien Orivel
28fa0f8009 Update rayon to dedupe crossbeam-epoch
As a bonus this also removes one version of crossbeam-utils
2019-07-12 21:01:33 +02:00
Josh Matthews
dbaed5ed92 Make GL/GLES decisions based on the API in use. 2019-07-12 13:36:44 -04:00
bors-servo
812bf8d816
Auto merge of #23758 - jdm:compositing-canvas-break, r=gterzian
Remove canvas->compositing dependency

There's one tiny place in the canvas crate that depends on the compositing crate, and it's really quite backwards. If we use trait objects instead it becomes much cleaner to reason about.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because no tests for windows-only webgl code.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23758)
<!-- Reviewable:end -->
2019-07-12 10:26:55 -04:00
Josh Matthews
f02d594094 Remove canvas->compositing dependency. 2019-07-12 08:22:26 -04:00
bors-servo
df73c71fb1
Auto merge of #23516 - pcwalton:webrenderup, r=pcwalton,jdm
Upgrade WebRender

This is against an old Servo because I can't build current Servo due to compile errors in RNG crates. I verified that it starts up.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #23516
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23516)
<!-- Reviewable:end -->
2019-07-12 08:10:31 -04:00
Josh Matthews
4de93a145a Update dwrote. 2019-07-12 08:10:16 -04:00
Josh Matthews
6adf2cac87 Update webrender. 2019-07-12 08:10:16 -04:00
Kagami Sascha Rosylight
01151274f1 Require default dictionary value for optional dicts 2019-07-12 12:16:09 +09:00
bors-servo
5fdc7c0d2c
Auto merge of #23731 - Manishearth:webxr-script, r=asajeffrey
Use new WebXR API in script

Todo:
 - [x] Hook new `Frame` information into `XRFrame`
 - [x] Make spaces use new transform info
 - [x] Hook up session view metadata correctly
 - [x] Get mocking working again
 - [x] Get inputs working

Optional todos:
 - [x] Add support for active and animationFrame bool on XRFrame
 - [x] Correctly handle viewer and offset spaces instead of casting
 - [x] Error on zero-length quaternions

<s>Not really ready for review yet, but you can go ahead and review what I have so far. It doesn't do anything yet, aside from crash horribly. I'm opening this PR early so i have a place to track progress.</s>

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23731)
<!-- Reviewable:end -->
2019-07-11 18:31:21 -04:00
Manish Goregaokar
fb105d9ff2 Hook supportsSession() into new xr crate 2019-07-11 11:12:59 -07:00
Manish Goregaokar
b7eacebd10 Update webxr dependencies 2019-07-11 11:12:59 -07:00
Josh Matthews
1cec249b3d Update media crates for Windows fixes. 2019-07-10 14:19:41 -04:00
Josh Matthews
10ab466e5d Create a solid rectangle display list entry for the page background. 2019-07-09 10:51:56 -04:00
Patrick Walton
357fc03323 Update WebRender 2019-07-09 10:46:58 -04:00
Alan Jeffrey
8e535857c2 Register a glwindow test XR device 2019-07-06 08:42:48 -05:00
Alan Jeffrey
e9d410d0ab Support WebXR devices with main thread affinity 2019-07-05 14:02:49 -05:00
Fernando Jiménez Moreno
8e0160fa71 Update servo media to include global mute support 2019-07-05 11:01:19 +02:00
bors-servo
0dc17af7f0
Auto merge of #23483 - ceyusa:player-context, r=jdm
Media player rendering with GL textures

These patches pass the application's OpenGL raw context  and the its native display address to the media player, in order to create an internal wrapped context, thus it will generate video frames as textures.

For now only EGL from glutin-based app and android are in place, though tested only in Linux glutin app.

This PR also renders the generated frame textures by Servo/Media and renders them by using a thread that connects Webrenderer's ExternalImageHandler and each instantiated player. **By now, these patches, disable the WebGL rendering**. We need to provide a ExternalImageHandler demuxer.

This PR depends on https://github.com/servo/media/pull/270

- [X]  `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- This PR fixes #22300 and fixes #22920

In order to test it you must launch servo as

`./mach run -- --pref media.glvideo.enabled [...]`

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23483)
<!-- Reviewable:end -->
2019-07-04 23:28:28 -04:00
Simon Sapin
2b01c26aa5 Add ./mach build --with-layout-2020
… with corresponding `layout` and `layout_thread` crates,
which for now do nothing.
2019-07-04 18:16:44 +02:00
Fernando Jiménez Moreno
208473cdbc Final tweaks: use expect and remove unnecessary crate attributes 2019-07-04 10:43:32 +02:00
Fernando Jiménez Moreno
ba9cf85fb3 Webrender external image handler demux 2019-07-04 10:26:47 +02:00
Fernando Jiménez Moreno
7d589ed4f5 Media crate 2019-07-04 10:25:49 +02:00
Fernando Jiménez Moreno
08d812ec0e Implement WindowMethods for Android 2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
9f4f9dc750 Add media (WindowGLContext) module in canvas_trait
This module adds a structure (WindowGLContext) which holds the
OpenGL parameters that are going to be used by servo-media player
to render video frames using OpenGL.

In order to fill this structure, three new methods were added to
WindowMethods trait. In this patch only the Glutin-based
implementation provides a simple boilerplate.

The WindowGLContext is created in the entry point of libservo, when
the application window is created, and later passed to the
constellation, the pipeline and to the window element in dom, thus
htmlmediaelement has a mean to obtain these parameters via its
window.
2019-07-04 10:24:01 +02:00
bors-servo
b32bff3b97
Auto merge of #23696 - servo:hl, r=jdm
Add UWP port - bis

This is #23658 with some fixes:
- removed nspr from DLL dependencies (was breaking VS build)
- exclude symbols from header file (was breaking VS build)
- rebased

Before merging:
- please check the rebased commit that introduces the `--uwp` option (things moved around since 7c85dc09b5)
- should we wait until the WR fix lands upstream?

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23696)
<!-- Reviewable:end -->
2019-07-04 01:03:35 -04:00
Josh Matthews
f2e0870e60 Fix EGL linking. 2019-07-03 21:35:43 +02:00
Josh Matthews
5beac079f6 Use fixed webrender. 2019-07-03 21:35:40 +02:00