Index: gpu/vulkan/vulkan_surface.h |
diff --git a/gpu/vulkan/vulkan_surface.h b/gpu/vulkan/vulkan_surface.h |
index 3dfb9280026390bdfd86c9276a35041454a7f13a..cb0baad43d77293aa6bfeb27c74db49def8c2160 100644 |
--- a/gpu/vulkan/vulkan_surface.h |
+++ b/gpu/vulkan/vulkan_surface.h |
@@ -5,18 +5,49 @@ |
#ifndef GPU_VULKAN_VULKAN_SURFACE_H_ |
#define GPU_VULKAN_VULKAN_SURFACE_H_ |
+#include "base/memory/scoped_ptr.h" |
#include "gpu/vulkan/vulkan_export.h" |
+#include "ui/gfx/geometry/size.h" |
+#include "ui/gfx/native_widget_types.h" |
+#include "ui/gfx/swap_result.h" |
namespace gpu { |
+class VulkanSwapChain; |
+ |
class VULKAN_EXPORT VulkanSurface { |
public: |
- VulkanSurface(); |
- |
static bool InitializeOneOff(); |
+ // Minimum bit depth of surface. |
+ enum Format { |
+ FORMAT_BGRA8888, |
+ FORMAT_RGB565, |
+ |
+ NUM_SURFACE_FORMATS, |
+ DEFAULT_SURFACE_FORMAT = FORMAT_BGRA8888 |
+ }; |
+ |
+ virtual ~VulkanSurface() = 0; |
+ |
+ virtual bool Initialize(VulkanSurface::Format format) = 0; |
+ virtual void Destroy() = 0; |
+ |
+ virtual gfx::SwapResult SwapBuffers() = 0; |
+ |
+ virtual VulkanSwapChain* GetSwapChain() = 0; |
+ |
+ virtual void Finish() = 0; |
+ |
+ // Create a surface that render directlys into a surface. |
+ static scoped_ptr<VulkanSurface> CreateViewSurface( |
+ gfx::AcceleratedWidget window); |
+ |
protected: |
- virtual ~VulkanSurface(); |
+ VulkanSurface(); |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(VulkanSurface); |
}; |
} // namespace gpu |