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 -->
39
.gitignore
vendored
|
@ -44,3 +44,42 @@ capture_webrender/
|
||||||
|
|
||||||
/unminified-js
|
/unminified-js
|
||||||
|
|
||||||
|
# Hololens artifacts
|
||||||
|
|
||||||
|
support/hololens/x64/
|
||||||
|
support/hololens/ARM/
|
||||||
|
support/hololens/Generated\ Files
|
||||||
|
|
||||||
|
# Ignore thumbnails created by Windows
|
||||||
|
support/hololens/Thumbs.db
|
||||||
|
|
||||||
|
# Ignore files built by Visual Studio
|
||||||
|
support/hololens/*.obj
|
||||||
|
support/hololens/*.exe
|
||||||
|
support/hololens/*.pdb
|
||||||
|
support/hololens/*.user
|
||||||
|
support/hololens/*.aps
|
||||||
|
support/hololens/*.pch
|
||||||
|
support/hololens/*.vspscc
|
||||||
|
support/hololens/*_i.c
|
||||||
|
support/hololens/*_p.c
|
||||||
|
support/hololens/*.ncb
|
||||||
|
support/hololens/*.suo
|
||||||
|
support/hololens/*.tlb
|
||||||
|
support/hololens/*.tlh
|
||||||
|
support/hololens/*.bak
|
||||||
|
support/hololens/*.cache
|
||||||
|
support/hololens/*.ilk
|
||||||
|
support/hololens/*.log
|
||||||
|
support/hololens/[Bb]in
|
||||||
|
support/hololens/[Dd]ebug*/
|
||||||
|
support/hololens/*.lib
|
||||||
|
support/hololens/*.sbr
|
||||||
|
support/hololens/obj/
|
||||||
|
support/hololens/[Rr]elease*/
|
||||||
|
support/hololens/_ReSharper*/
|
||||||
|
support/hololens/[Tt]est[Rr]esult*
|
||||||
|
support/hololens/.vs/
|
||||||
|
|
||||||
|
# Nuget packages folder
|
||||||
|
support/hololens/packages/
|
||||||
|
|
76
Cargo.lock
generated
|
@ -403,13 +403,13 @@ dependencies = [
|
||||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"offscreen_gl_context 0.22.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"offscreen_gl_context 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pixels 0.0.1",
|
"pixels 0.0.1",
|
||||||
"raqote 0.4.1-alpha.0 (git+https://github.com/jrmuizel/raqote)",
|
"raqote 0.4.1-alpha.0 (git+https://github.com/jrmuizel/raqote)",
|
||||||
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo_config 0.0.1",
|
"servo_config 0.0.1",
|
||||||
"webrender 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -428,7 +428,7 @@ dependencies = [
|
||||||
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo_config 0.0.1",
|
"servo_config 0.0.1",
|
||||||
"typetag 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"typetag 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||||
]
|
]
|
||||||
|
@ -615,8 +615,8 @@ dependencies = [
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webvr 0.0.1",
|
"webvr 0.0.1",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||||
|
@ -659,7 +659,7 @@ dependencies = [
|
||||||
"servo_remutex 0.0.1",
|
"servo_remutex 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||||
]
|
]
|
||||||
|
@ -1119,7 +1119,7 @@ dependencies = [
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1461,7 +1461,7 @@ dependencies = [
|
||||||
"ucd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ucd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-script 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-script 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"xml5ever 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xml5ever 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -2355,7 +2355,7 @@ dependencies = [
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-script 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-script 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2402,7 +2402,7 @@ dependencies = [
|
||||||
"style 0.0.1",
|
"style 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2420,7 +2420,7 @@ dependencies = [
|
||||||
"script_traits 0.0.1",
|
"script_traits 0.0.1",
|
||||||
"servo_geometry 0.0.1",
|
"servo_geometry 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2534,8 +2534,8 @@ dependencies = [
|
||||||
"style 0.0.1",
|
"style 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webdriver_server 0.0.1",
|
"webdriver_server 0.0.1",
|
||||||
"webrender 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webvr 0.0.1",
|
"webvr 0.0.1",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||||
|
@ -2665,7 +2665,7 @@ dependencies = [
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"xml5ever 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xml5ever 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2765,7 +2765,7 @@ dependencies = [
|
||||||
"profile_traits 0.0.1",
|
"profile_traits 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2918,7 +2918,7 @@ dependencies = [
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"size_of_test 0.0.1",
|
"size_of_test 0.0.1",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2975,7 +2975,7 @@ dependencies = [
|
||||||
"tokio-timer 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio-timer 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -3018,7 +3018,7 @@ dependencies = [
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -3144,7 +3144,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "offscreen_gl_context"
|
name = "offscreen_gl_context"
|
||||||
version = "0.22.2"
|
version = "0.22.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3846,7 +3846,7 @@ dependencies = [
|
||||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"utf-8 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"utf-8 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||||
"xml5ever 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xml5ever 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3880,7 +3880,7 @@ dependencies = [
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style 0.0.1",
|
"style 0.0.1",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -3937,7 +3937,7 @@ dependencies = [
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||||
]
|
]
|
||||||
|
@ -4291,7 +4291,7 @@ dependencies = [
|
||||||
"malloc_size_of 0.0.1",
|
"malloc_size_of 0.0.1",
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -4656,7 +4656,7 @@ dependencies = [
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"to_shmem 0.0.1",
|
"to_shmem 0.0.1",
|
||||||
"to_shmem_derive 0.0.1",
|
"to_shmem_derive 0.0.1",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -5309,7 +5309,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webrender"
|
name = "webrender"
|
||||||
version = "0.60.0"
|
version = "0.60.0"
|
||||||
source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f"
|
source = "git+https://github.com/jdm/webrender?branch=servo-hl#005b785bfa91cff265077b4b9c4dafea8768b526"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5340,16 +5340,16 @@ dependencies = [
|
||||||
"smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"thread_profiler 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"thread_profiler 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"webrender_build 0.0.1 (git+https://github.com/servo/webrender)",
|
"webrender_build 0.0.1 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"wr_malloc_size_of 0.0.1 (git+https://github.com/servo/webrender)",
|
"wr_malloc_size_of 0.0.1 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
"ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webrender_api"
|
name = "webrender_api"
|
||||||
version = "0.60.0"
|
version = "0.60.0"
|
||||||
source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f"
|
source = "git+https://github.com/jdm/webrender?branch=servo-hl#005b785bfa91cff265077b4b9c4dafea8768b526"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5365,13 +5365,13 @@ dependencies = [
|
||||||
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"wr_malloc_size_of 0.0.1 (git+https://github.com/servo/webrender)",
|
"wr_malloc_size_of 0.0.1 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webrender_build"
|
name = "webrender_build"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f"
|
source = "git+https://github.com/jdm/webrender?branch=servo-hl#005b785bfa91cff265077b4b9c4dafea8768b526"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -5514,7 +5514,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wr_malloc_size_of"
|
name = "wr_malloc_size_of"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f"
|
source = "git+https://github.com/jdm/webrender?branch=servo-hl#005b785bfa91cff265077b4b9c4dafea8768b526"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5895,7 +5895,7 @@ dependencies = [
|
||||||
"checksum objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "31d20fd2b37e07cf5125be68357b588672e8cefe9a96f8c17a9d46053b3e590d"
|
"checksum objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "31d20fd2b37e07cf5125be68357b588672e8cefe9a96f8c17a9d46053b3e590d"
|
||||||
"checksum objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
|
"checksum objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
|
||||||
"checksum objc_id 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e4730aa1c64d722db45f7ccc4113a3e2c465d018de6db4d3e7dfe031e8c8a297"
|
"checksum objc_id 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e4730aa1c64d722db45f7ccc4113a3e2c465d018de6db4d3e7dfe031e8c8a297"
|
||||||
"checksum offscreen_gl_context 0.22.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ac6904d3015b214944273ac55f9619a3c2884ce21108007fc6595db2b537886f"
|
"checksum offscreen_gl_context 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)" = "070391b55c4d07b1550f1f2b6464e07ac6a1f9962c71b5097baa5882d644a693"
|
||||||
"checksum opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682"
|
"checksum opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682"
|
||||||
"checksum openssl 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6c24d3508b4fb6da175c10baac54c578b33f09c89ae90c6fe9788b3b4768efdc"
|
"checksum openssl 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6c24d3508b4fb6da175c10baac54c578b33f09c89ae90c6fe9788b3b4768efdc"
|
||||||
"checksum openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)" = "912f301a749394e1025d9dcddef6106ddee9252620e6d0a0e5f8d0681de9b129"
|
"checksum openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)" = "912f301a749394e1025d9dcddef6106ddee9252620e6d0a0e5f8d0681de9b129"
|
||||||
|
@ -6066,9 +6066,9 @@ dependencies = [
|
||||||
"checksum wayland-scanner 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f1927ee62e4e149c010dc9eca8ca47e238416cd6f45f688eb9f8a8e9c3794c30"
|
"checksum wayland-scanner 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f1927ee62e4e149c010dc9eca8ca47e238416cd6f45f688eb9f8a8e9c3794c30"
|
||||||
"checksum wayland-sys 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ca41ed78a12256f81df6f53fcbe4503213ba442e02cdad3c9c888a64a668eaf4"
|
"checksum wayland-sys 0.21.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ca41ed78a12256f81df6f53fcbe4503213ba442e02cdad3c9c888a64a668eaf4"
|
||||||
"checksum webdriver 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0533b0b0a05e2e5c081317759a038482806c6085c9605dded03c8bbd2498b042"
|
"checksum webdriver 0.39.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0533b0b0a05e2e5c081317759a038482806c6085c9605dded03c8bbd2498b042"
|
||||||
"checksum webrender 0.60.0 (git+https://github.com/servo/webrender)" = "<none>"
|
"checksum webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)" = "<none>"
|
||||||
"checksum webrender_api 0.60.0 (git+https://github.com/servo/webrender)" = "<none>"
|
"checksum webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)" = "<none>"
|
||||||
"checksum webrender_build 0.0.1 (git+https://github.com/servo/webrender)" = "<none>"
|
"checksum webrender_build 0.0.1 (git+https://github.com/jdm/webrender?branch=servo-hl)" = "<none>"
|
||||||
"checksum webxr 0.0.1 (git+https://github.com/servo/webxr)" = "<none>"
|
"checksum webxr 0.0.1 (git+https://github.com/servo/webxr)" = "<none>"
|
||||||
"checksum webxr-api 0.0.1 (git+https://github.com/servo/webxr)" = "<none>"
|
"checksum webxr-api 0.0.1 (git+https://github.com/servo/webxr)" = "<none>"
|
||||||
"checksum weedle 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc44aa200daee8b1f3a004beaf16554369746f1b4486f0cf93b0caf8a3c2d1e"
|
"checksum weedle 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bcc44aa200daee8b1f3a004beaf16554369746f1b4486f0cf93b0caf8a3c2d1e"
|
||||||
|
@ -6080,7 +6080,7 @@ dependencies = [
|
||||||
"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
|
"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
|
||||||
"checksum winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d233301129ddd33260b47f76900b50e154b7254546e2edba0e5468a1a5fe4de3"
|
"checksum winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d233301129ddd33260b47f76900b50e154b7254546e2edba0e5468a1a5fe4de3"
|
||||||
"checksum winres 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "27d9192d6356d7efe8405dec6c5506b67543cf64b6049968f39f4c4623b4f25d"
|
"checksum winres 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "27d9192d6356d7efe8405dec6c5506b67543cf64b6049968f39f4c4623b4f25d"
|
||||||
"checksum wr_malloc_size_of 0.0.1 (git+https://github.com/servo/webrender)" = "<none>"
|
"checksum wr_malloc_size_of 0.0.1 (git+https://github.com/jdm/webrender?branch=servo-hl)" = "<none>"
|
||||||
"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3"
|
"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3"
|
||||||
"checksum ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ec91ea61b83ce033c43c06c52ddc7532f465c0153281610d44c58b74083aee1a"
|
"checksum ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ec91ea61b83ce033c43c06c52ddc7532f465c0153281610d44c58b74083aee1a"
|
||||||
"checksum x11 2.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e5c4ac579b5d324dc4add02312b5d0e3e0218521e2d5779d526ac39ee4bb171"
|
"checksum x11 2.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e5c4ac579b5d324dc4add02312b5d0e3e0218521e2d5779d526ac39ee4bb171"
|
||||||
|
|
|
@ -29,3 +29,7 @@ opt-level = 3
|
||||||
mio = { git = "https://github.com/servo/mio.git", branch = "servo" }
|
mio = { git = "https://github.com/servo/mio.git", branch = "servo" }
|
||||||
iovec = { git = "https://github.com/servo/iovec.git", branch = "servo" }
|
iovec = { git = "https://github.com/servo/iovec.git", branch = "servo" }
|
||||||
cmake = { git = "https://github.com/alexcrichton/cmake-rs" }
|
cmake = { git = "https://github.com/alexcrichton/cmake-rs" }
|
||||||
|
|
||||||
|
[patch."https://github.com/servo/webrender"]
|
||||||
|
webrender = { git = "https://github.com/jdm/webrender", branch = "servo-hl" }
|
||||||
|
webrender_api = { git = "https://github.com/jdm/webrender", branch = "servo-hl" }
|
||||||
|
|
|
@ -15,6 +15,7 @@ crate-type = ["rlib"]
|
||||||
canvas2d-azure = ["canvas/canvas2d-azure"]
|
canvas2d-azure = ["canvas/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["canvas/canvas2d-raqote"]
|
canvas2d-raqote = ["canvas/canvas2d-raqote"]
|
||||||
debugmozjs = ["script/debugmozjs"]
|
debugmozjs = ["script/debugmozjs"]
|
||||||
|
egl = ["mozangle/egl"]
|
||||||
energy-profiling = ["profile_traits/energy-profiling"]
|
energy-profiling = ["profile_traits/energy-profiling"]
|
||||||
profilemozjs = ["script/profilemozjs"]
|
profilemozjs = ["script/profilemozjs"]
|
||||||
googlevr = ["webvr/googlevr"]
|
googlevr = ["webvr/googlevr"]
|
||||||
|
@ -85,4 +86,4 @@ git = "https://github.com/servo/media"
|
||||||
git = "https://github.com/servo/media"
|
git = "https://github.com/servo/media"
|
||||||
|
|
||||||
[target.'cfg(target_os = "windows")'.dependencies]
|
[target.'cfg(target_os = "windows")'.dependencies]
|
||||||
mozangle = { version = "0.2", features = ["egl"] }
|
mozangle = {version = "0.2"}
|
||||||
|
|
20
docs/hololens.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
## Servo on Hololens.
|
||||||
|
|
||||||
|
How to compile and run:
|
||||||
|
|
||||||
|
With Visual Studio **2019**:
|
||||||
|
- Open `support/hololens/ServoApp.sln`
|
||||||
|
- click on *restore nugets packages* under the context menu of "Solution" (in the right panel). This will automatically download Angle which comes with libEGL.dll, necessary to build servo.
|
||||||
|
|
||||||
|
In your Visual Studio **2017** cmd prompt:
|
||||||
|
- make sure libEGL.dll is in your `%LIB%` path: `set LIB=%LIB%;c:\XXX\servo\support\hololens\packages\ANGLE.WindowsStore.2.1.13\bin\UAP\x64\`
|
||||||
|
- compile servo: `mach build -d --uwp`
|
||||||
|
|
||||||
|
With Visual Studio **2019**:
|
||||||
|
- Select emulator or local machine, select configuration (Debug or Release) and press run
|
||||||
|
- VS will look for the DLLs and .h in `../../target/debug|release/` (depending on the configuration you selected in VS) and copy them in the final package.
|
||||||
|
|
||||||
|
For now, it's not possible to interact with the web page.
|
||||||
|
|
||||||
|
Note: to build the project with MSBuild:
|
||||||
|
- `MSBuild ServoApp.sln /p:Configuration=Debug /p:Platform=x64`
|
|
@ -30,6 +30,7 @@ ProductName = "Servo"
|
||||||
canvas2d-azure = ["libservo/canvas2d-azure"]
|
canvas2d-azure = ["libservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
|
egl = ["libservo/egl"]
|
||||||
energy-profiling = ["libservo/energy-profiling"]
|
energy-profiling = ["libservo/energy-profiling"]
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
js_backtrace = ["libservo/js_backtrace"]
|
js_backtrace = ["libservo/js_backtrace"]
|
||||||
|
|
|
@ -15,6 +15,7 @@ bench = false
|
||||||
[features]
|
[features]
|
||||||
canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||||
|
egl = ["simpleservo/egl"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
||||||
|
|
|
@ -30,6 +30,7 @@ canvas2d-azure = ["libservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
canvas2d-raqote = ["libservo/canvas2d-raqote"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
|
egl = ["libservo/egl"]
|
||||||
energy-profiling = ["libservo/energy-profiling"]
|
energy-profiling = ["libservo/energy-profiling"]
|
||||||
googlevr = ["libservo/googlevr"]
|
googlevr = ["libservo/googlevr"]
|
||||||
js_backtrace = ["libservo/js_backtrace"]
|
js_backtrace = ["libservo/js_backtrace"]
|
||||||
|
|
|
@ -15,16 +15,19 @@ fn main() {
|
||||||
// For now, we only support EGL, and only on Windows and Android.
|
// For now, we only support EGL, and only on Windows and Android.
|
||||||
if target.contains("android") || target.contains("windows") {
|
if target.contains("android") || target.contains("windows") {
|
||||||
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
|
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
|
||||||
if target.contains("android") {
|
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [])
|
||||||
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [])
|
.write_bindings(gl_generator::StaticStructGenerator, &mut file)
|
||||||
.write_bindings(gl_generator::StaticStructGenerator, &mut file)
|
.unwrap();
|
||||||
.unwrap();
|
|
||||||
}
|
// Historically, Android builds have succeeded with rust-link-lib=EGL.
|
||||||
|
// On Windows when relying on %LIBS% to contain libEGL.lib, however,
|
||||||
|
// we must explicitly use rustc-link-lib=libEGL or rustc will attempt
|
||||||
|
// to link EGL.lib instead.
|
||||||
if target.contains("windows") {
|
if target.contains("windows") {
|
||||||
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [])
|
println!("cargo:rustc-link-lib=libEGL");
|
||||||
.write_bindings(gl_generator::StructGenerator, &mut file)
|
} else {
|
||||||
.unwrap();
|
println!("cargo:rust-link-lib=EGL");
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.contains("linux") ||
|
if target.contains("linux") ||
|
||||||
|
|
|
@ -11,20 +11,9 @@ pub type ServoGl = std::rc::Rc<dyn servo::gl::Gl>;
|
||||||
pub mod egl {
|
pub mod egl {
|
||||||
use servo::gl::GlesFns;
|
use servo::gl::GlesFns;
|
||||||
use std::ffi::CString;
|
use std::ffi::CString;
|
||||||
#[cfg(not(target_os = "windows"))]
|
|
||||||
use std::os::raw::c_void;
|
use std::os::raw::c_void;
|
||||||
#[cfg(target_os = "windows")]
|
|
||||||
use winapi::um::libloaderapi::{GetProcAddress, LoadLibraryA};
|
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
|
||||||
pub type EGLNativeWindowType = winapi::shared::windef::HWND;
|
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
pub type EGLNativeWindowType = *const libc::c_void;
|
pub type EGLNativeWindowType = *const libc::c_void;
|
||||||
#[cfg(target_os = "android")]
|
|
||||||
pub type EGLNativeWindowType = *const libc::c_void;
|
|
||||||
#[cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "openbsd"))]
|
|
||||||
pub type EGLNativeWindowType = *const libc::c_void;
|
|
||||||
|
|
||||||
pub type khronos_utime_nanoseconds_t = khronos_uint64_t;
|
pub type khronos_utime_nanoseconds_t = khronos_uint64_t;
|
||||||
pub type khronos_uint64_t = libc::uint64_t;
|
pub type khronos_uint64_t = libc::uint64_t;
|
||||||
pub type khronos_ssize_t = libc::c_long;
|
pub type khronos_ssize_t = libc::c_long;
|
||||||
|
@ -37,7 +26,6 @@ pub mod egl {
|
||||||
|
|
||||||
include!(concat!(env!("OUT_DIR"), "/egl_bindings.rs"));
|
include!(concat!(env!("OUT_DIR"), "/egl_bindings.rs"));
|
||||||
|
|
||||||
#[cfg(target_os = "android")]
|
|
||||||
pub fn init() -> Result<crate::gl_glue::ServoGl, &'static str> {
|
pub fn init() -> Result<crate::gl_glue::ServoGl, &'static str> {
|
||||||
info!("Loading EGL...");
|
info!("Loading EGL...");
|
||||||
unsafe {
|
unsafe {
|
||||||
|
@ -54,27 +42,6 @@ pub mod egl {
|
||||||
Ok(egl)
|
Ok(egl)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
|
||||||
pub fn init() -> Result<crate::gl_glue::ServoGl, &'static str> {
|
|
||||||
info!("Loading EGL...");
|
|
||||||
|
|
||||||
let dll = b"libEGL.dll\0" as &[u8];
|
|
||||||
let dll = unsafe { LoadLibraryA(dll.as_ptr() as *const _) };
|
|
||||||
if dll.is_null() {
|
|
||||||
Err("Can't find libEGL.dll")
|
|
||||||
} else {
|
|
||||||
unsafe {
|
|
||||||
let egl = GlesFns::load_with(|addr| {
|
|
||||||
let addr = CString::new(addr.as_bytes()).unwrap();
|
|
||||||
let addr = addr.as_ptr();
|
|
||||||
GetProcAddress(dll, addr) as *const _
|
|
||||||
});
|
|
||||||
info!("EGL loaded");
|
|
||||||
Ok(egl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
|
|
|
@ -25,6 +25,7 @@ canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||||
debugmozjs = ["simpleservo/debugmozjs"]
|
debugmozjs = ["simpleservo/debugmozjs"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
|
egl = ["simpleservo/egl"]
|
||||||
energy-profiling = ["simpleservo/energy-profiling"]
|
energy-profiling = ["simpleservo/energy-profiling"]
|
||||||
googlevr = ["simpleservo/googlevr"]
|
googlevr = ["simpleservo/googlevr"]
|
||||||
js_backtrace = ["simpleservo/js_backtrace"]
|
js_backtrace = ["simpleservo/js_backtrace"]
|
||||||
|
|
|
@ -12,6 +12,7 @@ fn main() {
|
||||||
cbindgen::Builder::new()
|
cbindgen::Builder::new()
|
||||||
.with_crate(crate_dir)
|
.with_crate(crate_dir)
|
||||||
.with_language(cbindgen::Language::C)
|
.with_language(cbindgen::Language::C)
|
||||||
|
.exclude_item("OutputDebugStringA")
|
||||||
.generate()
|
.generate()
|
||||||
.expect("Unable to generate bindings")
|
.expect("Unable to generate bindings")
|
||||||
.write_to_file(dest);
|
.write_to_file(dest);
|
||||||
|
|
|
@ -5,6 +5,10 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
|
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
mod vslogger;
|
||||||
|
|
||||||
|
#[cfg(not(target_os = "windows"))]
|
||||||
use env_logger;
|
use env_logger;
|
||||||
use simpleservo::{self, gl_glue, ServoGlue, SERVO};
|
use simpleservo::{self, gl_glue, ServoGlue, SERVO};
|
||||||
use simpleservo::{Coordinates, EventLoopWaker, HostTrait, InitOptions, VRInitOptions};
|
use simpleservo::{Coordinates, EventLoopWaker, HostTrait, InitOptions, VRInitOptions};
|
||||||
|
@ -69,13 +73,33 @@ pub extern "C" fn servo_version() -> *const c_char {
|
||||||
ptr
|
ptr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "windows")]
|
||||||
|
fn init_logger() {
|
||||||
|
use log::LevelFilter;
|
||||||
|
use std::sync::Once;
|
||||||
|
use vslogger::VSLogger;
|
||||||
|
|
||||||
|
static LOGGER: VSLogger = VSLogger;
|
||||||
|
static LOGGER_INIT: Once = Once::new();
|
||||||
|
LOGGER_INIT.call_once(|| {
|
||||||
|
log::set_logger(&LOGGER)
|
||||||
|
.map(|_| log::set_max_level(LevelFilter::Debug))
|
||||||
|
.unwrap();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(target_os = "windows"))]
|
||||||
|
fn init_logger() {
|
||||||
|
crate::env_logger::init();
|
||||||
|
}
|
||||||
|
|
||||||
fn init(
|
fn init(
|
||||||
opts: CInitOptions,
|
opts: CInitOptions,
|
||||||
gl: gl_glue::ServoGl,
|
gl: gl_glue::ServoGl,
|
||||||
wakeup: extern "C" fn(),
|
wakeup: extern "C" fn(),
|
||||||
callbacks: CHostCallbacks,
|
callbacks: CHostCallbacks,
|
||||||
) {
|
) {
|
||||||
crate::env_logger::init();
|
init_logger();
|
||||||
|
|
||||||
let args = if !opts.args.is_null() {
|
let args = if !opts.args.is_null() {
|
||||||
let args = unsafe { CStr::from_ptr(opts.args) };
|
let args = unsafe { CStr::from_ptr(opts.args) };
|
||||||
|
@ -119,6 +143,7 @@ pub extern "C" fn init_with_egl(
|
||||||
wakeup: extern "C" fn(),
|
wakeup: extern "C" fn(),
|
||||||
callbacks: CHostCallbacks,
|
callbacks: CHostCallbacks,
|
||||||
) {
|
) {
|
||||||
|
init_logger();
|
||||||
let gl = gl_glue::egl::init().unwrap();
|
let gl = gl_glue::egl::init().unwrap();
|
||||||
init(opts, gl, wakeup, callbacks)
|
init(opts, gl, wakeup, callbacks)
|
||||||
}
|
}
|
||||||
|
@ -130,6 +155,7 @@ pub extern "C" fn init_with_gl(
|
||||||
wakeup: extern "C" fn(),
|
wakeup: extern "C" fn(),
|
||||||
callbacks: CHostCallbacks,
|
callbacks: CHostCallbacks,
|
||||||
) {
|
) {
|
||||||
|
init_logger();
|
||||||
let gl = gl_glue::gl::init().unwrap();
|
let gl = gl_glue::gl::init().unwrap();
|
||||||
init(opts, gl, wakeup, callbacks)
|
init(opts, gl, wakeup, callbacks)
|
||||||
}
|
}
|
||||||
|
|
28
ports/libsimpleservo/capi/src/vslogger.rs
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use log::{self, Level, Metadata, Record};
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
fn OutputDebugStringA(s: *const u8);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct VSLogger;
|
||||||
|
|
||||||
|
impl log::Log for VSLogger {
|
||||||
|
fn enabled(&self, metadata: &Metadata) -> bool {
|
||||||
|
metadata.level() <= Level::Warn
|
||||||
|
}
|
||||||
|
|
||||||
|
fn log(&self, record: &Record) {
|
||||||
|
if self.enabled(record.metadata()) {
|
||||||
|
let log = format!("RUST: {} - {}\r\n\0", record.level(), record.args());
|
||||||
|
unsafe {
|
||||||
|
OutputDebugStringA(log.as_ptr());
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn flush(&self) {}
|
||||||
|
}
|
|
@ -30,6 +30,7 @@ canvas2d-azure = ["simpleservo/canvas2d-azure"]
|
||||||
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
canvas2d-raqote = ["simpleservo/canvas2d-raqote"]
|
||||||
debugmozjs = ["simpleservo/debugmozjs"]
|
debugmozjs = ["simpleservo/debugmozjs"]
|
||||||
default = ["webdriver", "max_log_level"]
|
default = ["webdriver", "max_log_level"]
|
||||||
|
egl = ["simpleservo/egl"]
|
||||||
energy-profiling = ["simpleservo/energy-profiling"]
|
energy-profiling = ["simpleservo/energy-profiling"]
|
||||||
googlevr = ["simpleservo/googlevr"]
|
googlevr = ["simpleservo/googlevr"]
|
||||||
js_backtrace = ["simpleservo/js_backtrace"]
|
js_backtrace = ["simpleservo/js_backtrace"]
|
||||||
|
|
|
@ -30,7 +30,7 @@ from mach.decorators import (
|
||||||
from mach.registrar import Registrar
|
from mach.registrar import Registrar
|
||||||
|
|
||||||
from mach_bootstrap import _get_exec_path
|
from mach_bootstrap import _get_exec_path
|
||||||
from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX
|
from servo.command_base import CommandBase, cd, call, check_call, BIN_SUFFIX, append_to_path_env
|
||||||
from servo.util import host_triple
|
from servo.util import host_triple
|
||||||
|
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ class MachCommands(CommandBase):
|
||||||
@CommandBase.build_like_command_arguments
|
@CommandBase.build_like_command_arguments
|
||||||
def build(self, release=False, dev=False, jobs=None, params=None,
|
def build(self, release=False, dev=False, jobs=None, params=None,
|
||||||
no_package=False, verbose=False, very_verbose=False,
|
no_package=False, verbose=False, very_verbose=False,
|
||||||
target=None, android=False, magicleap=False, libsimpleservo=False,
|
target=None, android=False, magicleap=False, libsimpleservo=False, uwp=False,
|
||||||
features=None, **kwargs):
|
features=None, **kwargs):
|
||||||
opts = params or []
|
opts = params or []
|
||||||
features = features or []
|
features = features or []
|
||||||
|
@ -240,6 +240,21 @@ class MachCommands(CommandBase):
|
||||||
env['CXXFLAGS'] = ''
|
env['CXXFLAGS'] = ''
|
||||||
env["CXXFLAGS"] += "-mmacosx-version-min=10.10"
|
env["CXXFLAGS"] += "-mmacosx-version-min=10.10"
|
||||||
|
|
||||||
|
if uwp:
|
||||||
|
# Don't try and build a desktop port.
|
||||||
|
libsimpleservo = True
|
||||||
|
|
||||||
|
# Ensure that the NuGet ANGLE package containing libEGL is accessible
|
||||||
|
# to the Rust linker.
|
||||||
|
append_to_path_env(
|
||||||
|
path.join(
|
||||||
|
os.getcwd(), "support", "hololens", "packages",
|
||||||
|
"ANGLE.WindowsStore.2.1.13", "bin", "UAP", "x64"
|
||||||
|
),
|
||||||
|
env,
|
||||||
|
"LIB"
|
||||||
|
)
|
||||||
|
|
||||||
if android:
|
if android:
|
||||||
if "ANDROID_NDK" not in env:
|
if "ANDROID_NDK" not in env:
|
||||||
print("Please set the ANDROID_NDK environment variable.")
|
print("Please set the ANDROID_NDK environment variable.")
|
||||||
|
@ -532,7 +547,7 @@ class MachCommands(CommandBase):
|
||||||
|
|
||||||
status = self.run_cargo_build_like_command(
|
status = self.run_cargo_build_like_command(
|
||||||
"build", opts, env=env, verbose=verbose,
|
"build", opts, env=env, verbose=verbose,
|
||||||
target=target, android=android, magicleap=magicleap, libsimpleservo=libsimpleservo,
|
target=target, android=android, magicleap=magicleap, libsimpleservo=libsimpleservo, uwp=uwp,
|
||||||
features=features, **kwargs
|
features=features, **kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -584,7 +599,8 @@ class MachCommands(CommandBase):
|
||||||
for lib in libs:
|
for lib in libs:
|
||||||
print("WARNING: could not find " + lib)
|
print("WARNING: could not find " + lib)
|
||||||
|
|
||||||
package_generated_shared_libraries(["libEGL.dll"], build_path, servo_exe_dir)
|
if not uwp:
|
||||||
|
package_generated_shared_libraries(["libEGL.dll"], build_path, servo_exe_dir)
|
||||||
|
|
||||||
# copy needed gstreamer DLLs in to servo.exe dir
|
# copy needed gstreamer DLLs in to servo.exe dir
|
||||||
target_triple = target or host_triple()
|
target_triple = target or host_triple()
|
||||||
|
|
|
@ -782,6 +782,11 @@ install them, let us know by filing a bug!")
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help='Build with frame pointer enabled, used by the background hang monitor.',
|
help='Build with frame pointer enabled, used by the background hang monitor.',
|
||||||
),
|
),
|
||||||
|
CommandArgument(
|
||||||
|
'--uwp',
|
||||||
|
default=None,
|
||||||
|
action='store_true',
|
||||||
|
help='Build for HoloLens (x64)'),
|
||||||
CommandArgument('--with-raqote', default=None, action='store_true'),
|
CommandArgument('--with-raqote', default=None, action='store_true'),
|
||||||
CommandArgument('--without-wgl', default=None, action='store_true'),
|
CommandArgument('--without-wgl', default=None, action='store_true'),
|
||||||
]
|
]
|
||||||
|
@ -809,6 +814,7 @@ install them, let us know by filing a bug!")
|
||||||
target=None, android=False, magicleap=False, libsimpleservo=False,
|
target=None, android=False, magicleap=False, libsimpleservo=False,
|
||||||
features=None, debug_mozjs=False, with_debug_assertions=False,
|
features=None, debug_mozjs=False, with_debug_assertions=False,
|
||||||
with_frame_pointer=False, with_raqote=False, without_wgl=False,
|
with_frame_pointer=False, with_raqote=False, without_wgl=False,
|
||||||
|
uwp=False,
|
||||||
):
|
):
|
||||||
env = env or self.build_env()
|
env = env or self.build_env()
|
||||||
target, android = self.pick_target_triple(target, android, magicleap)
|
target, android = self.pick_target_triple(target, android, magicleap)
|
||||||
|
@ -836,6 +842,12 @@ install them, let us know by filing a bug!")
|
||||||
features.append("debugmozjs")
|
features.append("debugmozjs")
|
||||||
if not magicleap:
|
if not magicleap:
|
||||||
features.append("native-bluetooth")
|
features.append("native-bluetooth")
|
||||||
|
if uwp:
|
||||||
|
features.append("canvas2d-raqote")
|
||||||
|
features.append("no_wgl")
|
||||||
|
else:
|
||||||
|
# Non-UWP builds provide their own libEGL via mozangle.
|
||||||
|
features.append("egl")
|
||||||
if with_raqote and "canvas2d-azure" not in features:
|
if with_raqote and "canvas2d-azure" not in features:
|
||||||
features.append("canvas2d-raqote")
|
features.append("canvas2d-raqote")
|
||||||
elif "canvas2d-raqote" not in features:
|
elif "canvas2d-raqote" not in features:
|
||||||
|
|
7
support/hololens/App.xaml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<Application
|
||||||
|
x:Class="hlservo.App"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:local="using:hlservo">
|
||||||
|
|
||||||
|
</Application>
|
29
support/hololens/App.xaml.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "App.xaml.h"
|
||||||
|
|
||||||
|
using namespace hlservo;
|
||||||
|
|
||||||
|
App::App()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs ^ e)
|
||||||
|
{
|
||||||
|
#if _DEBUG
|
||||||
|
if (IsDebuggerPresent()) {
|
||||||
|
DebugSettings->EnableFrameRateCounter = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (mPage == nullptr) {
|
||||||
|
mPage = ref new OpenGLESPage(&mOpenGLES);
|
||||||
|
}
|
||||||
|
|
||||||
|
Windows::UI::Xaml::Window::Current->Content = mPage;
|
||||||
|
Windows::UI::Xaml::Window::Current->Activate();
|
||||||
|
}
|
21
support/hololens/App.xaml.h
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "OpenGLES.h"
|
||||||
|
#include "app.g.h"
|
||||||
|
#include "openglespage.xaml.h"
|
||||||
|
|
||||||
|
namespace hlservo {
|
||||||
|
ref class App sealed {
|
||||||
|
public:
|
||||||
|
App();
|
||||||
|
virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs ^ e) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
OpenGLESPage ^ mPage;
|
||||||
|
OpenGLES mOpenGLES;
|
||||||
|
};
|
||||||
|
}
|
BIN
support/hololens/Assets/LockScreenLogo.scale-200.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
support/hololens/Assets/SplashScreen.scale-200.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
support/hololens/Assets/Square150x150Logo.scale-200.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
support/hololens/Assets/Square44x44Logo.scale-200.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.2 KiB |
BIN
support/hololens/Assets/StoreLogo.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
support/hololens/Assets/Wide310x150Logo.scale-200.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
232
support/hololens/OpenGLES.cpp
Normal file
|
@ -0,0 +1,232 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "OpenGLES.h"
|
||||||
|
|
||||||
|
using namespace Platform;
|
||||||
|
using namespace Windows::UI::Xaml::Controls;
|
||||||
|
using namespace Windows::Foundation;
|
||||||
|
using namespace Windows::Foundation::Collections;
|
||||||
|
|
||||||
|
OpenGLES::OpenGLES()
|
||||||
|
: mEglConfig(nullptr)
|
||||||
|
, mEglDisplay(EGL_NO_DISPLAY)
|
||||||
|
, mEglContext(EGL_NO_CONTEXT)
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenGLES::~OpenGLES()
|
||||||
|
{
|
||||||
|
Cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLES::Initialize()
|
||||||
|
{
|
||||||
|
const EGLint configAttributes[] = {
|
||||||
|
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
|
||||||
|
EGL_RED_SIZE, 8,
|
||||||
|
EGL_GREEN_SIZE, 8,
|
||||||
|
EGL_BLUE_SIZE, 8,
|
||||||
|
EGL_ALPHA_SIZE, 8,
|
||||||
|
EGL_DEPTH_SIZE, 24,
|
||||||
|
EGL_STENCIL_SIZE, 8,
|
||||||
|
EGL_NONE
|
||||||
|
};
|
||||||
|
|
||||||
|
const EGLint contextAttributes[] = {
|
||||||
|
EGL_CONTEXT_CLIENT_VERSION, 3,
|
||||||
|
EGL_NONE
|
||||||
|
};
|
||||||
|
|
||||||
|
// Based on Angle MS template.
|
||||||
|
|
||||||
|
const EGLint defaultDisplayAttributes[] = {
|
||||||
|
// These are the default display attributes, used to request ANGLE's D3D11 renderer.
|
||||||
|
// eglInitialize will only succeed with these attributes if the hardware supports D3D11 Feature Level 10_0+.
|
||||||
|
EGL_PLATFORM_ANGLE_TYPE_ANGLE,
|
||||||
|
EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
|
||||||
|
|
||||||
|
// EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER is an optimization that can have large performance benefits on
|
||||||
|
// mobile devices. Its syntax is subject to change, though. Please update your Visual Studio templates if you
|
||||||
|
// experience compilation issues with it.
|
||||||
|
EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER,
|
||||||
|
EGL_TRUE,
|
||||||
|
|
||||||
|
// EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE is an option that enables ANGLE to automatically call
|
||||||
|
// the IDXGIDevice3::Trim method on behalf of the application when it gets suspended.
|
||||||
|
// Calling IDXGIDevice3::Trim when an application is suspended is a Windows Store application certification
|
||||||
|
// requirement.
|
||||||
|
EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE,
|
||||||
|
EGL_TRUE,
|
||||||
|
EGL_NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const EGLint fl9_3DisplayAttributes[] = {
|
||||||
|
// These can be used to request ANGLE's D3D11 renderer, with D3D11 Feature Level 9_3.
|
||||||
|
// These attributes are used if the call to eglInitialize fails with the default display attributes.
|
||||||
|
EGL_PLATFORM_ANGLE_TYPE_ANGLE,
|
||||||
|
EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
|
||||||
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE,
|
||||||
|
9,
|
||||||
|
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE,
|
||||||
|
3,
|
||||||
|
EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER,
|
||||||
|
EGL_TRUE,
|
||||||
|
EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE,
|
||||||
|
EGL_TRUE,
|
||||||
|
EGL_NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const EGLint warpDisplayAttributes[] = {
|
||||||
|
// These attributes can be used to request D3D11 WARP.
|
||||||
|
// They are used if eglInitialize fails with both the default display attributes and the 9_3 display attributes.
|
||||||
|
EGL_PLATFORM_ANGLE_TYPE_ANGLE,
|
||||||
|
EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE,
|
||||||
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE,
|
||||||
|
EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE,
|
||||||
|
EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER,
|
||||||
|
EGL_TRUE,
|
||||||
|
EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE,
|
||||||
|
EGL_TRUE,
|
||||||
|
EGL_NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
EGLConfig config = NULL;
|
||||||
|
|
||||||
|
// eglGetPlatformDisplayEXT is an alternative to eglGetDisplay.
|
||||||
|
// It allows us to pass in display attributes, used to configure D3D11.
|
||||||
|
PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT =
|
||||||
|
reinterpret_cast<PFNEGLGETPLATFORMDISPLAYEXTPROC>(eglGetProcAddress("eglGetPlatformDisplayEXT"));
|
||||||
|
if (!eglGetPlatformDisplayEXT) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to get function eglGetPlatformDisplayEXT");
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// To initialize the display, we make three sets of calls to eglGetPlatformDisplayEXT and eglInitialize,
|
||||||
|
// with varying parameters passed to eglGetPlatformDisplayEXT:
|
||||||
|
// 1) The first calls uses "defaultDisplayAttributes" as a parameter. This corresponds to D3D11 Feature Level 10_0+.
|
||||||
|
// 2) If eglInitialize fails for step 1 (e.g. because 10_0+ isn't supported by the default GPU), then we try again
|
||||||
|
// using "fl9_3DisplayAttributes". This corresponds to D3D11 Feature Level 9_3.
|
||||||
|
// 3) If eglInitialize fails for step 2 (e.g. because 9_3+ isn't supported by the default GPU), then we try again
|
||||||
|
// using "warpDisplayAttributes". This corresponds to D3D11 Feature Level 11_0 on WARP, a D3D11 software
|
||||||
|
// rasterizer.
|
||||||
|
//
|
||||||
|
|
||||||
|
// This tries to initialize EGL to D3D11 Feature Level 10_0+. See above comment for details.
|
||||||
|
mEglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, EGL_DEFAULT_DISPLAY, defaultDisplayAttributes);
|
||||||
|
if (mEglDisplay == EGL_NO_DISPLAY) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to get EGL display");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eglInitialize(mEglDisplay, NULL, NULL) == EGL_FALSE) {
|
||||||
|
// This tries to initialize EGL to D3D11 Feature Level 9_3, if 10_0+ is unavailable (e.g. on some mobile
|
||||||
|
// devices).
|
||||||
|
mEglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, EGL_DEFAULT_DISPLAY, fl9_3DisplayAttributes);
|
||||||
|
if (mEglDisplay == EGL_NO_DISPLAY) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to get EGL display");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eglInitialize(mEglDisplay, NULL, NULL) == EGL_FALSE) {
|
||||||
|
// This initializes EGL to D3D11 Feature Level 11_0 on WARP, if 9_3+ is unavailable on the default GPU.
|
||||||
|
mEglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, EGL_DEFAULT_DISPLAY,
|
||||||
|
warpDisplayAttributes);
|
||||||
|
if (mEglDisplay == EGL_NO_DISPLAY) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to get EGL display");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eglInitialize(mEglDisplay, NULL, NULL) == EGL_FALSE) {
|
||||||
|
// If all of the calls to eglInitialize returned EGL_FALSE then an error has occurred.
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to initialize EGL");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EGLint numConfigs = 0;
|
||||||
|
if ((eglChooseConfig(mEglDisplay, configAttributes, &mEglConfig, 1, &numConfigs) == EGL_FALSE) ||
|
||||||
|
(numConfigs == 0)) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to choose first EGLConfig");
|
||||||
|
}
|
||||||
|
|
||||||
|
mEglContext = eglCreateContext(mEglDisplay, mEglConfig, EGL_NO_CONTEXT, contextAttributes);
|
||||||
|
if (mEglContext == EGL_NO_CONTEXT) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to create EGL context");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLES::Cleanup()
|
||||||
|
{
|
||||||
|
if (mEglDisplay != EGL_NO_DISPLAY && mEglContext != EGL_NO_CONTEXT) {
|
||||||
|
eglDestroyContext(mEglDisplay, mEglContext);
|
||||||
|
mEglContext = EGL_NO_CONTEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mEglDisplay != EGL_NO_DISPLAY) {
|
||||||
|
eglTerminate(mEglDisplay);
|
||||||
|
mEglDisplay = EGL_NO_DISPLAY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLES::Reset()
|
||||||
|
{
|
||||||
|
Cleanup();
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
EGLSurface OpenGLES::CreateSurface(SwapChainPanel ^ panel)
|
||||||
|
{
|
||||||
|
if (!panel) {
|
||||||
|
throw Exception::CreateException(E_INVALIDARG, L"SwapChainPanel parameter is invalid");
|
||||||
|
}
|
||||||
|
|
||||||
|
EGLSurface surface = EGL_NO_SURFACE;
|
||||||
|
|
||||||
|
const EGLint surfaceAttributes[] = {
|
||||||
|
EGL_ANGLE_SURFACE_RENDER_TO_BACK_BUFFER, EGL_TRUE,
|
||||||
|
EGL_NONE
|
||||||
|
};
|
||||||
|
|
||||||
|
PropertySet ^ surfaceCreationProperties = ref new PropertySet();
|
||||||
|
surfaceCreationProperties->Insert(ref new String(EGLNativeWindowTypeProperty), panel);
|
||||||
|
|
||||||
|
// How to set size and or scale:
|
||||||
|
// surfaceCreationProperties->Insert(ref new String(EGLRenderSurfaceSizeProperty),
|
||||||
|
// PropertyValue::CreateSize(*renderSurfaceSize));
|
||||||
|
// surfaceCreationProperties->Insert(ref new String(EGLRenderResolutionScaleProperty),
|
||||||
|
// PropertyValue::CreateSingle(*resolutionScale));
|
||||||
|
|
||||||
|
surface = eglCreateWindowSurface(mEglDisplay, mEglConfig,
|
||||||
|
reinterpret_cast<IInspectable*>(surfaceCreationProperties), surfaceAttributes);
|
||||||
|
if (surface == EGL_NO_SURFACE) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to create EGL surface");
|
||||||
|
}
|
||||||
|
|
||||||
|
return surface;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLES::GetSurfaceDimensions(const EGLSurface surface, EGLint* width, EGLint* height)
|
||||||
|
{
|
||||||
|
eglQuerySurface(mEglDisplay, surface, EGL_WIDTH, width);
|
||||||
|
eglQuerySurface(mEglDisplay, surface, EGL_HEIGHT, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLES::DestroySurface(const EGLSurface surface)
|
||||||
|
{
|
||||||
|
if (mEglDisplay != EGL_NO_DISPLAY && surface != EGL_NO_SURFACE) {
|
||||||
|
eglDestroySurface(mEglDisplay, surface);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLES::MakeCurrent(const EGLSurface surface)
|
||||||
|
{
|
||||||
|
if (eglMakeCurrent(mEglDisplay, surface, surface, mEglContext) == EGL_FALSE) {
|
||||||
|
throw Exception::CreateException(E_FAIL, L"Failed to make EGLSurface current");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EGLBoolean OpenGLES::SwapBuffers(const EGLSurface surface)
|
||||||
|
{
|
||||||
|
return (eglSwapBuffers(mEglDisplay, surface));
|
||||||
|
}
|
27
support/hololens/OpenGLES.h
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class OpenGLES {
|
||||||
|
public:
|
||||||
|
OpenGLES();
|
||||||
|
~OpenGLES();
|
||||||
|
|
||||||
|
EGLSurface CreateSurface(Windows::UI::Xaml::Controls::SwapChainPanel ^ panel);
|
||||||
|
void GetSurfaceDimensions(const EGLSurface surface, EGLint* width, EGLint* height);
|
||||||
|
void DestroySurface(const EGLSurface surface);
|
||||||
|
void MakeCurrent(const EGLSurface surface);
|
||||||
|
EGLBoolean SwapBuffers(const EGLSurface surface);
|
||||||
|
void Reset();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void Initialize();
|
||||||
|
void Cleanup();
|
||||||
|
|
||||||
|
private:
|
||||||
|
EGLDisplay mEglDisplay;
|
||||||
|
EGLContext mEglContext;
|
||||||
|
EGLConfig mEglConfig;
|
||||||
|
};
|
13
support/hololens/OpenGLESPage.xaml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<Page
|
||||||
|
x:Class="hlservo.OpenGLESPage"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:local="using:hlservo"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
mc:Ignorable="d">
|
||||||
|
|
||||||
|
<SwapChainPanel x:Name="swapChainPanel">
|
||||||
|
<TextBlock Text="OpenGL ES and XAML" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="30" />
|
||||||
|
</SwapChainPanel>
|
||||||
|
</Page>
|
154
support/hololens/OpenGLESPage.xaml.cpp
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "OpenGLESPage.xaml.h"
|
||||||
|
#include "Servo.h"
|
||||||
|
|
||||||
|
using namespace hlservo;
|
||||||
|
using namespace Platform;
|
||||||
|
using namespace Concurrency;
|
||||||
|
using namespace Windows::Foundation;
|
||||||
|
|
||||||
|
static char sWakeupEvent[] = "SIGNAL_WAKEUP";
|
||||||
|
|
||||||
|
OpenGLESPage::OpenGLESPage()
|
||||||
|
: OpenGLESPage(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenGLESPage::OpenGLESPage(OpenGLES* openGLES)
|
||||||
|
: mOpenGLES(openGLES)
|
||||||
|
, mRenderSurface(EGL_NO_SURFACE)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
Windows::UI::Core::CoreWindow ^ window = Windows::UI::Xaml::Window::Current->CoreWindow;
|
||||||
|
window->VisibilityChanged += ref new Windows::Foundation::TypedEventHandler<Windows::UI::Core::CoreWindow ^,
|
||||||
|
Windows::UI::Core::VisibilityChangedEventArgs ^>(this, &OpenGLESPage::OnVisibilityChanged);
|
||||||
|
this->Loaded += ref new Windows::UI::Xaml::RoutedEventHandler(this, &OpenGLESPage::OnPageLoaded);
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenGLESPage::~OpenGLESPage()
|
||||||
|
{
|
||||||
|
StopRenderLoop();
|
||||||
|
DestroyRenderSurface();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::OnPageLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e)
|
||||||
|
{
|
||||||
|
CreateRenderSurface();
|
||||||
|
StartRenderLoop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::OnVisibilityChanged(Windows::UI::Core::CoreWindow ^ sender,
|
||||||
|
Windows::UI::Core::VisibilityChangedEventArgs ^ args)
|
||||||
|
{
|
||||||
|
if (args->Visible && mRenderSurface != EGL_NO_SURFACE) {
|
||||||
|
StartRenderLoop();
|
||||||
|
} else {
|
||||||
|
StopRenderLoop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::CreateRenderSurface()
|
||||||
|
{
|
||||||
|
if (mOpenGLES && mRenderSurface == EGL_NO_SURFACE) {
|
||||||
|
mRenderSurface = mOpenGLES->CreateSurface(swapChainPanel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::DestroyRenderSurface()
|
||||||
|
{
|
||||||
|
if (mOpenGLES) {
|
||||||
|
mOpenGLES->DestroySurface(mRenderSurface);
|
||||||
|
}
|
||||||
|
mRenderSurface = EGL_NO_SURFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::RecoverFromLostDevice()
|
||||||
|
{
|
||||||
|
StopRenderLoop();
|
||||||
|
{
|
||||||
|
critical_section::scoped_lock lock(mRenderSurfaceCriticalSection);
|
||||||
|
|
||||||
|
DestroyRenderSurface();
|
||||||
|
mOpenGLES->Reset();
|
||||||
|
CreateRenderSurface();
|
||||||
|
}
|
||||||
|
StartRenderLoop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::StartRenderLoop()
|
||||||
|
{
|
||||||
|
if (mRenderLoopWorker != nullptr && mRenderLoopWorker->Status == Windows::Foundation::AsyncStatus::Started) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto loop = [this](Windows::Foundation::IAsyncAction ^ action) {
|
||||||
|
critical_section::scoped_lock lock(mRenderSurfaceCriticalSection);
|
||||||
|
|
||||||
|
HANDLE hEvent = ::CreateEventA(nullptr, FALSE, FALSE, sWakeupEvent);
|
||||||
|
|
||||||
|
// Called by Servo
|
||||||
|
Servo::sMakeCurrent = [this]() {
|
||||||
|
/* EGLint panelWidth = 0; */
|
||||||
|
/* EGLint panelHeight = 0; */
|
||||||
|
/* mOpenGLES->GetSurfaceDimensions(mRenderSurface, &panelWidth, &panelHeight); */
|
||||||
|
/* glViewport(0, 0, panelWidth, panelHeight); */
|
||||||
|
/* mServo->SetSize(panelWidth, panelHeight); */
|
||||||
|
mOpenGLES->MakeCurrent(mRenderSurface);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Called by Servo
|
||||||
|
Servo::sFlush = [this]() {
|
||||||
|
if (mOpenGLES->SwapBuffers(mRenderSurface) != GL_TRUE) {
|
||||||
|
// The call to eglSwapBuffers might not be successful (i.e. due to Device Lost)
|
||||||
|
// If the call fails, then we must reinitialize EGL and the GL resources.
|
||||||
|
swapChainPanel->Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::High,
|
||||||
|
ref new Windows::UI::Core::DispatchedHandler([=]() {
|
||||||
|
RecoverFromLostDevice();
|
||||||
|
}, CallbackContext::Any));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mOpenGLES->MakeCurrent(mRenderSurface);
|
||||||
|
|
||||||
|
EGLint panelWidth = 0;
|
||||||
|
EGLint panelHeight = 0;
|
||||||
|
mOpenGLES->GetSurfaceDimensions(mRenderSurface, &panelWidth, &panelHeight);
|
||||||
|
glViewport(0, 0, panelWidth, panelHeight);
|
||||||
|
mServo = new Servo(panelWidth, panelHeight);
|
||||||
|
|
||||||
|
while (action->Status == Windows::Foundation::AsyncStatus::Started) {
|
||||||
|
// Block until Servo::sWakeUp is called.
|
||||||
|
// Or run full speed if animating (see on_animating_changed),
|
||||||
|
// it will endup blocking on SwapBuffers to limit rendering to 60FPS
|
||||||
|
if (!Servo::sAnimating) {
|
||||||
|
::WaitForSingleObject(hEvent, INFINITE);
|
||||||
|
}
|
||||||
|
mServo->PerformUpdates();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
auto workItemHandler = ref new Windows::System::Threading::WorkItemHandler(loop);
|
||||||
|
|
||||||
|
// Run Servo task in a high priority background thread.
|
||||||
|
mRenderLoopWorker = Windows::System::Threading::ThreadPool::RunAsync(
|
||||||
|
workItemHandler,
|
||||||
|
Windows::System::Threading::WorkItemPriority::High,
|
||||||
|
Windows::System::Threading::WorkItemOptions::TimeSliced);
|
||||||
|
|
||||||
|
Servo::sWakeUp = []() {
|
||||||
|
HANDLE hEvent = ::OpenEventA(EVENT_ALL_ACCESS, FALSE, sWakeupEvent);
|
||||||
|
::SetEvent(hEvent);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenGLESPage::StopRenderLoop()
|
||||||
|
{
|
||||||
|
if (mRenderLoopWorker) {
|
||||||
|
mRenderLoopWorker->Cancel();
|
||||||
|
mRenderLoopWorker = nullptr;
|
||||||
|
}
|
||||||
|
}
|
37
support/hololens/OpenGLESPage.xaml.h
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "OpenGLES.h"
|
||||||
|
#include "OpenGLESPage.g.h"
|
||||||
|
#include "Servo.h"
|
||||||
|
|
||||||
|
namespace hlservo {
|
||||||
|
public
|
||||||
|
ref class OpenGLESPage sealed {
|
||||||
|
public:
|
||||||
|
OpenGLESPage();
|
||||||
|
virtual ~OpenGLESPage();
|
||||||
|
|
||||||
|
internal : OpenGLESPage(OpenGLES* openGLES);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void OnPageLoaded(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e);
|
||||||
|
void OnVisibilityChanged(Windows::UI::Core::CoreWindow ^ sender,
|
||||||
|
Windows::UI::Core::VisibilityChangedEventArgs ^ args);
|
||||||
|
void CreateRenderSurface();
|
||||||
|
void DestroyRenderSurface();
|
||||||
|
void RecoverFromLostDevice();
|
||||||
|
void StartRenderLoop();
|
||||||
|
void StopRenderLoop();
|
||||||
|
|
||||||
|
OpenGLES* mOpenGLES;
|
||||||
|
|
||||||
|
EGLSurface mRenderSurface;
|
||||||
|
Concurrency::critical_section mRenderSurfaceCriticalSection;
|
||||||
|
Windows::Foundation::IAsyncAction ^ mRenderLoopWorker;
|
||||||
|
Servo* mServo;
|
||||||
|
};
|
||||||
|
}
|
46
support/hololens/Package.appxmanifest
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<Package
|
||||||
|
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||||
|
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||||
|
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||||
|
IgnorableNamespaces="uap mp">
|
||||||
|
|
||||||
|
<Identity Publisher="CN=allizom" Version="1.0.23.0" Name="ServoApp"/>
|
||||||
|
|
||||||
|
<mp:PhoneIdentity PhoneProductId="763af792-8716-4528-af46-5e364a20e6aa" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||||
|
|
||||||
|
<Properties>
|
||||||
|
<DisplayName>Servo</DisplayName>
|
||||||
|
<PublisherDisplayName>Allizom</PublisherDisplayName>
|
||||||
|
<Logo>Assets\StoreLogo.png</Logo>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Dependencies>
|
||||||
|
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||||
|
</Dependencies>
|
||||||
|
|
||||||
|
<Resources>
|
||||||
|
<Resource Language="x-generate"/>
|
||||||
|
</Resources>
|
||||||
|
|
||||||
|
<Applications>
|
||||||
|
<Application Id="App"
|
||||||
|
Executable="$targetnametoken$.exe"
|
||||||
|
EntryPoint="hlservo.App">
|
||||||
|
<uap:VisualElements
|
||||||
|
DisplayName="hlservo"
|
||||||
|
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||||
|
Square44x44Logo="Assets\Square44x44Logo.png"
|
||||||
|
Description="hlservo"
|
||||||
|
BackgroundColor="transparent">
|
||||||
|
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
||||||
|
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||||
|
</uap:VisualElements>
|
||||||
|
</Application>
|
||||||
|
</Applications>
|
||||||
|
|
||||||
|
<Capabilities>
|
||||||
|
<Capability Name="internetClient" />
|
||||||
|
</Capabilities>
|
||||||
|
</Package>
|
30
support/hololens/ProjectDefaultFilters.vcxproj.filters
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Assets">
|
||||||
|
<UniqueIdentifier>d64db011-1240-48ad-a857-7af0ffd781dc</UniqueIdentifier>
|
||||||
|
<Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Binaries">
|
||||||
|
<Extensions>dll;</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Image Include="Assets\LockScreenLogo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\SplashScreen.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square150x150Logo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square44x44Logo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Wide310x150Logo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
83
support/hololens/Servo.cpp
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
#include "Servo.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include <simpleservo.h>
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace hlservo;
|
||||||
|
|
||||||
|
void on_load_started() {}
|
||||||
|
void on_load_ended() {}
|
||||||
|
void on_title_changed(const char* title) {}
|
||||||
|
void on_url_changed(const char* url) {}
|
||||||
|
void on_history_changed(bool back, bool fwd) {}
|
||||||
|
void on_shutdown_complete() {}
|
||||||
|
|
||||||
|
std::function<void()> Servo::sFlush = [](){};
|
||||||
|
std::function<void()> Servo::sMakeCurrent = [](){};
|
||||||
|
std::function<void()> Servo::sWakeUp = [](){};
|
||||||
|
bool Servo::sAnimating = false;
|
||||||
|
|
||||||
|
void flush() {
|
||||||
|
Servo::sFlush();
|
||||||
|
}
|
||||||
|
|
||||||
|
void make_current() {
|
||||||
|
Servo::sMakeCurrent();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wakeup() {
|
||||||
|
Servo::sWakeUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_animating_changed(bool aAnimating) {
|
||||||
|
Servo::sAnimating = aAnimating;
|
||||||
|
}
|
||||||
|
|
||||||
|
Servo::Servo(GLsizei width, GLsizei height)
|
||||||
|
: mAnimating(false)
|
||||||
|
, mWindowHeight(height)
|
||||||
|
, mWindowWidth(width) {
|
||||||
|
|
||||||
|
CInitOptions o;
|
||||||
|
o.args = NULL;
|
||||||
|
o.url = "http://example.com";
|
||||||
|
o.width = mWindowWidth;
|
||||||
|
o.height = mWindowHeight;
|
||||||
|
o.density = 1.0;
|
||||||
|
o.enable_subpixel_text_antialiasing = false;
|
||||||
|
|
||||||
|
CHostCallbacks c;
|
||||||
|
c.flush = &flush;
|
||||||
|
c.make_current = &make_current;
|
||||||
|
c.on_load_started = &on_load_started;
|
||||||
|
c.on_load_ended = &on_load_ended;
|
||||||
|
c.on_title_changed = &on_title_changed;
|
||||||
|
c.on_url_changed = &on_url_changed;
|
||||||
|
c.on_history_changed = &on_history_changed;
|
||||||
|
c.on_animating_changed = &on_animating_changed;
|
||||||
|
c.on_shutdown_complete = &on_shutdown_complete;
|
||||||
|
|
||||||
|
init_with_egl(o, &wakeup, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
Servo::~Servo() {
|
||||||
|
deinit();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Servo::PerformUpdates() {
|
||||||
|
perform_updates();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Servo::SetSize(GLsizei width, GLsizei height) {
|
||||||
|
if (width != mWindowWidth || height != mWindowHeight) {
|
||||||
|
mWindowWidth = width;
|
||||||
|
mWindowHeight = height;
|
||||||
|
resize(mWindowWidth, mWindowHeight);
|
||||||
|
}
|
||||||
|
}
|
31
support/hololens/Servo.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "pch.h"
|
||||||
|
|
||||||
|
namespace hlservo {
|
||||||
|
class Servo {
|
||||||
|
public:
|
||||||
|
Servo(GLsizei width, GLsizei height);
|
||||||
|
~Servo();
|
||||||
|
void PerformUpdates();
|
||||||
|
void SetSize(GLsizei width, GLsizei height);
|
||||||
|
|
||||||
|
// Static lambas called by Servo callbacks.
|
||||||
|
|
||||||
|
// Will be called from any thead
|
||||||
|
static std::function<void()> sWakeUp;
|
||||||
|
// Will be called from GL thread
|
||||||
|
static std::function<void()> sFlush;
|
||||||
|
static std::function<void()> sMakeCurrent;
|
||||||
|
static bool sAnimating;
|
||||||
|
|
||||||
|
private:
|
||||||
|
GLsizei mWindowWidth;
|
||||||
|
GLsizei mWindowHeight;
|
||||||
|
bool mAnimating;
|
||||||
|
};
|
||||||
|
}
|
43
support/hololens/ServoApp.sln
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.28803.352
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ServoApp", "ServoApp.vcxproj", "{7134432A-49F2-4DC7-8F72-06F873A683EC}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|ARM = Debug|ARM
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|ARM = Release|ARM
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|ARM.Build.0 = Debug|ARM
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Debug|x86.Deploy.0 = Debug|Win32
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|ARM.ActiveCfg = Release|ARM
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|ARM.Build.0 = Release|ARM
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|ARM.Deploy.0 = Release|ARM
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|x64.Build.0 = Release|x64
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|x64.Deploy.0 = Release|x64
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{7134432A-49F2-4DC7-8F72-06F873A683EC}.Release|x86.Deploy.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {58EFB63D-FFA2-4263-AE6A-6764E4E04CCA}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
436
support/hololens/ServoApp.vcxproj
Normal file
|
@ -0,0 +1,436 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|ARM">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>ARM</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|ARM">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>ARM</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>{7134432a-49f2-4dc7-8f72-06f873a683ec}</ProjectGuid>
|
||||||
|
<RootNamespace>hlservo</RootNamespace>
|
||||||
|
<DefaultLanguage>en-US</DefaultLanguage>
|
||||||
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||||
|
<AppContainerApplication>true</AppContainerApplication>
|
||||||
|
<ApplicationType>Windows Store</ApplicationType>
|
||||||
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
||||||
|
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||||
|
<WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
|
||||||
|
<ProjectName>ServoApp</ProjectName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<PlatformToolset>v141</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
<Import Project="packages\ANGLE.WindowsStore.2.1.13\build\native\ANGLE.WindowsStore.targets" Condition="Exists('packages\ANGLE.WindowsStore.2.1.13\build\native\ANGLE.WindowsStore.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<PackageCertificateThumbprint>14E8C17B8F0E474455725DAA105238215838FEB1</PackageCertificateThumbprint>
|
||||||
|
<PackageCertificateKeyFile>ServoApp_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)'=='ARM'">
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>incore.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>mincore.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)|$(Configuration)'=='x64|Debug'">
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>mincore.lib;simpleservo.dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(VCInstallDir)\lib\store\amd64;$(VCInstallDir)\lib\amd64;$(ProjectDir)\..\..\target\debug</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)|$(Configuration)'=='x64|Release'">
|
||||||
|
<Link>
|
||||||
|
<AdditionalDependencies>mincore.lib;simpleservo.dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(VCInstallDir)\lib\store\amd64;$(VCInstallDir)\lib\amd64;$(ProjectDir)\..\..\target\release</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||||
|
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\target\debug\;$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||||
|
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)\..\..\target\release\;$(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Image Include="Assets\LockScreenLogo.scale-200.png" />
|
||||||
|
<Image Include="Assets\SplashScreen.scale-200.png" />
|
||||||
|
<Image Include="Assets\Square150x150Logo.scale-200.png" />
|
||||||
|
<Image Include="Assets\Square44x44Logo.scale-200.png" />
|
||||||
|
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||||
|
<Image Include="Assets\StoreLogo.png" />
|
||||||
|
<Image Include="Assets\Wide310x150Logo.scale-200.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="Servo.cpp" />
|
||||||
|
<ClInclude Include="Servo.h" />
|
||||||
|
<ClCompile Include="$(MSBuildThisFileDirectory)OpenGLES.cpp" />
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)OpenGLES.h" />
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)pch.h" />
|
||||||
|
<ClCompile Include="$(MSBuildThisFileDirectory)pch.cpp">
|
||||||
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="App.xaml.h">
|
||||||
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="OpenGLESPage.xaml.h">
|
||||||
|
<DependentUpon>OpenGLESPage.xaml</DependentUpon>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="App.xaml.cpp">
|
||||||
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="OpenGLESPage.xaml.cpp">
|
||||||
|
<DependentUpon>OpenGLESPage.xaml</DependentUpon>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AppxManifest Include="Package.appxmanifest">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</AppxManifest>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ApplicationDefinition Include="App.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</ApplicationDefinition>
|
||||||
|
<Page Include="OpenGLESPage.xaml">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="..\..\target\debug\api-ms-win-crt-runtime-l1-1-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\ffi-7.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gio-2.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\glib-2.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gmodule-2.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gobject-2.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstapp-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstaudio-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstbase-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstgl-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstpbutils-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstplayer-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstreamer-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstrtp-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstsdp-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gsttag-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstvideo-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstwebrtc-1.0-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\intl-8.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\libeay32.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\libwinpthread-1.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\msvcp140.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\orc-0.4-0.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\simpleservo.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\ssleay32.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\vcruntime140.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\z-1.dll">
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DeploymentContent>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\api-ms-win-crt-runtime-l1-1-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\ffi-7.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gio-2.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\glib-2.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gmodule-2.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gobject-2.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstapp-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstaudio-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstbase-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstgl-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstpbutils-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstplayer-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstreamer-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstrtp-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstsdp-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gsttag-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstvideo-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstwebrtc-1.0-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\intl-8.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\libeay32.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\libwinpthread-1.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\msvcp140.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\orc-0.4-0.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\simpleservo.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\ssleay32.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\vcruntime140.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\z-1.dll">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DeploymentContent>
|
||||||
|
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
|
||||||
|
</None>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="ServoApp_TemporaryKey.pfx" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('packages\ANGLE.WindowsStore.2.1.13\build\native\ANGLE.WindowsStore.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\ANGLE.WindowsStore.2.1.13\build\native\ANGLE.WindowsStore.targets'))" />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
245
support/hololens/ServoApp.vcxproj.filters
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="$(MSBuildThisFileDirectory)OpenGLES.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="$(MSBuildThisFileDirectory)pch.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Servo.cpp">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="App.xaml.cpp" />
|
||||||
|
<ClCompile Include="OpenGLESPage.xaml.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)OpenGLES.h">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="$(MSBuildThisFileDirectory)pch.h">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Servo.h">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="App.xaml.h" />
|
||||||
|
<ClInclude Include="OpenGLESPage.xaml.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Image Include="Assets\SplashScreen.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square44x44Logo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Square150x150Logo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\StoreLogo.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\Wide310x150Logo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
<Image Include="Assets\LockScreenLogo.scale-200.png">
|
||||||
|
<Filter>Assets</Filter>
|
||||||
|
</Image>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AppxManifest Include="Package.appxmanifest" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="ServoApp_TemporaryKey.pfx" />
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="..\..\target\debug\api-ms-win-crt-runtime-l1-1-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\ffi-7.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gio-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\glib-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gmodule-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gobject-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstapp-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstaudio-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstbase-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstgl-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstpbutils-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstplayer-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstreamer-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstrtp-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstsdp-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gsttag-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstvideo-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\gstwebrtc-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\intl-8.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\libeay32.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\libwinpthread-1.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\msvcp140.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\orc-0.4-0.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\simpleservo.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\ssleay32.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\vcruntime140.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\debug\z-1.dll">
|
||||||
|
<Filter>ServoDLLsDebug</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\z-1.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\vcruntime140.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\ssleay32.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\simpleservo.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\orc-0.4-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\msvcp140.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\libwinpthread-1.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\libeay32.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\intl-8.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstwebrtc-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstvideo-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gsttag-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstsdp-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstrtp-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstreamer-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstplayer-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstpbutils-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstgl-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstbase-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstaudio-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gstapp-1.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gobject-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gmodule-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\glib-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\gio-2.0-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\ffi-7.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
<None Include="..\..\target\release\api-ms-win-crt-runtime-l1-1-0.dll">
|
||||||
|
<Filter>ServoDLLsRelease</Filter>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Assets">
|
||||||
|
<UniqueIdentifier>{f663883d-5302-4e09-82e3-094b0a4fa9bc}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="src">
|
||||||
|
<UniqueIdentifier>{45140811-c74b-4497-ba07-a7610fe2fef9}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="ServoDLLsDebug">
|
||||||
|
<UniqueIdentifier>{851a4628-484c-4859-bb9b-3153914487f5}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="ServoDLLsRelease">
|
||||||
|
<UniqueIdentifier>{96a56d11-301b-46ec-b081-50010b467ebf}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ApplicationDefinition Include="App.xaml">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</ApplicationDefinition>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Page Include="OpenGLESPage.xaml">
|
||||||
|
<Filter>src</Filter>
|
||||||
|
</Page>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
BIN
support/hololens/ServoApp_TemporaryKey.pfx
Normal file
4
support/hololens/packages.config
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="ANGLE.WindowsStore" version="2.1.13" targetFramework="native" />
|
||||||
|
</packages>
|
5
support/hololens/pch.cpp
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "pch.h"
|
19
support/hololens/pch.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <concrt.h>
|
||||||
|
#include <ppltasks.h>
|
||||||
|
|
||||||
|
#define GL_GLEXT_PROTOTYPES
|
||||||
|
|
||||||
|
#include <GLES2/gl2.h>
|
||||||
|
#include <GLES2/gl2ext.h>
|
||||||
|
|
||||||
|
#include <EGL/egl.h>
|
||||||
|
#include <EGL/eglext.h>
|
||||||
|
#include <EGL/eglplatform.h>
|
||||||
|
|
||||||
|
#include <angle_windowsstore.h>
|