aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/msg/platform/macos/surface.rs
blob: eee7d091317b866325fc499b385ef91b050b42fe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* 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 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 {
                obj: cast::transmute(surface),
            };
            NativeSurface::from_io_surface(io_surface)
        }
    }
}