Browse Source

Shortened (texture) filtering types to comply with OpenGL naming.

The documentation already used them, so why complicate things further.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
7a99a4b326
  1. 9
      src/AbstractFramebuffer.h
  2. 14
      src/AbstractTexture.cpp
  3. 14
      src/AbstractTexture.h
  4. 2
      src/CubeMapTexture.h
  5. 2
      src/CubeMapTextureArray.h
  6. 8
      src/Text/Font.cpp
  7. 2
      src/Texture.h

9
src/AbstractFramebuffer.h

@ -97,8 +97,8 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* @see blit()
*/
enum class BlitFilter: GLenum {
NearestNeighbor = GL_NEAREST, /**< Nearest neighbor filtering */
LinearInterpolation = GL_LINEAR /**< Linear interpolation filtering */
Nearest = GL_NEAREST, /**< Nearest neighbor filtering */
Linear = GL_LINEAR /**< Linear interpolation filtering */
};
/**
@ -166,14 +166,13 @@ class MAGNUM_EXPORT AbstractFramebuffer {
* Convenience alternative to above function when source rectangle is
* the same as destination rectangle. As the image is copied
* pixel-by-pixel, no interpolation is needed and thus
* @ref BlitFilter "BlitFilter::NearestNeighbor" filtering is used by
* default.
* @ref BlitFilter "BlitFilter::Nearest" filtering is used by default.
* @see @fn_gl{BlitFramebuffer}
* @requires_gl30 %Extension @extension{EXT,framebuffer_blit}
* @requires_gles30 %Extension @es_extension{ANGLE,framebuffer_blit}
*/
inline static void blit(AbstractFramebuffer& source, AbstractFramebuffer& destination, const Rectanglei& rectangle, BlitMask mask) {
blit(source, destination, rectangle, rectangle, mask, BlitFilter::NearestNeighbor);
blit(source, destination, rectangle, rectangle, mask, BlitFilter::Nearest);
}
explicit AbstractFramebuffer() = default;

14
src/AbstractTexture.cpp

