#ifndef UI_OZONE_PLATFORM_DRI_GPU_PLATFORM_SUPPORT_GBM_H_
#define UI_OZONE_PLATFORM_DRI_GPU_PLATFORM_SUPPORT_GBM_H_
+#include "base/containers/scoped_ptr_hash_map.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "ui/gfx/native_widget_types.h"
namespace gfx {
class Point;
+class Rect;
}
namespace ui {
class DriSurfaceFactory;
+class DriWindowDelegate;
+class DriWindowDelegateManager;
+class ScreenManager;
class GpuPlatformSupportGbm : public GpuPlatformSupport {
public:
- GpuPlatformSupportGbm(DriSurfaceFactory* dri);
+ GpuPlatformSupportGbm(DriSurfaceFactory* dri,
+ DriWindowDelegateManager* window_manager,
+ ScreenManager* screen_manager);
virtual ~GpuPlatformSupportGbm();
void AddHandler(scoped_ptr<GpuPlatformSupport> handler);
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
private:
- IPC::Sender* sender_;
-
+ void OnCreateWindowDelegate(gfx::AcceleratedWidget widget);
+ void OnDestroyWindowDelegate(gfx::AcceleratedWidget widget);
+ void OnWindowBoundsChanged(gfx::AcceleratedWidget widget,
+ const gfx::Rect& bounds);
void OnCursorSet(gfx::AcceleratedWidget widget,
- const SkBitmap& bitmap,
- const gfx::Point& location);
+ const std::vector<SkBitmap>& bitmaps,
+ const gfx::Point& location,
+ int frame_delay_ms);
void OnCursorMove(gfx::AcceleratedWidget widget, const gfx::Point& location);
+ IPC::Sender* sender_;
DriSurfaceFactory* dri_;
+ DriWindowDelegateManager* window_manager_;
+ ScreenManager* screen_manager_;
ScopedVector<GpuPlatformSupport> handlers_;
};