Implement CPU rendering. Replace texture sharing with native OS surface sharing.

This commit is contained in:
Patrick Walton 2013-10-25 14:52:53 -07:00
parent d5bd4bfdb7
commit 3d0bfa5040
25 changed files with 675 additions and 277 deletions

View file

@ -0,0 +1,26 @@
/* 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/. */
//! Mac OS-specific implementation of cross-process surfaces. This uses `IOSurface`, introduced
//! in Mac OS X 10.6 Snow Leopard.
use platform::surface::NativeSurfaceAzureMethods;
use azure::AzSkiaGrGLSharedSurfaceRef;
use core_foundation::base::CFWrapper;
use io_surface::IOSurface;
use layers::platform::surface::NativeSurface;
use std::cast;
impl NativeSurfaceAzureMethods for NativeSurface {
fn from_azure_surface(surface: AzSkiaGrGLSharedSurfaceRef) -> NativeSurface {
unsafe {
let io_surface = IOSurface {
contents: CFWrapper::wrap_owned(cast::transmute(surface)),
};
NativeSurface::from_io_surface(io_surface)
}
}
}