chromium/gpu/command_buffer/service/shared_image/ozone_image_gl_textures_holder.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_OZONE_IMAGE_GL_TEXTURES_HOLDER_H_
#define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_OZONE_IMAGE_GL_TEXTURES_HOLDER_H_

#include <memory>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_refptr.h"
#include "base/numerics/checked_math.h"
#include "gpu/gpu_gles2_export.h"
#include "ui/gfx/buffer_types.h"

namespace gfx {
class NativePixmap;
class Size;
}  // namespace gfx

namespace ui {
class NativePixmapGLBinding;
}  // namespace ui

namespace gpu {
class SharedImageBacking;

namespace gles2 {
class TexturePassthrough;
}  // namespace gles2

// Stores gles2::TexturePassthroughs for OzoneImageBacking.
class GPU_GLES2_EXPORT OzoneImageGLTexturesHolder
    : public base::RefCounted<OzoneImageGLTexturesHolder> {};

}  // namespace gpu

#endif  // GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_OZONE_IMAGE_GL_TEXTURES_HOLDER_H_