diff options
Diffstat (limited to 'third_party/webrender/examples/document.rs')
-rw-r--r-- | third_party/webrender/examples/document.rs | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/third_party/webrender/examples/document.rs b/third_party/webrender/examples/document.rs deleted file mode 100644 index c81a3f5c25b..00000000000 --- a/third_party/webrender/examples/document.rs +++ /dev/null @@ -1,143 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -extern crate euclid; -extern crate gleam; -extern crate glutin; -extern crate webrender; -extern crate winit; - -#[path = "common/boilerplate.rs"] -mod boilerplate; - -use crate::boilerplate::Example; -use euclid::Scale; -use webrender::api::*; -use webrender::render_api::*; -use webrender::api::units::*; - -// This example creates multiple documents overlapping each other with -// specified layer indices. - -struct Document { - id: DocumentId, - pipeline_id: PipelineId, - content_rect: LayoutRect, - color: ColorF, -} - -struct App { - documents: Vec<Document>, -} - -impl App { - fn init( - &mut self, - api: &mut RenderApi, - device_pixel_ratio: f32, - ) { - let init_data = vec![ - ( - PipelineId(1, 0), - ColorF::new(0.0, 1.0, 0.0, 1.0), - DeviceIntPoint::new(0, 0), - ), - ( - PipelineId(2, 0), - ColorF::new(1.0, 1.0, 0.0, 1.0), - DeviceIntPoint::new(200, 0), - ), - ( - PipelineId(3, 0), - ColorF::new(1.0, 0.0, 0.0, 1.0), - DeviceIntPoint::new(200, 200), - ), - ( - PipelineId(4, 0), - ColorF::new(1.0, 0.0, 1.0, 1.0), - DeviceIntPoint::new(0, 200), - ), - ]; - - for (pipeline_id, color, offset) in init_data { - let size = DeviceIntSize::new(250, 250); - let bounds = DeviceIntRect::new(offset, size); - - let document_id = api.add_document(size); - let mut txn = Transaction::new(); - txn.set_document_view(bounds, device_pixel_ratio); - txn.set_root_pipeline(pipeline_id); - api.send_transaction(document_id, txn); - - self.documents.push(Document { - id: document_id, - pipeline_id, - content_rect: LayoutRect::new( - LayoutPoint::origin(), - bounds.size.to_f32() / Scale::new(device_pixel_ratio), - ), - color, - }); - } - } -} - -impl Example for App { - fn render( - &mut self, - api: &mut RenderApi, - _base_builder: &mut DisplayListBuilder, - _txn: &mut Transaction, - _device_size: DeviceIntSize, - _pipeline_id: PipelineId, - _: DocumentId, - ) { - if self.documents.is_empty() { - // this is the first run, hack around the boilerplate, - // which assumes an example only needs one document - self.init(api, 1.0); - } - - for doc in &self.documents { - let space_and_clip = SpaceAndClipInfo::root_scroll(doc.pipeline_id); - let mut builder = DisplayListBuilder::new( - doc.pipeline_id, - ); - let local_rect = LayoutRect::new( - LayoutPoint::zero(), - doc.content_rect.size, - ); - - builder.push_simple_stacking_context( - doc.content_rect.origin, - space_and_clip.spatial_id, - PrimitiveFlags::IS_BACKFACE_VISIBLE, - ); - builder.push_rect( - &CommonItemProperties::new(local_rect, space_and_clip), - local_rect, - doc.color, - ); - builder.pop_stacking_context(); - - let mut txn = Transaction::new(); - txn.set_display_list( - Epoch(0), - None, - doc.content_rect.size, - builder.finalize(), - true, - ); - txn.generate_frame(0); - api.send_transaction(doc.id, txn); - } - } -} - -fn main() { - let mut app = App { - documents: Vec::new(), - }; - boilerplate::main_wrapper(&mut app, None); -} |