mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Auto merge of #9044 - ecoal95:offscreen-gl-up, r=jdm
Update offscreen_gl_context cc: https://github.com/ecoal95/rust-offscreen-rendering-context/pull/46 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9044) <!-- Reviewable:end -->
This commit is contained in:
commit
da8952b702
10 changed files with 13 additions and 22 deletions
|
@ -12,7 +12,7 @@ matrix:
|
||||||
- ./mach build -d --verbose
|
- ./mach build -d --verbose
|
||||||
- ./mach test-unit
|
- ./mach test-unit
|
||||||
- bash etc/ci/lockfile_changed.sh
|
- bash etc/ci/lockfile_changed.sh
|
||||||
- bash etc/ci/manifest_changed.sh
|
- bash etc/ci/manifest_changed.sh
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- .cargo
|
- .cargo
|
||||||
|
@ -26,6 +26,7 @@ matrix:
|
||||||
- freeglut3-dev
|
- freeglut3-dev
|
||||||
- gperf
|
- gperf
|
||||||
- libosmesa6-dev
|
- libosmesa6-dev
|
||||||
|
- libgles2-mesa-dev
|
||||||
- python-virtualenv
|
- python-virtualenv
|
||||||
- xorg-dev
|
- xorg-dev
|
||||||
- ccache
|
- ccache
|
||||||
|
|
|
@ -31,7 +31,8 @@ On Debian-based Linuxes:
|
||||||
sudo apt-get install curl freeglut3-dev \
|
sudo apt-get install curl freeglut3-dev \
|
||||||
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
|
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
|
||||||
gperf g++ cmake python-virtualenv python-pip \
|
gperf g++ cmake python-virtualenv python-pip \
|
||||||
libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev libglu1-mesa-dev
|
libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \
|
||||||
|
libglu1-mesa-dev libgles2-mesa-dev
|
||||||
```
|
```
|
||||||
If you are on **Ubuntu 14.04** and encountered errors on installing these dependencies involving `libcheese`, see [#6158](https://github.com/servo/servo/issues/6158) for a workaround.
|
If you are on **Ubuntu 14.04** and encountered errors on installing these dependencies involving `libcheese`, see [#6158](https://github.com/servo/servo/issues/6158) for a workaround.
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@ path = "../gfx_traits"
|
||||||
|
|
||||||
[dependencies.offscreen_gl_context]
|
[dependencies.offscreen_gl_context]
|
||||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||||
features = ["texture_surface"]
|
|
||||||
|
|
||||||
[dependencies.ipc-channel]
|
[dependencies.ipc-channel]
|
||||||
git = "https://github.com/servo/ipc-channel"
|
git = "https://github.com/servo/ipc-channel"
|
||||||
|
|
|
@ -11,7 +11,7 @@ use gleam::gl::types::{GLsizei};
|
||||||
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
use ipc_channel::ipc::{self, IpcSender, IpcSharedMemory};
|
||||||
use ipc_channel::router::ROUTER;
|
use ipc_channel::router::ROUTER;
|
||||||
use layers::platform::surface::NativeSurface;
|
use layers::platform::surface::NativeSurface;
|
||||||
use offscreen_gl_context::{ColorAttachmentType, GLContext, GLContextAttributes};
|
use offscreen_gl_context::{ColorAttachmentType, GLContext, GLContextAttributes, NativeGLContext};
|
||||||
use std::borrow::ToOwned;
|
use std::borrow::ToOwned;
|
||||||
use std::sync::mpsc::{Sender, channel};
|
use std::sync::mpsc::{Sender, channel};
|
||||||
use util::task::spawn_named;
|
use util::task::spawn_named;
|
||||||
|
@ -20,7 +20,7 @@ use util::vec::byte_swap;
|
||||||
pub struct WebGLPaintTask {
|
pub struct WebGLPaintTask {
|
||||||
size: Size2D<i32>,
|
size: Size2D<i32>,
|
||||||
original_context_size: Size2D<i32>,
|
original_context_size: Size2D<i32>,
|
||||||
gl_context: GLContext,
|
gl_context: GLContext<NativeGLContext>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// This allows trying to create the PaintTask
|
// This allows trying to create the PaintTask
|
||||||
|
@ -29,9 +29,7 @@ unsafe impl Send for WebGLPaintTask {}
|
||||||
|
|
||||||
impl WebGLPaintTask {
|
impl WebGLPaintTask {
|
||||||
fn new(size: Size2D<i32>, attrs: GLContextAttributes) -> Result<WebGLPaintTask, &'static str> {
|
fn new(size: Size2D<i32>, attrs: GLContextAttributes) -> Result<WebGLPaintTask, &'static str> {
|
||||||
let context = try!(
|
let context = try!(GLContext::new(size, attrs, ColorAttachmentType::Texture, None));
|
||||||
GLContext::create_offscreen_with_color_attachment(
|
|
||||||
size, attrs, ColorAttachmentType::TextureWithSurface));
|
|
||||||
|
|
||||||
// NOTE: As of right now this is always equal to the size parameter,
|
// NOTE: As of right now this is always equal to the size parameter,
|
||||||
// but this doesn't have to be true. Firefox after failing with
|
// but this doesn't have to be true. Firefox after failing with
|
||||||
|
|
|
@ -62,7 +62,6 @@ git = "https://github.com/servo/ipc-channel"
|
||||||
|
|
||||||
[dependencies.offscreen_gl_context]
|
[dependencies.offscreen_gl_context]
|
||||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||||
features = ["texture_surface"]
|
|
||||||
|
|
||||||
[dependencies.gaol]
|
[dependencies.gaol]
|
||||||
git = "https://github.com/pcwalton/gaol"
|
git = "https://github.com/pcwalton/gaol"
|
||||||
|
|
|
@ -21,7 +21,6 @@ path = "../net_traits"
|
||||||
|
|
||||||
[dependencies.offscreen_gl_context]
|
[dependencies.offscreen_gl_context]
|
||||||
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
git = "https://github.com/ecoal95/rust-offscreen-rendering-context"
|
||||||
features = ["texture_surface"]
|
|
||||||
|
|
||||||
[dependencies.plugins]
|
[dependencies.plugins]
|
||||||
path = "../plugins"
|
path = "../plugins"
|
||||||
|
|
4
components/servo/Cargo.lock
generated
4
components/servo/Cargo.lock
generated
|
@ -1266,7 +1266,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "offscreen_gl_context"
|
name = "offscreen_gl_context"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#348364d8869d5e673b49c60f40803dfa903c70f2"
|
source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#0677179502384f07fced16744dbe5882d9a71dfa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cgl 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cgl 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1274,11 +1274,9 @@ dependencies = [
|
||||||
"gl_generator 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gl_generator 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"layers 0.2.0 (git+https://github.com/servo/rust-layers)",
|
|
||||||
"log 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_macros 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_macros 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo-glutin 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"x11 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"x11 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ extern crate servo;
|
||||||
extern crate time;
|
extern crate time;
|
||||||
|
|
||||||
use gleam::gl;
|
use gleam::gl;
|
||||||
use offscreen_gl_context::GLContext;
|
use offscreen_gl_context::{GLContext, NativeGLContext};
|
||||||
use servo::Browser;
|
use servo::Browser;
|
||||||
use servo::compositing::windowing::WindowEvent;
|
use servo::compositing::windowing::WindowEvent;
|
||||||
use servo::net_traits::hosts;
|
use servo::net_traits::hosts;
|
||||||
|
@ -43,7 +43,7 @@ use std::rc::Rc;
|
||||||
|
|
||||||
#[cfg(not(target_os = "android"))]
|
#[cfg(not(target_os = "android"))]
|
||||||
fn load_gl_when_headless() {
|
fn load_gl_when_headless() {
|
||||||
gl::load_with(|addr| GLContext::get_proc_address(addr) as *const _);
|
gl::load_with(|addr| GLContext::<NativeGLContext>::get_proc_address(addr) as *const _);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_os = "android")]
|
#[cfg(target_os = "android")]
|
||||||
|
@ -76,7 +76,7 @@ fn main() {
|
||||||
|
|
||||||
let window = if opts::get().headless {
|
let window = if opts::get().headless {
|
||||||
// Load gl functions even when in headless mode,
|
// Load gl functions even when in headless mode,
|
||||||
// to avoid crashing with webgl
|
// to avoid crashing with WebGL
|
||||||
load_gl_when_headless();
|
load_gl_when_headless();
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
|
4
ports/cef/Cargo.lock
generated
4
ports/cef/Cargo.lock
generated
|
@ -1201,7 +1201,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "offscreen_gl_context"
|
name = "offscreen_gl_context"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#348364d8869d5e673b49c60f40803dfa903c70f2"
|
source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#0677179502384f07fced16744dbe5882d9a71dfa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cgl 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cgl 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1209,11 +1209,9 @@ dependencies = [
|
||||||
"gl_generator 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gl_generator 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"layers 0.2.0 (git+https://github.com/servo/rust-layers)",
|
|
||||||
"log 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_macros 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_macros 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo-glutin 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"x11 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"x11 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
4
ports/gonk/Cargo.lock
generated
4
ports/gonk/Cargo.lock
generated
|
@ -1169,7 +1169,7 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "offscreen_gl_context"
|
name = "offscreen_gl_context"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#348364d8869d5e673b49c60f40803dfa903c70f2"
|
source = "git+https://github.com/ecoal95/rust-offscreen-rendering-context#0677179502384f07fced16744dbe5882d9a71dfa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cgl 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cgl 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1177,11 +1177,9 @@ dependencies = [
|
||||||
"gl_generator 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gl_generator 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"khronos_api 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"layers 0.2.0 (git+https://github.com/servo/rust-layers)",
|
|
||||||
"log 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_macros 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_macros 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo-glutin 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"x11 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"x11 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue