--- 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,