Edit

kc3-lang/angle/src/libANGLE/renderer/null/TextureNULL.h

Branch :

  • Show log

    Commit

  • Author : Brandon Schade
    Date : 2020-10-07 19:26:01
    Hash : 1e494cae
    Message : Vulkan: Add support for EXT_copy_image Add support for GL_EXT_copy_image which allows image data transfer between image objects. This is implemented by using the vkCmdCopyImage API call. Bug: angleproject:3593 Test: dEQP-GLES31.functional.copy_image.* Change-Id: I30a34a8711b5d2e5834064d7453e03d6ec0df478 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2393955 Commit-Queue: Brandon Schade <b.schade@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

  • src/libANGLE/renderer/null/TextureNULL.h
  • //
    // Copyright 2016 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // TextureNULL.h:
    //    Defines the class interface for TextureNULL, implementing TextureImpl.
    //
    
    #ifndef LIBANGLE_RENDERER_NULL_TEXTURENULL_H_
    #define LIBANGLE_RENDERER_NULL_TEXTURENULL_H_
    
    #include "libANGLE/renderer/TextureImpl.h"
    
    namespace rx
    {
    
    class TextureNULL : public TextureImpl
    {
      public:
        TextureNULL(const gl::TextureState &state);
        ~TextureNULL() override;
    
        angle::Result setImage(const gl::Context *context,
                               const gl::ImageIndex &index,
                               GLenum internalFormat,
                               const gl::Extents &size,
                               GLenum format,
                               GLenum type,
                               const gl::PixelUnpackState &unpack,
                               gl::Buffer *unpackBuffer,
                               const uint8_t *pixels) override;
        angle::Result setSubImage(const gl::Context *context,
                                  const gl::ImageIndex &index,
                                  const gl::Box &area,
                                  GLenum format,
                                  GLenum type,
                                  const gl::PixelUnpackState &unpack,
                                  gl::Buffer *unpackBuffer,
                                  const uint8_t *pixels) override;
    
        angle::Result setCompressedImage(const gl::Context *context,
                                         const gl::ImageIndex &index,
                                         GLenum internalFormat,
                                         const gl::Extents &size,
                                         const gl::PixelUnpackState &unpack,
                                         size_t imageSize,
                                         const uint8_t *pixels) override;
        angle::Result setCompressedSubImage(const gl::Context *context,
                                            const gl::ImageIndex &index,
                                            const gl::Box &area,
                                            GLenum format,
                                            const gl::PixelUnpackState &unpack,
                                            size_t imageSize,
                                            const uint8_t *pixels) override;
    
        angle::Result copyImage(const gl::Context *context,
                                const gl::ImageIndex &index,
                                const gl::Rectangle &sourceArea,
                                GLenum internalFormat,
                                gl::Framebuffer *source) override;
        angle::Result copySubImage(const gl::Context *context,
                                   const gl::ImageIndex &index,
                                   const gl::Offset &destOffset,
                                   const gl::Rectangle &sourceArea,
                                   gl::Framebuffer *source) override;
    
        angle::Result copyTexture(const gl::Context *context,
                                  const gl::ImageIndex &index,
                                  GLenum internalFormat,
                                  GLenum type,
                                  GLint sourceLevel,
                                  bool unpackFlipY,
                                  bool unpackPremultiplyAlpha,
                                  bool unpackUnmultiplyAlpha,
                                  const gl::Texture *source) override;
        angle::Result copySubTexture(const gl::Context *context,
                                     const gl::ImageIndex &index,
                                     const gl::Offset &destOffset,
                                     GLint sourceLevel,
                                     const gl::Box &sourceBox,
                                     bool unpackFlipY,
                                     bool unpackPremultiplyAlpha,
                                     bool unpackUnmultiplyAlpha,
                                     const gl::Texture *source) override;
    
        angle::Result copyRenderbufferSubData(const gl::Context *context,
                                              const gl::Renderbuffer *srcBuffer,
                                              GLint srcLevel,
                                              GLint srcX,
                                              GLint srcY,
                                              GLint srcZ,
                                              GLint dstLevel,
                                              GLint dstX,
                                              GLint dstY,
                                              GLint dstZ,
                                              GLsizei srcWidth,
                                              GLsizei srcHeight,
                                              GLsizei srcDepth) override;
    
        angle::Result copyTextureSubData(const gl::Context *context,
                                         const gl::Texture *srcTexture,
                                         GLint srcLevel,
                                         GLint srcX,
                                         GLint srcY,
                                         GLint srcZ,
                                         GLint dstLevel,
                                         GLint dstX,
                                         GLint dstY,
                                         GLint dstZ,
                                         GLsizei srcWidth,
                                         GLsizei srcHeight,
                                         GLsizei srcDepth) override;
    
        angle::Result copyCompressedTexture(const gl::Context *context,
                                            const gl::Texture *source) override;
    
        angle::Result setStorage(const gl::Context *context,
                                 gl::TextureType type,
                                 size_t levels,
                                 GLenum internalFormat,
                                 const gl::Extents &size) override;
    
        angle::Result setStorageExternalMemory(const gl::Context *context,
                                               gl::TextureType type,
                                               size_t levels,
                                               GLenum internalFormat,
                                               const gl::Extents &size,
                                               gl::MemoryObject *memoryObject,
                                               GLuint64 offset,
                                               GLbitfield createFlags,
                                               GLbitfield usageFlags) override;
    
        angle::Result setEGLImageTarget(const gl::Context *context,
                                        gl::TextureType type,
                                        egl::Image *image) override;
    
        angle::Result setImageExternal(const gl::Context *context,
                                       gl::TextureType type,
                                       egl::Stream *stream,
                                       const egl::Stream::GLTextureDescription &desc) override;
    
        angle::Result generateMipmap(const gl::Context *context) override;
    
        angle::Result setBaseLevel(const gl::Context *context, GLuint baseLevel) override;
    
        angle::Result bindTexImage(const gl::Context *context, egl::Surface *surface) override;
        angle::Result releaseTexImage(const gl::Context *context) override;
    
        angle::Result syncState(const gl::Context *context,
                                const gl::Texture::DirtyBits &dirtyBits,
                                gl::Command source) override;
    
        angle::Result setStorageMultisample(const gl::Context *context,
                                            gl::TextureType type,
                                            GLsizei samples,
                                            GLint internalformat,
                                            const gl::Extents &size,
                                            bool fixedSampleLocations) override;
    
        angle::Result initializeContents(const gl::Context *context,
                                         const gl::ImageIndex &imageIndex) override;
    };
    
    }  // namespace rx
    
    #endif  // LIBANGLE_RENDERER_NULL_TEXTURENULL_H_