| OLD | NEW |
| (Empty) |
| 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_PLATFORM_DRI_GBM_SURFACE_H_ | |
| 6 #define UI_OZONE_PLATFORM_DRI_GBM_SURFACE_H_ | |
| 7 | |
| 8 #include "base/macros.h" | |
| 9 #include "ui/gfx/geometry/size.h" | |
| 10 #include "ui/ozone/platform/dri/gbm_surfaceless.h" | |
| 11 #include "ui/ozone/public/surface_ozone_egl.h" | |
| 12 | |
| 13 struct gbm_bo; | |
| 14 struct gbm_device; | |
| 15 struct gbm_surface; | |
| 16 | |
| 17 namespace ui { | |
| 18 | |
| 19 class DriBuffer; | |
| 20 class DriWrapper; | |
| 21 class DriWindowDelegate; | |
| 22 | |
| 23 // Extends the GBM surfaceless functionality and adds an implicit surface for | |
| 24 // the primary plane. Arbitrary buffers can still be allocated and displayed as | |
| 25 // overlay planes, however the primary plane is associated with the native | |
| 26 // surface and is updated via an EGLSurface. | |
| 27 class GbmSurface : public GbmSurfaceless { | |
| 28 public: | |
| 29 GbmSurface(DriWindowDelegate* window_delegate, | |
| 30 gbm_device* device, | |
| 31 DriWrapper* dri); | |
| 32 virtual ~GbmSurface(); | |
| 33 | |
| 34 bool Initialize(); | |
| 35 | |
| 36 // GbmSurfaceless: | |
| 37 virtual intptr_t GetNativeWindow() override; | |
| 38 virtual bool ResizeNativeWindow(const gfx::Size& viewport_size) override; | |
| 39 virtual bool OnSwapBuffers() override; | |
| 40 | |
| 41 private: | |
| 42 gbm_device* gbm_device_; | |
| 43 | |
| 44 DriWrapper* dri_; | |
| 45 | |
| 46 // The native GBM surface. In EGL this represents the EGLNativeWindowType. | |
| 47 gbm_surface* native_surface_; | |
| 48 | |
| 49 // Buffer currently used for scanout. | |
| 50 gbm_bo* current_buffer_; | |
| 51 | |
| 52 gfx::Size size_; | |
| 53 | |
| 54 DISALLOW_COPY_AND_ASSIGN(GbmSurface); | |
| 55 }; | |
| 56 | |
| 57 } // namespace ui | |
| 58 | |
| 59 #endif // UI_OZONE_PLATFORM_DRI_GBM_SURFACE_H_ | |
| OLD | NEW |