1 // 2 // Copyright 2016 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // TextureNULL.h: 7 // Defines the class interface for TextureNULL, implementing TextureImpl. 8 // 9 10 #ifndef LIBANGLE_RENDERER_NULL_TEXTURENULL_H_ 11 #define LIBANGLE_RENDERER_NULL_TEXTURENULL_H_ 12 13 #include "libANGLE/renderer/TextureImpl.h" 14 15 namespace rx 16 { 17 18 class TextureNULL : public TextureImpl 19 { 20 public: 21 TextureNULL(const gl::TextureState &state); 22 ~TextureNULL() override; 23 24 gl::Error setImage(GLenum target, 25 size_t level, 26 GLenum internalFormat, 27 const gl::Extents &size, 28 GLenum format, 29 GLenum type, 30 const gl::PixelUnpackState &unpack, 31 const uint8_t *pixels) override; 32 gl::Error setSubImage(GLenum target, 33 size_t level, 34 const gl::Box &area, 35 GLenum format, 36 GLenum type, 37 const gl::PixelUnpackState &unpack, 38 const uint8_t *pixels) override; 39 40 gl::Error setCompressedImage(GLenum target, 41 size_t level, 42 GLenum internalFormat, 43 const gl::Extents &size, 44 const gl::PixelUnpackState &unpack, 45 size_t imageSize, 46 const uint8_t *pixels) override; 47 gl::Error setCompressedSubImage(GLenum target, 48 size_t level, 49 const gl::Box &area, 50 GLenum format, 51 const gl::PixelUnpackState &unpack, 52 size_t imageSize, 53 const uint8_t *pixels) override; 54 55 gl::Error copyImage(GLenum target, 56 size_t level, 57 const gl::Rectangle &sourceArea, 58 GLenum internalFormat, 59 const gl::Framebuffer *source) override; 60 gl::Error copySubImage(GLenum target, 61 size_t level, 62 const gl::Offset &destOffset, 63 const gl::Rectangle &sourceArea, 64 const gl::Framebuffer *source) override; 65 66 gl::Error setStorage(GLenum target, 67 size_t levels, 68 GLenum internalFormat, 69 const gl::Extents &size) override; 70 71 gl::Error setEGLImageTarget(GLenum target, egl::Image *image) override; 72 73 gl::Error setImageExternal(GLenum target, 74 egl::Stream *stream, 75 const egl::Stream::GLTextureDescription &desc) override; 76 77 gl::Error generateMipmap() override; 78 79 void setBaseLevel(GLuint baseLevel) override; 80 81 void bindTexImage(egl::Surface *surface) override; 82 void releaseTexImage() override; 83 84 void syncState(const gl::Texture::DirtyBits &dirtyBits) override; 85 }; 86 87 } // namespace rx 88 89 #endif // LIBANGLE_RENDERER_NULL_TEXTURENULL_H_ 90