Edit

kc3-lang/angle/src/libANGLE/renderer/gl/TextureGL.h

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2015-05-20 14:06:13
    Hash : 8509d86e
    Message : Pipe the imageSize parameter from the entry point to avoid recomputation. BUG=angleproject:884 Change-Id: Ic4d5bdc5b65ebcb8c57b960e84708e945db0276a Reviewed-on: https://chromium-review.googlesource.com/272422 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>

  • src/libANGLE/renderer/gl/TextureGL.h
  • //
    // Copyright 2015 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.
    //
    
    // TextureGL.h: Defines the class interface for TextureGL.
    
    #ifndef LIBANGLE_RENDERER_GL_TEXTUREGL_H_
    #define LIBANGLE_RENDERER_GL_TEXTUREGL_H_
    
    #include "libANGLE/angletypes.h"
    #include "libANGLE/renderer/TextureImpl.h"
    
    namespace rx
    {
    
    class FunctionsGL;
    class StateManagerGL;
    
    class TextureGL : public TextureImpl
    {
      public:
        TextureGL(GLenum type, const FunctionsGL *functions, StateManagerGL *stateManager);
        ~TextureGL() override;
    
        void setUsage(GLenum usage) 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 generateMipmaps(const gl::SamplerState &samplerState) override;
    
        void bindTexImage(egl::Surface *surface) override;
        void releaseTexImage() override;
    
        void syncSamplerState(const gl::SamplerState &samplerState) const;
        GLuint getTextureID() const;
    
        gl::Error getAttachmentRenderTarget(const gl::FramebufferAttachment::Target &target,
                                            FramebufferAttachmentRenderTarget **rtOut) override
        {
            return gl::Error(GL_OUT_OF_MEMORY, "Not supported on OpenGL");
        }
    
      private:
        GLenum mTextureType;
    
        const FunctionsGL *mFunctions;
        StateManagerGL *mStateManager;
    
        mutable gl::SamplerState mAppliedSamplerState;
        GLuint mTextureID;
    };
    
    }
    
    #endif // LIBANGLE_RENDERER_GL_TEXTUREGL_H_