Bug 1340270 - Update webrender_bindings glue for push_border API changes. r=jrmuizel draft
authorKartikaya Gupta <kgupta@mozilla.com>
Wed, 22 Feb 2017 22:58:02 -0500
changeset 488442 75a9d0d992f0b11132c9e96a59515656176dc27b
parent 488441 807a78bb85c7d0453ea8e244a3503f32380d4b66
child 488443 63b8d224581b89863e24c452bd61efd479083480
push id46526
push userkgupta@mozilla.com
push dateThu, 23 Feb 2017 03:58:47 +0000
reviewersjrmuizel
bugs1340270
milestone54.0a1
Bug 1340270 - Update webrender_bindings glue for push_border API changes. r=jrmuizel MozReview-Commit-ID: 3tmXnbRbTu8
gfx/webrender_bindings/src/bindings.rs
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -1,14 +1,14 @@
 use std::ffi::CString;
 use std::{mem, slice};
 use std::path::PathBuf;
 use std::os::raw::{c_void, c_char};
 use gleam::gl;
-use webrender_traits::{BorderSide, BorderStyle, BorderRadius};
+use webrender_traits::{BorderSide, BorderStyle, BorderRadius, BorderWidths, BorderDetails, NormalBorder};
 use webrender_traits::{PipelineId, ClipRegion, PropertyBinding};
 use webrender_traits::{Epoch, ExtendMode, ColorF, GlyphInstance, GradientStop, ImageDescriptor};
 use webrender_traits::{FilterOp, ImageData, ImageFormat, ImageKey, ImageMask, ImageRendering, RendererKind, MixBlendMode};
 use webrender_traits::{ExternalImageId, RenderApi, FontKey};
 use webrender_traits::{DeviceUintSize, ExternalEvent};
 use webrender_traits::{LayoutPoint, LayoutRect, LayoutSize, LayoutTransform};
 use webrender_traits::{BoxShadowClipMode, LayerPixel, ServoScrollRootId};
 use webrender::renderer::{Renderer, RendererOptions};
@@ -675,24 +675,34 @@ pub extern fn wr_dp_push_box_shadow(stat
 }
 
 #[no_mangle]
 pub extern fn wr_dp_push_border(state: &mut WrState, rect: WrRect, clip: WrRect,
                                 top: WrBorderSide, right: WrBorderSide, bottom: WrBorderSide, left: WrBorderSide,
                                 radius: WrBorderRadius) {
     assert!( unsafe { is_in_compositor_thread() });
     let clip_region = state.frame_builder.dl_builder.new_clip_region(&clip.to_rect(), Vec::new(), None);
+    let border_widths = BorderWidths {
+        left: left.width,
+        top: top.width,
+        right: right.width,
+        bottom: bottom.width
+    };
+    let border_details = BorderDetails::Normal(NormalBorder {
+        left: left.to_border_side(),
+        right: right.to_border_side(),
+        top: top.to_border_side(),
+        bottom: bottom.to_border_side(),
+        radius: radius.to_border_radius(),
+    });
     state.frame_builder.dl_builder.push_border(
                                     rect.to_rect(),
                                     clip_region,
-                                    left.to_border_side(),
-                                    top.to_border_side(),
-                                    right.to_border_side(),
-                                    bottom.to_border_side(),
-                                    radius.to_border_radius());
+                                    border_widths,
+                                    border_details);
 }
 
 #[no_mangle]
 pub extern fn wr_dp_push_linear_gradient(state: &mut WrState, rect: WrRect, clip: WrRect,
                                          start_point: WrPoint, end_point: WrPoint,
                                          stops: * const WrGradientStop, stops_count: usize,
                                          extend_mode: WrGradientExtendMode) {
     assert!( unsafe { is_in_compositor_thread() });
@@ -788,17 +798,17 @@ pub struct WrBorderSide
     color: WrColor,
     style: BorderStyle
 }
 
 impl WrBorderSide
 {
     pub fn to_border_side(&self) -> BorderSide
     {
-        BorderSide { width: self.width, color: self.color.to_color(), style: self.style }
+        BorderSide { color: self.color.to_color(), style: self.style }
     }
 }
 
 #[repr(C)]
 pub struct WrGradientStop
 {
     offset: f32,
     color: WrColor,