1 // Copyright 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. 4 5 #ifndef UI_OZONE_PUBLIC_UI_THREAD_GPU_H_ 6 #define UI_OZONE_PUBLIC_UI_THREAD_GPU_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "ui/ozone/ozone_export.h" 10 11 namespace IPC { 12 class Sender; 13 } 14 15 namespace ui { 16 17 class UiThreadGpuForwardingSender; 18 19 // Helper class for applications that do GL on the UI thead. 20 // 21 // This sets up message forwarding between the "gpu" and "ui" threads, 22 // for applications in which they are both the same thread. 23 class OZONE_EXPORT UiThreadGpu { 24 public: 25 UiThreadGpu(); 26 virtual ~UiThreadGpu(); 27 28 // Start processing gpu messages. 29 bool Initialize(); 30 31 private: 32 scoped_ptr<UiThreadGpuForwardingSender> ui_sender_; 33 scoped_ptr<UiThreadGpuForwardingSender> gpu_sender_; 34 35 DISALLOW_COPY_AND_ASSIGN(UiThreadGpu); 36 }; 37 38 } // namespace ui 39 40 #endif // UI_OZONE_PUBLIC_UI_THREAD_GPU_H_ 41