Browse Source

Added BufferImage&& overloads to *Texture*::set*Image() functions.

The point is that we accept everything except const BufferImage&, as the
buffer needs to be bound, which is not an constant operation, as it
modifies internal GL state tracker.
pull/51/head
Vladimír Vondruš 13 years ago
parent
commit
f3761b601d
  1. 11
      src/CubeMapTexture.h
  2. 10
      src/CubeMapTextureArray.h
  3. 10
      src/Texture.h

11
src/CubeMapTexture.h

@ -182,6 +182,11 @@ class CubeMapTexture: public AbstractTexture {
DataHelper<2>::setImage(this, GLenum(coordinate), level, internalFormat, image); DataHelper<2>::setImage(this, GLenum(coordinate), level, internalFormat, image);
return *this; return *this;
} }
/** @overload */
CubeMapTexture& setImage(Coordinate coordinate, Int level, TextureFormat internalFormat, BufferImage2D&& image) {
return setImage(coordinate, level, internalFormat, image);
}
#endif #endif
/** /**
@ -206,6 +211,12 @@ class CubeMapTexture: public AbstractTexture {
DataHelper<2>::setSubImage(this, GLenum(coordinate), level, offset, image); DataHelper<2>::setSubImage(this, GLenum(coordinate), level, offset, image);
return *this; return *this;
} }
/** @overload */
CubeMapTexture& setSubImage(Coordinate coordinate, Int level, const Vector2i& offset, BufferImage2D&& image) {
DataHelper<2>::setSubImage(this, GLenum(coordinate), level, offset, image);
return *this;
}
#endif #endif
/** /**

10
src/CubeMapTextureArray.h

@ -185,6 +185,11 @@ class CubeMapTextureArray: public AbstractTexture {
return *this; return *this;
} }
/** @overload */
CubeMapTextureArray& setImage(Int level, TextureFormat internalFormat, BufferImage3D&& image) {
return setImage(level, internalFormat, image);
}
/** /**
* @brief Set texture image 3D subdata * @brief Set texture image 3D subdata
* @param level Mip level * @param level Mip level
@ -209,6 +214,11 @@ class CubeMapTextureArray: public AbstractTexture {
return *this; return *this;
} }
/** @overload */
CubeMapTextureArray& setSubImage(Int level, const Vector3i& offset, BufferImage3D&& image) {
return setSubImage(level, offset, image);
}
/** /**
* @brief Invalidate texture subimage * @brief Invalidate texture subimage
* @param level Mip level * @param level Mip level

10
src/Texture.h

@ -376,6 +376,11 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
DataHelper<Dimensions>::setImage(this, _target, level, internalFormat, image); DataHelper<Dimensions>::setImage(this, _target, level, internalFormat, image);
return *this; return *this;
} }
/** @overload */
Texture<Dimensions>& setImage(Int level, TextureFormat internalFormat, BufferImage<dimensions>&& image) {
return setImage(level, internalFormat, image);
}
#endif #endif
/** /**
@ -406,6 +411,11 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
DataHelper<Dimensions>::setSubImage(this, _target, level, offset, image); DataHelper<Dimensions>::setSubImage(this, _target, level, offset, image);
return *this; return *this;
} }
/** @overload */
Texture<Dimensions>& setSubImage(Int level, const typename DimensionTraits<Dimensions, Int>::VectorType& offset, BufferImage<dimensions>&& image) {
return setSubImage(level, offset, image);
}
#endif #endif
/** /**

Loading…
Cancel
Save