diff --git a/src/rust-azure b/src/rust-azure index 6ca8a28d257..008961b96fb 160000 --- a/src/rust-azure +++ b/src/rust-azure @@ -1 +1 @@ -Subproject commit 6ca8a28d2575379ad6e47ae72aa4c879743f3cf7 +Subproject commit 008961b96fb3ee009fcbfba43feaefe5f9f8cbf2 diff --git a/src/rust-layers b/src/rust-layers index 3db2f96a937..8b179c74709 160000 --- a/src/rust-layers +++ b/src/rust-layers @@ -1 +1 @@ -Subproject commit 3db2f96a937c1c7a43fa770352673642ef383302 +Subproject commit 8b179c7470984e5544ee3b8c47f654f7c897f88e diff --git a/src/rust-opengles b/src/rust-opengles index 593cb2cf964..18beb006b71 160000 --- a/src/rust-opengles +++ b/src/rust-opengles @@ -1 +1 @@ -Subproject commit 593cb2cf964eded5af750384409fc672881dc5f1 +Subproject commit 18beb006b719100421c24c634386df15f7fbf6bd diff --git a/src/servo/platform/osmain.rs b/src/servo/platform/osmain.rs index 7db23e15e53..c24258a6416 100644 --- a/src/servo/platform/osmain.rs +++ b/src/servo/platform/osmain.rs @@ -54,6 +54,19 @@ fn OSMain(dom_event_chan: pipes::SharedChan) -> OSMain { } } +/// Cairo surface wrapping to work with layers +struct CairoSurfaceImageData { + cairo_surface: ImageSurface +} + +impl CairoSurfaceImageData : layers::layers::ImageData { + fn size() -> Size2D { + Size2D(self.cairo_surface.width() as uint, self.cairo_surface.height() as uint) + } + fn format() -> layers::layers::Format { layers::layers::ARGB32Format } + fn with_data(f: layers::layers::WithDataFn) { f(self.cairo_surface.data()) } +} + fn mainloop(mode: Mode, po: comm::Port, dom_event_chan: pipes::SharedChan) { let key_handlers: @DVec> = @DVec(); @@ -78,7 +91,9 @@ fn mainloop(mode: Mode, po: comm::Port, dom_event_chan: pipes::SharedChan, dom_event_chan: pipes::SharedChan