190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file. 490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 56d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "ui/ozone/public/surface_factory_ozone.h" 690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 7ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include <stdlib.h> 890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "base/command_line.h" 106d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "ui/ozone/public/surface_ozone_canvas.h" 116d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "ui/ozone/public/surface_ozone_egl.h" 128bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)namespace ui { 1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// static 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochSurfaceFactoryOzone* SurfaceFactoryOzone::impl_ = NULL; 1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)SurfaceFactoryOzone::SurfaceFactoryOzone() { 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CHECK(!impl_) << "There should only be a single SurfaceFactoryOzone."; 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) impl_ = this; 2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)SurfaceFactoryOzone::~SurfaceFactoryOzone() { 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CHECK_EQ(impl_, this); 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) impl_ = NULL; 2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)SurfaceFactoryOzone* SurfaceFactoryOzone::GetInstance() { 290f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) CHECK(impl_) << "No SurfaceFactoryOzone implementation set."; 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch return impl_; 3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)intptr_t SurfaceFactoryOzone::GetNativeDisplay() { 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return 0; 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochscoped_ptr<SurfaceOzoneEGL> SurfaceFactoryOzone::CreateEGLSurfaceForWidget( 386d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) gfx::AcceleratedWidget widget) { 39e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch NOTIMPLEMENTED(); 40c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch return scoped_ptr<SurfaceOzoneEGL>(); 41c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 42c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 43c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochscoped_ptr<SurfaceOzoneCanvas> SurfaceFactoryOzone::CreateCanvasForWidget( 446d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) gfx::AcceleratedWidget widget) { 45c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch NOTIMPLEMENTED(); 46c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch return scoped_ptr<SurfaceOzoneCanvas>(); 471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)const int32* SurfaceFactoryOzone::GetEGLSurfaceProperties( 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const int32* desired_attributes) { 514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) return desired_attributes; 524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 546d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)ui::OverlayCandidatesOzone* SurfaceFactoryOzone::GetOverlayCandidates( 55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) gfx::AcceleratedWidget w) { 56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return NULL; 57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 59c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochvoid SurfaceFactoryOzone::ScheduleOverlayPlane( 60c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch gfx::AcceleratedWidget w, 61c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch int plane_z_order, 62c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch gfx::OverlayTransform plane_transform, 636d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) ui::NativeBufferOzone buffer, 64c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const gfx::Rect& display_bounds, 65c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch gfx::RectF crop_rect) { 66a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) NOTREACHED(); 67a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 696d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)ui::NativeBufferOzone SurfaceFactoryOzone::CreateNativeBuffer( 70a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) gfx::Size size, 71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) BufferFormat format) { 72a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return 0; 73a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 756d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} // namespace ui 76