1 // Copyright (c) 2014 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 "content/common/gpu/null_transport_surface.h"
7 #include "base/command_line.h"
8 #include "content/common/gpu/gpu_channel.h"
9 #include "content/common/gpu/gpu_channel_manager.h"
10 #include "content/common/gpu/gpu_command_buffer_stub.h"
11 #include "content/public/common/content_switches.h"
12 #include "gpu/command_buffer/service/context_group.h"
16 NullTransportSurface::NullTransportSurface(
17 GpuChannelManager
* manager
,
18 GpuCommandBufferStub
* stub
,
19 const gfx::GLSurfaceHandle
& handle
)
20 : PassThroughImageTransportSurface(manager
,
22 manager
->GetDefaultOffscreenSurface()),
23 parent_client_id_(handle
.parent_client_id
) {
26 NullTransportSurface::~NullTransportSurface() {
29 bool NullTransportSurface::Initialize() {
33 if (!PassThroughImageTransportSurface::Initialize())
36 GpuChannel
* parent_channel
=
37 GetHelper()->manager()->LookupChannel(parent_client_id_
);
39 const base::CommandLine
* command_line
=
40 base::CommandLine::ForCurrentProcess();
41 if (command_line
->HasSwitch(switches::kUIPrioritizeInGpuProcess
))
42 GetHelper()->SetPreemptByFlag(parent_channel
->GetPreemptionFlag());
48 void NullTransportSurface::Destroy() {
49 // Do not destroy |surface_| since we use the shared offscreen surface.
52 gfx::SwapResult
NullTransportSurface::SwapBuffers() {
54 return gfx::SwapResult::SWAP_FAILED
;
57 gfx::SwapResult
NullTransportSurface::PostSubBuffer(int x
,
62 return gfx::SwapResult::SWAP_FAILED
;
65 void NullTransportSurface::SendVSyncUpdateIfAvailable() {
69 bool NullTransportSurface::OnMakeCurrent(gfx::GLContext
* context
) {
70 // Override PassThroughImageTransportSurface default behavior which
71 // sets the swap interval.
75 } // namespace content