Edit

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

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2016-06-08 16:14:36
    Hash : 22416868
    Message : Add dirty bits for internal texture state. Synchronize TextureGL internal state using the dirty bits. TexturesBenchmark scores: Before: 5051 After: 7639 Diff: +51.2% BUG=angleproject:1386 Change-Id: Id04aef778a47175d1a284564495a646045855b4b Reviewed-on: https://chromium-review.googlesource.com/393866 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@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;
    
        gl::Error setImage(GLenum target,
                           size_t level,
                           GLenum internalFormat,
                           const gl::Extents &size,
                           GLenum format,
                           GLenum type,
                           const gl::PixelUnpackState &unpack,
                           const uint8_t *pixels) override;
        gl::Error setSubImage(GLenum target,
                              size_t level,
                              const gl::Box &area,
                              GLenum format,
                              GLenum type,
                              const gl::PixelUnpackState &unpack,
                              const uint8_t *pixels) override;
    
        gl::Error setCompressedImage(GLenum target,
                                     size_t level,
                                     GLenum internalFormat,
                                     const gl::Extents &size,
                                     const gl::PixelUnpackState &unpack,
                                     size_t imageSize,
                                     const uint8_t *pixels) override;
        gl::Error setCompressedSubImage(GLenum target,
                                        size_t level,
                                        const gl::Box &area,
                                        GLenum format,
                                        const gl::PixelUnpackState &unpack,
                                        size_t imageSize,
                                        const uint8_t *pixels) override;
    
        gl::Error copyImage(GLenum target,
                            size_t level,
                            const gl::Rectangle &sourceArea,
                            GLenum internalFormat,
                            const gl::Framebuffer *source) override;
        gl::Error copySubImage(GLenum target,
                               size_t level,
                               const gl::Offset &destOffset,
                               const gl::Rectangle &sourceArea,
                               const gl::Framebuffer *source) override;
    
        gl::Error setStorage(GLenum target,
                             size_t levels,
                             GLenum internalFormat,
                             const gl::Extents &size) override;
    
        gl::Error setEGLImageTarget(GLenum target, egl::Image *image) override;
    
        gl::Error setImageExternal(GLenum target,
                                   egl::Stream *stream,
                                   const egl::Stream::GLTextureDescription &desc) override;
    
        gl::Error generateMipmap() override;
    
        void setBaseLevel(GLuint baseLevel) override;
    
        void bindTexImage(egl::Surface *surface) override;
        void releaseTexImage() override;
    
        void syncState(const gl::Texture::DirtyBits &dirtyBits) override;
    };
    
    }  // namespace rx
    
    #endif  // LIBANGLE_RENDERER_NULL_TEXTURENULL_H_