aw_content_gpu_client.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2016 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. #ifndef ANDROID_WEBVIEW_GPU_AW_CONTENT_GPU_CLIENT_H_
  5. #define ANDROID_WEBVIEW_GPU_AW_CONTENT_GPU_CLIENT_H_
  6. #include "base/callback.h"
  7. #include "content/public/gpu/content_gpu_client.h"
  8. namespace android_webview {
  9. class AwContentGpuClient : public content::ContentGpuClient {
  10. public:
  11. using GetSyncPointManagerCallback =
  12. base::RepeatingCallback<gpu::SyncPointManager*()>;
  13. using GetSharedImageManagerCallback =
  14. base::RepeatingCallback<gpu::SharedImageManager*()>;
  15. using GetVizCompositorThreadRunnerCallback =
  16. base::RepeatingCallback<viz::VizCompositorThreadRunner*()>;
  17. AwContentGpuClient(
  18. const GetSyncPointManagerCallback& sync_point_manager_callback,
  19. const GetSharedImageManagerCallback& shared_image_manager_callback,
  20. const GetVizCompositorThreadRunnerCallback&
  21. viz_compositor_thread_runner_callback);
  22. AwContentGpuClient(const AwContentGpuClient&) = delete;
  23. AwContentGpuClient& operator=(const AwContentGpuClient&) = delete;
  24. ~AwContentGpuClient() override;
  25. // content::ContentGpuClient implementation.
  26. gpu::SyncPointManager* GetSyncPointManager() override;
  27. gpu::SharedImageManager* GetSharedImageManager() override;
  28. viz::VizCompositorThreadRunner* GetVizCompositorThreadRunner() override;
  29. private:
  30. GetSyncPointManagerCallback sync_point_manager_callback_;
  31. GetSharedImageManagerCallback shared_image_manager_callback_;
  32. GetVizCompositorThreadRunnerCallback viz_compositor_thread_runner_callback_;
  33. };
  34. } // namespace android_webview
  35. #endif // ANDROID_WEBVIEW_GPU_AW_CONTENT_GPU_CLIENT_H_