Bug 1398241 - Update bindings.rs for interfaces changed in WR cset 02e21a58. r=kats draft
authorMorris Tseng <mtseng@mozilla.com>
Thu, 14 Sep 2017 08:18:21 -0400
changeset 664838 d5ecf8e2328c36a4729c0065813cd351b3baebe1
parent 664837 8ab5624257704a16b3b96642898225718e061f56
child 664839 fab1768d9d4e169432db0138635791c0a894d35a
push id79815
push userkgupta@mozilla.com
push dateThu, 14 Sep 2017 12:21:28 +0000
reviewerskats
bugs1398241
milestone57.0a1
Bug 1398241 - Update bindings.rs for interfaces changed in WR cset 02e21a58. r=kats MozReview-Commit-ID: Aq6jP4tcuoU
gfx/webrender_bindings/src/bindings.rs
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -1062,20 +1062,26 @@ pub extern "C" fn wr_dp_begin(state: &mu
                               width: u32,
                               height: u32) {
     assert!(unsafe { !is_in_render_thread() });
     state.frame_builder.dl_builder.data.clear();
 
     let bounds = LayoutRect::new(LayoutPoint::new(0.0, 0.0),
                                  LayoutSize::new(width as f32, height as f32));
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: None,
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_stacking_context(webrender_api::ScrollPolicy::Scrollable,
-                                bounds,
+         .push_stacking_context(&prim_info,
+                                webrender_api::ScrollPolicy::Scrollable,
                                 None,
                                 TransformStyle::Flat,
                                 None,
                                 MixBlendMode::Normal,
                                 Vec::new());
 }
 
 #[no_mangle]
@@ -1130,20 +1136,27 @@ pub extern "C" fn wr_dp_push_stacking_co
         _ => Some(PropertyBinding::Binding(PropertyBindingKey::new(animation_id))),
     };
 
     let perspective_ref = unsafe { perspective.as_ref() };
     let perspective = match perspective_ref {
         Some(perspective) => Some(perspective.clone()),
         None => None,
     };
+
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: None,
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_stacking_context(webrender_api::ScrollPolicy::Scrollable,
-                                bounds,
+         .push_stacking_context(&prim_info,
+                                webrender_api::ScrollPolicy::Scrollable,
                                 transform_binding,
                                 transform_style,
                                 perspective,
                                 mix_blend_mode,
                                 filters);
 }
 
 #[no_mangle]