@ -73,12 +73,12 @@ AbstractTexture::InvalidateSubImplementation AbstractTexture::invalidateSubImple
thus testing only on AbstractTexture. */
#define filter_or(filter, mipmap) \
(static_cast<GLint>(AbstractTexture::Filter::filter)|static_cast<GLint>(AbstractTexture::Mipmap::mipmap))
static_assert((filter_or(NearestNeighbor, BaseLevel) == GL_NEAREST) &&
(filter_or(NearestNeighbor, NearestLevel) == GL_NEAREST_MIPMAP_NEAREST) &&
(filter_or(NearestNeighbor, LinearInterpolation) == GL_NEAREST_MIPMAP_LINEAR) &&
(filter_or(LinearInterpolation, BaseLevel) == GL_LINEAR) &&
(filter_or(LinearInterpolation, NearestLevel) == GL_LINEAR_MIPMAP_NEAREST) &&
(filter_or(LinearInterpolation, LinearInterpolation) == GL_LINEAR_MIPMAP_LINEAR),
static_assert((filter_or(Nearest, Base) == GL_NEAREST) &&
(filter_or(Nearest, Nearest) == GL_NEAREST_MIPMAP_NEAREST) &&
(filter_or(Nearest, Linear) == GL_NEAREST_MIPMAP_LINEAR) &&
(filter_or(Linear, Base) == GL_LINEAR) &&
(filter_or(Linear, Nearest) == GL_LINEAR_MIPMAP_NEAREST) &&
(filter_or(Linear, Linear) == GL_LINEAR_MIPMAP_LINEAR),
"Unsupported constants for GL texture filtering");
#undef filter_or
#endif
@ -159,7 +159,7 @@ void AbstractTexture::bindImplementationDSA(GLint layer) {
AbstractTexture* AbstractTexture::setMinificationFilter(Filter filter, Mipmap mipmap) {
#ifndef MAGNUM_TARGET_GLES
CORRADE_ASSERT(_target != GL_TEXTURE_RECTANGLE || mipmap == Mipmap::BaseLevel, "AbstractTexture: rectangle textures cannot have mipmaps", this);
CORRADE_ASSERT(_target != GL_TEXTURE_RECTANGLE || mipmap == Mipmap::Base, "AbstractTexture: rectangle textures cannot have mipmaps", this);
#endif
(this->*parameteriImplementation)(GL_TEXTURE_MIN_FILTER,

14
src/AbstractTexture.h

@ -83,7 +83,7 @@ class MAGNUM_EXPORT AbstractTexture {
* @see setMagnificationFilter() and setMinificationFilter()
*/
enum class Filter: GLint {
NearestNeighbor = GL_NEAREST, /**< Nearest neighbor filtering */
Nearest = GL_NEAREST, /**< Nearest neighbor filtering */
/**
* Linear interpolation filtering.
@ -94,7 +94,7 @@ class MAGNUM_EXPORT AbstractTexture {
* / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float"
* in OpenGL ES 2.0.
*/
LinearInterpolation = GL_LINEAR
Linear = GL_LINEAR
};
/**
@ -103,12 +103,12 @@ class MAGNUM_EXPORT AbstractTexture {
* @see setMinificationFilter()
*/
enum class Mipmap: GLint {
BaseLevel = GL_NEAREST & ~GL_NEAREST, /**< Select base mip level */
Base = GL_NEAREST & ~GL_NEAREST, /**< Select base mip level */
/**
* Select nearest mip level. **Unavailable on rectangle textures.**
*/
NearestLevel = GL_NEAREST_MIPMAP_NEAREST & ~GL_NEAREST,
Nearest = GL_NEAREST_MIPMAP_NEAREST & ~GL_NEAREST,
/**
* Linear interpolation of nearest mip levels. **Unavailable on
@ -120,7 +120,7 @@ class MAGNUM_EXPORT AbstractTexture {
* / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float"
* in OpenGL ES 2.0.
*/
LinearInterpolation = GL_NEAREST_MIPMAP_LINEAR & ~GL_NEAREST
Linear = GL_NEAREST_MIPMAP_LINEAR & ~GL_NEAREST
};
/**
@ -1043,7 +1043,7 @@ class MAGNUM_EXPORT AbstractTexture {
* Sets filter used when the object pixel size is smaller than the
* texture size. If @extension{EXT,direct_state_access} is not
* available, the texture is bound to some layer before the operation.
* Initial value is (@ref AbstractTexture::Filter "Filter::NearestNeighbor",
* Initial value is (@ref AbstractTexture::Filter "Filter::Nearest",
* @ref AbstractTexture::Mipmap "Mipmap::Linear").
* @attention For rectangle textures only some modes are supported,
* see @ref AbstractTexture::Filter "Filter" and
@ -1053,7 +1053,7 @@ class MAGNUM_EXPORT AbstractTexture {
* or @fn_gl_extension{TextureParameter,EXT,direct_state_access}
* with @def_gl{TEXTURE_MIN_FILTER}
*/
AbstractTexture* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::BaseLevel);
AbstractTexture* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::Base);
/**
* @brief Set magnification filter

2
src/CubeMapTexture.h

@ -184,7 +184,7 @@ class CubeMapTexture: public AbstractTexture {
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
inline CubeMapTexture* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::BaseLevel) {
inline CubeMapTexture* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::Base) {
AbstractTexture::setMinificationFilter(filter, mipmap);
return this;
}

2
src/CubeMapTextureArray.h

@ -200,7 +200,7 @@ class CubeMapTextureArray: public AbstractTexture {
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
inline CubeMapTextureArray* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::BaseLevel) {
inline CubeMapTextureArray* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::Base) {
AbstractTexture::setMinificationFilter(filter, mipmap);
return this;
}

8
src/Text/Font.cpp

@ -58,8 +58,8 @@ void Font::finishConstruction() {
/* Set up the texture */
_texture.setWrapping(Texture2D::Wrapping::ClampToEdge)
->setMinificationFilter(Texture2D::Filter::LinearInterpolation)
->setMagnificationFilter(Texture2D::Filter::LinearInterpolation);
->setMinificationFilter(Texture2D::Filter::Linear)
->setMagnificationFilter(Texture2D::Filter::Linear);
}
void Font::prerenderInternal(const std::string& characters, const Vector2i& atlasSize, const Int radius, Texture2D* output) {
@ -139,8 +139,8 @@ void Font::prerenderDistanceField(const std::string& characters, const Vector2i&
/* Render input texture */
Texture2D input;
input.setWrapping(Texture2D::Wrapping::ClampToEdge)
->setMinificationFilter(Texture2D::Filter::LinearInterpolation)
->setMagnificationFilter(Texture2D::Filter::LinearInterpolation);
->setMinificationFilter(Texture2D::Filter::Linear)
->setMagnificationFilter(Texture2D::Filter::Linear);
prerenderInternal(characters, atlasSize, radius, &input);
/* Create distance field from input texture */

2
src/Texture.h

@ -314,7 +314,7 @@ template<UnsignedInt dimensions> class Texture: public AbstractTexture {
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
inline Texture<Dimensions>* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::BaseLevel) {
inline Texture<Dimensions>* setMinificationFilter(Filter filter, Mipmap mipmap = Mipmap::Base) {
AbstractTexture::setMinificationFilter(filter, mipmap);
return this;
}

Loading…
Cancel
Save