Index: ui/gl/gl_image_dxgi.cc |
diff --git a/ui/gl/gl_image_dxgi.cc b/ui/gl/gl_image_dxgi.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2960a6ba10b47463754d811a7935f0e0c7fef599 |
--- /dev/null |
+++ b/ui/gl/gl_image_dxgi.cc |
@@ -0,0 +1,79 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ui/gl/gl_image_dxgi.h" |
+ |
+#include "third_party/khronos/EGL/egl.h" |
+#include "third_party/khronos/EGL/eglext.h" |
+#include "ui/gl/gl_bindings.h" |
+#include "ui/gl/gl_image.h" |
+#include "ui/gl/gl_surface_egl.h" |
+ |
+namespace gl { |
+ |
+GLImageDXGI::GLImageDXGI(const gfx::Size& size, EGLStreamKHR stream) |
+ : size_(size), stream_(stream) {} |
+ |
+// static |
+GLImageDXGI* GLImageDXGI::FromGLImage(GLImage* image) { |
+ if (!image || image->GetType() != Type::DXGI_IMAGE) |
+ return nullptr; |
+ return static_cast<GLImageDXGI*>(image); |
+} |
+ |
+gfx::Size GLImageDXGI::GetSize() { |
+ return size_; |
+} |
+ |
+unsigned GLImageDXGI::GetInternalFormat() { |
+ return GL_BGRA_EXT; |
+} |
+ |
+bool GLImageDXGI::BindTexImage(unsigned target) { |
+ return false; |
+} |
+ |
+void GLImageDXGI::ReleaseTexImage(unsigned target) {} |
+ |
+bool GLImageDXGI::CopyTexImage(unsigned target) { |
+ return false; |
+} |
+ |
+bool GLImageDXGI::CopyTexSubImage(unsigned target, |
+ const gfx::Point& offset, |
+ const gfx::Rect& rect) { |
+ return false; |
+} |
+ |
+bool GLImageDXGI::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, |
+ int z_order, |
+ gfx::OverlayTransform transform, |
+ const gfx::Rect& bounds_rect, |
+ const gfx::RectF& crop_rect) { |
+ return false; |
+} |
+ |
+void GLImageDXGI::Flush() {} |
+ |
+void GLImageDXGI::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, |
+ uint64_t process_tracing_id, |
+ const std::string& dump_name) {} |
+ |
+GLImage::Type GLImageDXGI::GetType() const { |
+ return Type::DXGI_IMAGE; |
+} |
+ |
+void GLImageDXGI::SetTexture( |
+ const base::win::ScopedComPtr<ID3D11Texture2D>& texture, |
+ size_t level) { |
+ texture_ = texture; |
+ level_ = level; |
+} |
+ |
+GLImageDXGI::~GLImageDXGI() { |
+ EGLDisplay egl_display = gl::GLSurfaceEGL::GetHardwareDisplay(); |
+ eglDestroyStreamKHR(egl_display, stream_); |
+} |
+ |
+} // namespace gl |