@@ -1248,45 +1261,61 @@ pub extern "C" fn wr_dp_pop_clip_and_scr
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_iframe(state: &mut WrState,
                                     rect: LayoutRect,
                                     pipeline_id: WrPipelineId) {
     assert!(unsafe { is_in_main_thread() });
 
-    state.frame_builder.dl_builder.push_iframe(rect, None, pipeline_id);
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: None,
+        is_backface_visible: true,
+    };
+
+    state.frame_builder.dl_builder.push_iframe(&prim_info, pipeline_id);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_rect(state: &mut WrState,
                                   rect: LayoutRect,
                                   clip: LayoutRect,
                                   color: ColorF) {
     assert!(unsafe { !is_in_render_thread() });
 
-    state.frame_builder.dl_builder.push_rect(rect,
-                                             Some(LocalClip::Rect(clip)),
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
+    state.frame_builder.dl_builder.push_rect(&prim_info,
                                              color);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_image(state: &mut WrState,
                                    bounds: LayoutRect,
                                    clip: LayoutRect,
                                    stretch_size: LayoutSize,
                                    tile_spacing: LayoutSize,
                                    image_rendering: ImageRendering,
                                    key: WrImageKey) {
     assert!(unsafe { is_in_main_thread() || is_in_compositor_thread() });
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_image(bounds,
-                     Some(LocalClip::Rect(clip)),
+         .push_image(&prim_info,
                      stretch_size,
                      tile_spacing,
                      image_rendering,
                      key);
 }
 
 /// Push a 3 planar yuv image.
 #[no_mangle]
@@ -1295,59 +1324,74 @@ pub extern "C" fn wr_dp_push_yuv_planar_
                                               clip: LayoutRect,
                                               image_key_0: WrImageKey,
                                               image_key_1: WrImageKey,
                                               image_key_2: WrImageKey,
                                               color_space: WrYuvColorSpace,
                                               image_rendering: ImageRendering) {
     assert!(unsafe { is_in_main_thread() || is_in_compositor_thread() });
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_yuv_image(bounds,
-                         Some(LocalClip::Rect(clip.into())),
+         .push_yuv_image(&prim_info,
                          YuvData::PlanarYCbCr(image_key_0, image_key_1, image_key_2),
                          color_space,
                          image_rendering);
 }
 
 /// Push a 2 planar NV12 image.
 #[no_mangle]
 pub extern "C" fn wr_dp_push_yuv_NV12_image(state: &mut WrState,
                                             bounds: LayoutRect,
                                             clip: LayoutRect,
                                             image_key_0: WrImageKey,
                                             image_key_1: WrImageKey,
                                             color_space: WrYuvColorSpace,
                                             image_rendering: ImageRendering) {
     assert!(unsafe { is_in_main_thread() || is_in_compositor_thread() });
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_yuv_image(bounds,
-                         Some(LocalClip::Rect(clip.into())),
+         .push_yuv_image(&prim_info,
                          YuvData::NV12(image_key_0, image_key_1),
                          color_space,
                          image_rendering);
 }
 
 /// Push a yuv interleaved image.
 #[no_mangle]
 pub extern "C" fn wr_dp_push_yuv_interleaved_image(state: &mut WrState,
                                                    bounds: LayoutRect,
                                                    clip: LayoutRect,
                                                    image_key_0: WrImageKey,
                                                    color_space: WrYuvColorSpace,
                                                    image_rendering: ImageRendering) {
     assert!(unsafe { is_in_main_thread() || is_in_compositor_thread() });
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_yuv_image(bounds,
-                         Some(LocalClip::Rect(clip.into())),
+         .push_yuv_image(&prim_info,
                          YuvData::InterleavedYCbCr(image_key_0),
                          color_space,
                          image_rendering);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_text(state: &mut WrState,
                                   bounds: LayoutRect,
@@ -1356,34 +1400,45 @@ pub extern "C" fn wr_dp_push_text(state:
                                   font_key: WrFontInstanceKey,
                                   glyphs: *const GlyphInstance,
                                   glyph_count: u32,
                                   glyph_options: *const GlyphOptions) {
     assert!(unsafe { is_in_main_thread() });
 
     let glyph_slice = make_slice(glyphs, glyph_count as usize);
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_text(bounds,
-                    Some(LocalClip::Rect(clip.into())),
+         .push_text(&prim_info,
                     &glyph_slice,
                     font_key,
                     color,
                     unsafe { glyph_options.as_ref().cloned() });
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_text_shadow(state: &mut WrState,
                                          bounds: LayoutRect,
                                          clip: LayoutRect,
                                          shadow: TextShadow) {
     assert!(unsafe { is_in_main_thread() });
 
-    state.frame_builder.dl_builder.push_text_shadow(bounds, Some(LocalClip::Rect(clip.into())), shadow.into());
+    let prim_info = LayoutPrimitiveInfo {
+        rect: bounds,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
+    state.frame_builder.dl_builder.push_text_shadow(&prim_info, shadow.into());
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_pop_text_shadow(state: &mut WrState) {
     assert!(unsafe { is_in_main_thread() });
 
     state.frame_builder.dl_builder.pop_text_shadow();
 }
@@ -1395,19 +1450,25 @@ pub extern "C" fn wr_dp_push_line(state:
                                   start: f32,
                                   end: f32,
                                   orientation: LineOrientation,
                                   width: f32,
                                   color: ColorF,
                                   style: LineStyle) {
     assert!(unsafe { is_in_main_thread() });
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: LayoutRect::zero(),
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_line(Some(LocalClip::Rect(clip.into())),
+         .push_line(&prim_info,
                     baseline,
                     start,
                     end,
                     orientation,
                     width,
                     color,
                     style);
 
@@ -1427,20 +1488,25 @@ pub extern "C" fn wr_dp_push_border(stat
 
     let border_details = BorderDetails::Normal(NormalBorder {
                                                    left: left.into(),
                                                    right: right.into(),
                                                    top: top.into(),
                                                    bottom: bottom.into(),
                                                    radius: radius.into(),
                                                });
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_border(rect,
-                      Some(LocalClip::Rect(clip.into())),
+         .push_border(&prim_info,
                       widths,
                       border_details);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_border_image(state: &mut WrState,
                                           rect: LayoutRect,
                                           clip: LayoutRect,
@@ -1455,20 +1521,25 @@ pub extern "C" fn wr_dp_push_border_imag
         BorderDetails::Image(ImageBorder {
                                  image_key: image,
                                  patch: patch.into(),
                                  fill: false,
                                  outset: outset.into(),
                                  repeat_horizontal: repeat_horizontal.into(),
                                  repeat_vertical: repeat_vertical.into(),
                              });
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_border(rect.into(),
-                      Some(LocalClip::Rect(clip.into())),
+         .push_border(&prim_info,
                       widths.into(),
                       border_details);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_border_gradient(state: &mut WrState,
                                              rect: LayoutRect,
                                              clip: LayoutRect,
@@ -1489,20 +1560,25 @@ pub extern "C" fn wr_dp_push_border_grad
                                                          state.frame_builder
                                                               .dl_builder
                                                               .create_gradient(start_point.into(),
                                                                                end_point.into(),
                                                                                stops_vector,
                                                                                extend_mode.into()),
                                                      outset: outset.into(),
                                                  });
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_border(rect.into(),
-                      Some(LocalClip::Rect(clip.into())),
+         .push_border(&prim_info,
                       widths.into(),
                       border_details);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_border_radial_gradient(state: &mut WrState,
                                                     rect: LayoutRect,
                                                     clip: LayoutRect,
@@ -1524,20 +1600,25 @@ pub extern "C" fn wr_dp_push_border_radi
                                               state.frame_builder
                                                    .dl_builder
                                                    .create_radial_gradient(center.into(),
                                                                            radius.into(),
                                                                            stops_vector,
                                                                            extend_mode.into()),
                                           outset: outset.into(),
                                       });
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_border(rect.into(),
-                      Some(LocalClip::Rect(clip.into())),
+         .push_border(&prim_info,
                       widths.into(),
                       border_details);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_linear_gradient(state: &mut WrState,
                                              rect: LayoutRect,
                                              clip: LayoutRect,
@@ -1554,20 +1635,25 @@ pub extern "C" fn wr_dp_push_linear_grad
     let stops_vector = stops_slice.to_owned();
 
     let gradient = state.frame_builder
                         .dl_builder
                         .create_gradient(start_point.into(),
                                          end_point.into(),
                                          stops_vector,
                                          extend_mode.into());
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_gradient(rect.into(),
-                        Some(LocalClip::Rect(clip.into())),
+         .push_gradient(&prim_info,
                         gradient,
                         tile_size.into(),
                         tile_spacing.into());
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_radial_gradient(state: &mut WrState,
                                              rect: LayoutRect,
@@ -1585,20 +1671,25 @@ pub extern "C" fn wr_dp_push_radial_grad
     let stops_vector = stops_slice.to_owned();
 
     let gradient = state.frame_builder
                         .dl_builder
                         .create_radial_gradient(center.into(),
                                                 radius.into(),
                                                 stops_vector,
                                                 extend_mode.into());
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_radial_gradient(rect,
-                               Some(LocalClip::Rect(clip.into())),
+         .push_radial_gradient(&prim_info,
                                gradient,
                                tile_size,
                                tile_spacing);
 }
 
 #[no_mangle]
 pub extern "C" fn wr_dp_push_box_shadow(state: &mut WrState,
                                         rect: LayoutRect,
@@ -1607,20 +1698,25 @@ pub extern "C" fn wr_dp_push_box_shadow(
                                         offset: LayoutVector2D,
                                         color: ColorF,
                                         blur_radius: f32,
                                         spread_radius: f32,
                                         border_radius: f32,
                                         clip_mode: BoxShadowClipMode) {
     assert!(unsafe { is_in_main_thread() });
 
+    let prim_info = LayoutPrimitiveInfo {
+        rect: rect,
+        local_clip: Some(LocalClip::Rect(clip.into())),
+        is_backface_visible: true,
+    };
+
     state.frame_builder
          .dl_builder
-         .push_box_shadow(rect,
-                          Some(LocalClip::Rect(clip.into())),
+         .push_box_shadow(&prim_info,
                           box_bounds,
                           offset,
                           color,
                           blur_radius,
                           spread_radius,
                           border_radius,
                           clip_mode);
 }