blob: 26e9287edd43d6e6b62b43553befa6f6b100c9fd [file] [log] [blame]
// 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_