1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/ozone/public/surface_factory_ozone.h"
9 #include "base/command_line.h"
10 #include "ui/ozone/public/native_pixmap.h"
11 #include "ui/ozone/public/surface_ozone_canvas.h"
12 #include "ui/ozone/public/surface_ozone_egl.h"
17 SurfaceFactoryOzone
* SurfaceFactoryOzone::impl_
= NULL
;
19 SurfaceFactoryOzone::SurfaceFactoryOzone() {
20 DCHECK(!impl_
) << "There should only be a single SurfaceFactoryOzone.";
24 SurfaceFactoryOzone::~SurfaceFactoryOzone() {
25 DCHECK_EQ(impl_
, this);
29 SurfaceFactoryOzone
* SurfaceFactoryOzone::GetInstance() {
30 DCHECK(impl_
) << "No SurfaceFactoryOzone implementation set.";
34 intptr_t SurfaceFactoryOzone::GetNativeDisplay() {
38 scoped_ptr
<SurfaceOzoneEGL
> SurfaceFactoryOzone::CreateEGLSurfaceForWidget(
39 gfx::AcceleratedWidget widget
) {
41 return scoped_ptr
<SurfaceOzoneEGL
>();
44 scoped_ptr
<SurfaceOzoneEGL
>
45 SurfaceFactoryOzone::CreateSurfacelessEGLSurfaceForWidget(
46 gfx::AcceleratedWidget widget
) {
48 return scoped_ptr
<SurfaceOzoneEGL
>();
51 scoped_ptr
<SurfaceOzoneCanvas
> SurfaceFactoryOzone::CreateCanvasForWidget(
52 gfx::AcceleratedWidget widget
) {
54 return scoped_ptr
<SurfaceOzoneCanvas
>();
57 const int32
* SurfaceFactoryOzone::GetEGLSurfaceProperties(
58 const int32
* desired_attributes
) {
59 return desired_attributes
;
62 ui::OverlayCandidatesOzone
* SurfaceFactoryOzone::GetOverlayCandidates(
63 gfx::AcceleratedWidget w
) {
67 scoped_refptr
<ui::NativePixmap
> SurfaceFactoryOzone::CreateNativePixmap(
69 BufferFormat format
) {
73 bool SurfaceFactoryOzone::ScheduleOverlayPlane(
74 gfx::AcceleratedWidget widget
,
76 gfx::OverlayTransform plane_transform
,
77 scoped_refptr
<NativePixmap
> buffer
,
78 const gfx::Rect
& display_bounds
,
79 const gfx::RectF
& crop_rect
) {
83 bool SurfaceFactoryOzone::CanShowPrimaryPlaneAsOverlay() {