blob: f082e7dc4169a57856163e2298c1adf275325c88 [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 }
Ben Murdochca12bfa2013-07-23 11:17:05 +010032 virtual gfx::VSyncProvider* GetVSyncProvider(
33 gfx::AcceleratedWidget w) OVERRIDE {
34 return NULL;
35 }
36};
37
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010038SurfaceFactoryOzone::SurfaceFactoryOzone() {
39}
40
41SurfaceFactoryOzone::~SurfaceFactoryOzone() {
42}
43
44SurfaceFactoryOzone* SurfaceFactoryOzone::GetInstance() {
Ben Murdocheb525c52013-07-10 11:40:50 +010045 CHECK(impl_) << "SurfaceFactoryOzone accessed before constructed";
46 return impl_;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010047}
48
49void SurfaceFactoryOzone::SetInstance(SurfaceFactoryOzone* impl) {
Ben Murdocheb525c52013-07-10 11:40:50 +010050 impl_ = impl;
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010051}
52
53const char* SurfaceFactoryOzone::DefaultDisplaySpec() {
54 char* envvar = getenv("ASH_DISPLAY_SPEC");
55 if (envvar)
56 return envvar;
57 return "720x1280*2";
58}
59
Ben Murdochca12bfa2013-07-23 11:17:05 +010060// static
61SurfaceFactoryOzone* SurfaceFactoryOzone::CreateTestHelper() {
62 return new SurfaceFactoryOzoneStub;
63}
64
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010065} // namespace ui