00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VRS_OPENGL_TEXTURE_IMAGETEXTUREARRAY1DGL_H
00018 #define VRS_OPENGL_TEXTURE_IMAGETEXTUREARRAY1DGL_H
00019
00020 #include "texturearray1dgl.h"
00021 #include <vrs/container/array.h>
00022
00023 namespace VRS
00024 {
00025 class Image;
00026
00028 class VRS_CORE_API ImageTextureArray1DGL : public TextureArray1DGL {
00029 public:
00030 ImageTextureArray1DGL(SO<Iterator<SO<Image> > > images,
00031 TextureGL::WrapMode wrap = TextureGL::REPEAT,
00032 TextureGL::FilterMode minFilter = TextureGL::TRILINEAR,
00033 TextureGL::FilterMode magFilter = TextureGL::LINEAR,
00034 GLfloat anisotropic = 1.0,
00035 const Matrix& matrix = Matrix(),
00036 const Color& borderColor = Color::black,
00037 GLenum internalFormat = GL_ZERO,
00038 bool unrefImageAfterBindung = false);
00049 bool operator==(const ImageTextureArray1DGL& other) const;
00050
00051 virtual void setImages(Iterator<SO<Image> > *newImages, GLenum internalFormat);
00052 virtual void setImage(int idx, Image* newImage);
00053 virtual SO<Iterator<SO<Image> > > getImages() const;
00054 virtual Image* getImage(int idx) const;
00055 virtual int getImageCount() const;
00058 virtual TextureGL::WrapMode getWrap() const;
00059
00060 virtual TextureGL::FilterMode getMinFilter() const;
00061
00062 virtual GLenum getInternalFormat() const;
00063
00064 void unrefImageAfterBinding() const;
00066
00067 VRS_TYPEINFO(ImageTextureArray1DGL, TextureArray1DGL);
00068 VRS_SERIALIZABLE(ImageTextureArray1DGL);
00069
00070 protected:
00071
00072 ImageTextureArray1DGL();
00073
00074 virtual void acceptChildren(std::vector<Visitable*>& appendChildrenHere) const;
00075
00076 friend class ImageTexture1DPainterGL;
00077
00078 private:
00079
00080 SO<Array<SO<Image> > > images_;
00081 mutable bool unrefImageAfterBinding_;
00082 mutable GLenum unrefImageAfterBinding_TextureTarget_;
00083 mutable GLenum unrefImageAfterBinding_InternalFormat_;
00084 mutable Matrix unrefImageAfterBinding_AdjustedMatrix_;
00085
00086 };
00087
00088 };
00089
00090 #endif // VRS_OPENGL_TEXTURE_IMAGETEXTUREARRAY1DGL_H