blob: 19f08b2a1e11eae8cde69cd5ab740104f820cbfd [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_VIZ_HOST_GPU_CLIENT_DELEGATE_H_
#define COMPONENTS_VIZ_HOST_GPU_CLIENT_DELEGATE_H_
#include "base/callback_forward.h"
#include "mojo/public/cpp/system/message_pipe.h"
namespace viz {
class GpuHostImpl;
class HostGpuMemoryBufferManager;
// Delegate interface that GpuClient uses to get the current GpuHost and/or
// GpuMemoryBufferManager instances. These functions are guaranteed to be called
// on the thread corresponding to GpuClient's task runner.
class GpuClientDelegate {
public:
virtual ~GpuClientDelegate() {}
// Returns the current instance of GpuHostImpl. If GPU service is not running,
// tries to launch it. If the launch is unsuccessful, returns nullptr.
virtual GpuHostImpl* EnsureGpuHost() = 0;
// Returns the current HostGpuMemoryBufferManager instance.
virtual HostGpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0;
};
} // namespace viz
#endif // COMPONENTS_VIZ_HOST_GPU_CLIENT_DELEGATE_H_