Skip to content

Commit

Permalink
Auto merge of servo#356 - nox:euclid, r=nical
Browse files Browse the repository at this point in the history
Update euclid to 0.10 and offscreen_gl_context to 0.4

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/356)
<!-- Reviewable:end -->
  • Loading branch information
bors-servo authored Aug 19, 2016
2 parents f95f22f + 5cdf195 commit 582b2c1
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 35 deletions.
6 changes: 3 additions & 3 deletions webrender/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "webrender"
version = "0.4.0"
version = "0.5.0"
authors = ["Glenn Watson <[email protected]>"]
license = "MPL-2.0"
repository = "https://github.com/servo/webrender"
Expand All @@ -14,14 +14,14 @@ app_units = "0.3"
bincode = "0.6.0"
bit-set = "0.4"
byteorder = "0.5"
euclid = "0.9"
euclid = "0.10"
fnv="1.0"
gleam = "0.2"
ipc-channel = "0.5"
lazy_static = "0.2"
log = "0.3"
num-traits = "0.1.32"
offscreen_gl_context = {version = "0.3", features = ["serde_serialization"]}
offscreen_gl_context = {version = "0.4", features = ["serde_serialization"]}
rayon = "0.4.0"
time = "0.1"
webrender_traits = {path = "../webrender_traits", default-features = false}
Expand Down
4 changes: 3 additions & 1 deletion webrender/src/device.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1463,7 +1463,9 @@ impl Device {

fn set_uniforms(&self, program: &Program, transform: &Matrix4D<f32>) {
debug_assert!(self.inside_frame);
gl::uniform_matrix_4fv(program.u_transform, false, &transform.to_array());
gl::uniform_matrix_4fv(program.u_transform,
false,
&transform.to_row_major_array());
}

fn update_image_for_2d_texture(&mut self,
Expand Down
49 changes: 28 additions & 21 deletions webrender/src/frame.rs
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ impl Frame {
None
}
ScrollLayerInfo::Scrollable(..) => {
let inv = layer.viewport_transform.invert();
let inv = layer.viewport_transform.inverse().unwrap();
let z0 = -10000.0;
let z1 = 10000.0;

Expand Down Expand Up @@ -590,8 +590,9 @@ impl Frame {

let iframe_fixed_layer_id = ScrollLayerId::create_fixed(pipeline.pipeline_id);

let viewport_transform = info.world_transform.mul(&info.local_perspective)
.mul(&info.local_transform);
let viewport_transform = info.world_transform
.post_mul(&info.local_perspective)
.post_mul(&info.local_transform);

// TODO(servo/servo#9983, pcwalton): Support rounded rectangle clipping.
// Currently we take the main part of the clip rect only.
Expand Down Expand Up @@ -728,18 +729,21 @@ impl Frame {
//} else {
// Matrix4D::identity()
//};
let local_transform = Matrix4D::identity().translate(origin.x, origin.y, 0.0)
.mul(&stacking_context.transform)
.translate(-origin.x, -origin.y, 0.0);
let local_transform = Matrix4D::identity()
.post_translated(origin.x, origin.y, 0.0)
.post_mul(&stacking_context.transform)
.post_translated(-origin.x, -origin.y, 0.0);

// Build local space perspective transform
let local_perspective = Matrix4D::identity().translate(origin.x, origin.y, 0.0)
.mul(&stacking_context.perspective)
.translate(-origin.x, -origin.y, 0.0);
let local_perspective = Matrix4D::identity()
.post_translated(origin.x, origin.y, 0.0)
.post_mul(&stacking_context.perspective)
.post_translated(-origin.x, -origin.y, 0.0);

// Build world space transform
let world_transform = parent_info.world_transform.mul(&local_perspective)
.mul(&local_transform);
let world_transform = parent_info.world_transform
.post_mul(&local_perspective)
.post_mul(&local_transform);

/*
let viewport_rect = if composition_operations.is_empty() {
Expand Down Expand Up @@ -773,8 +777,8 @@ impl Frame {
(ScrollPolicy::Scrollable, Some(scroll_layer_id)) => {
debug_assert!(!self.layers.contains_key(&scroll_layer_id));
let mut viewport_transform =
world_transform.mul(&parent_info.local_perspective)
.mul(&parent_info.local_transform);
world_transform.post_mul(&parent_info.local_perspective)
.post_mul(&parent_info.local_transform);
let mut viewport_rect = parent_info.viewport_rect;

if let ScrollLayerInfo::Scrollable(index) = scroll_layer_id.info {
Expand Down Expand Up @@ -847,15 +851,18 @@ impl Frame {
match self.layers.get_mut(&layer_id) {
Some(layer) => {
let layer_transform_for_children =
parent_world_transform.mul(&layer.local_transform)
.translate(layer.scrolling.offset.x,
layer.scrolling.offset.y,
0.0);
layer.viewport_transform = parent_world_transform.mul(&layer.local_transform);
parent_world_transform
.post_mul(&layer.local_transform)
.post_translated(layer.scrolling.offset.x,
layer.scrolling.offset.y,
0.0);
layer.viewport_transform =
parent_world_transform.post_mul(&layer.local_transform);
layer.world_transform =
Some(layer_transform_for_children.translate(layer.world_origin.x,
layer.world_origin.y,
0.0));
Some(layer_transform_for_children
.post_translated(layer.world_origin.x,
layer.world_origin.y,
0.0));
(layer_transform_for_children, layer.children.clone())
}
None => return,
Expand Down
11 changes: 5 additions & 6 deletions webrender/src/tiling.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ impl AlphaBatcher {
let sc = &ctx.layer_store[layer_index.0];
layer_ubo.push(PackedLayer {
transform: sc.transform,
inv_transform: sc.transform.invert(),
inv_transform: sc.transform.inverse().unwrap(),
screen_vertices: sc.xf_rect.as_ref().unwrap().vertices,
world_clip_rect: sc.world_clip_rect.unwrap(),
});
Expand Down Expand Up @@ -2628,14 +2628,13 @@ impl FrameBuilder {

if layer.can_contribute_to_scene() {
let scroll_layer = &layer_map[&layer.scroll_layer_id];
let offset_transform = Matrix4D::identity().translate(layer.local_offset.x,
layer.local_offset.y,
0.0);
let offset_transform = Matrix4D::identity()
.post_translated(layer.local_offset.x, layer.local_offset.y, 0.0);
let transform = scroll_layer.world_transform
.as_ref()
.unwrap()
.mul(&layer.local_transform)
.mul(&offset_transform);
.post_mul(&layer.local_transform)
.post_mul(&offset_transform);
layer.transform = transform;
let layer_xf_rect = TransformedRect::new(&layer.local_rect,
&transform,
Expand Down
2 changes: 1 addition & 1 deletion webrender/src/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ impl MatrixHelpers for Matrix4D<f32> {
}

fn reset_after_transforming_rect(&self) -> Matrix4D<f32> {
Matrix4D::new(
Matrix4D::row_major(
1.0, 0.0, self.m13, 0.0,
0.0, 1.0, self.m23, 0.0,
self.m31, self.m32, self.m33, self.m34,
Expand Down
6 changes: 3 additions & 3 deletions webrender_traits/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "webrender_traits"
version = "0.4.0"
version = "0.5.0"
authors = ["Glenn Watson <[email protected]>"]
license = "MPL-2.0"
repository = "https://github.com/servo/webrender"
Expand All @@ -13,10 +13,10 @@ nightly = ["euclid/unstable", "serde/unstable"]
[dependencies]
app_units = "0.3.0"
byteorder = "0.5"
euclid = "0.9"
euclid = "0.10"
gleam = "0.2.19"
heapsize = "0.3.6"
offscreen_gl_context = {version = "0.3.0", features = ["serde_serialization"]}
offscreen_gl_context = {version = "0.4.0", features = ["serde_serialization"]}
serde = "0.8"
serde_macros = {version = "0.8", optional = true}
ipc-channel = "0.5.0"
Expand Down

0 comments on commit 582b2c1

Please sign in to comment.