| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_EXTERNAL_TEXTURE_H_ |
| #define FLUTTER_SHELL_PLATFORM_WINDOWS_EXTERNAL_TEXTURE_H_ |
| |
| #include "flutter/shell/platform/embedder/embedder.h" |
| |
| #include <GLES2/gl2.h> |
| #include <GLES2/gl2ext.h> |
| |
| namespace flutter { |
| |
| // Abstract external texture. |
| class ExternalTexture { |
| public: |
| virtual ~ExternalTexture() = default; |
| |
| // Returns the unique id of this texture. |
| int64_t texture_id() const { return reinterpret_cast<int64_t>(this); }; |
| |
| // Attempts to populate the specified |opengl_texture| with texture details |
| // such as the name, width, height and the pixel format. |
| // Returns true on success. |
| virtual bool PopulateTexture(size_t width, |
| size_t height, |
| FlutterOpenGLTexture* opengl_texture) = 0; |
| }; |
| |
| } // namespace flutter |
| |
| #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_EXTERNAL_TEXTURE_H_ |