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 int SurfaceFactoryOzone::GetDrmFd() {
42 scoped_ptr
<SurfaceOzoneEGL
> SurfaceFactoryOzone::CreateEGLSurfaceForWidget(
43 gfx::AcceleratedWidget widget
) {
48 scoped_ptr
<SurfaceOzoneEGL
>
49 SurfaceFactoryOzone::CreateSurfacelessEGLSurfaceForWidget(
50 gfx::AcceleratedWidget widget
) {
55 scoped_ptr
<SurfaceOzoneCanvas
> SurfaceFactoryOzone::CreateCanvasForWidget(
56 gfx::AcceleratedWidget widget
) {
61 const int32
* SurfaceFactoryOzone::GetEGLSurfaceProperties(
62 const int32
* desired_attributes
) {
63 return desired_attributes
;
66 ui::OverlayCandidatesOzone
* SurfaceFactoryOzone::GetOverlayCandidates(
67 gfx::AcceleratedWidget w
) {
71 scoped_refptr
<ui::NativePixmap
> SurfaceFactoryOzone::CreateNativePixmap(
72 gfx::AcceleratedWidget widget
,
79 bool SurfaceFactoryOzone::ScheduleOverlayPlane(
80 gfx::AcceleratedWidget widget
,
82 gfx::OverlayTransform plane_transform
,
83 scoped_refptr
<NativePixmap
> buffer
,
84 const gfx::Rect
& display_bounds
,
85 const gfx::RectF
& crop_rect
) {
89 bool SurfaceFactoryOzone::CanShowPrimaryPlaneAsOverlay() {
93 bool SurfaceFactoryOzone::CanCreateNativePixmap(BufferUsage usage
) {