blob: a617efe902f5b3fd1958bae21763d2aa9fcd4de2 [file] [log] [blame]
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01001// 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.
4
5#include "ui/base/ozone/surface_factory_ozone.h"
6
Ben Murdochca12bfa2013-07-23 11:17:05 +01007#include <stdlib.h>
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +01008
9namespace ui {
10
Ben Murdocheb525c52013-07-10 11:40:50 +010011// static
12SurfaceFactoryOzone* SurfaceFactoryOzone::impl_ = NULL;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010013
Ben Murdochca12bfa2013-07-23 11:17:05 +010014class SurfaceFactoryOzoneStub : public SurfaceFactoryOzone {
15 public:
16 SurfaceFactoryOzoneStub() {}
17 virtual ~SurfaceFactoryOzoneStub() {}
18
19 virtual void InitializeHardware() OVERRIDE {}
20 virtual void ShutdownHardware() OVERRIDE {}
21 virtual gfx::AcceleratedWidget GetAcceleratedWidget() OVERRIDE { return 0; }
22 virtual gfx::AcceleratedWidget RealizeAcceleratedWidget(
23 gfx::AcceleratedWidget w) OVERRIDE {
24 return 0;
25 }
26 virtual bool LoadEGLGLES2Bindings() OVERRIDE { return true; }
27 virtual bool AttemptToResizeAcceleratedWidget(
28 gfx::AcceleratedWidget w,
29 const gfx::Rect& bounds) OVERRIDE {
30 return false;
31 }
32 virtual bool AcceleratedWidgetCanBeResized(
33 gfx::AcceleratedWidget w) OVERRIDE {
34 return false;
35 }
36 virtual gfx::VSyncProvider* GetVSyncProvider(
37 gfx::AcceleratedWidget w) OVERRIDE {
38 return NULL;
39 }
40};
41
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010042SurfaceFactoryOzone::SurfaceFactoryOzone() {
43}
44
45SurfaceFactoryOzone::~SurfaceFactoryOzone() {
46}
47
48SurfaceFactoryOzone* SurfaceFactoryOzone::GetInstance() {
Ben Murdocheb525c52013-07-10 11:40:50 +010049 CHECK(impl_) << "SurfaceFactoryOzone accessed before constructed";
50 return impl_;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010051}
52
53void SurfaceFactoryOzone::SetInstance(SurfaceFactoryOzone* impl) {
Ben Murdocheb525c52013-07-10 11:40:50 +010054 impl_ = impl;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010055}
56
57const char* SurfaceFactoryOzone::DefaultDisplaySpec() {
58 char* envvar = getenv("ASH_DISPLAY_SPEC");
59 if (envvar)
60 return envvar;
61 return "720x1280*2";
62}
63
Ben Murdochca12bfa2013-07-23 11:17:05 +010064// static
65SurfaceFactoryOzone* SurfaceFactoryOzone::CreateTestHelper() {
66 return new SurfaceFactoryOzoneStub;
67}
68
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010069} // namespace ui