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

14
src/AbstractTexture.cpp

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

14
src/AbstractTexture.h

@ -83,7 +83,7 @@ class MAGNUM_EXPORT AbstractTexture {
* @see setMagnificationFilter() and setMinificationFilter() * @see setMagnificationFilter() and setMinificationFilter()
*/ */
enum class Filter: GLint { enum class Filter: GLint {
NearestNeighbor = GL_NEAREST, /**< Nearest neighbor filtering */ Nearest = GL_NEAREST, /**< Nearest neighbor filtering */
/** /**
* Linear interpolation filtering. * Linear interpolation filtering.
@ -94,7 +94,7 @@ class MAGNUM_EXPORT AbstractTexture {
* / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float" * / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float"
* in OpenGL ES 2.0. * in OpenGL ES 2.0.
*/ */
LinearInterpolation = GL_LINEAR Linear = GL_LINEAR
}; };
/** /**
@ -103,12 +103,12 @@ class MAGNUM_EXPORT AbstractTexture {
* @see setMinificationFilter() * @see setMinificationFilter()
*/ */
enum class Mipmap: GLint { 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.** * 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 * Linear interpolation of nearest mip levels. **Unavailable on
@ -120,7 +120,7 @@ class MAGNUM_EXPORT AbstractTexture {
* / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float" * / @ref Magnum::AbstractTexture::InternalFormat "InternalFormat::Float"
* in OpenGL ES 2.0. * 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 * Sets filter used when the object pixel size is smaller than the
* texture size. If @extension{EXT,direct_state_access} is not * texture size. If @extension{EXT,direct_state_access} is not
* available, the texture is bound to some layer before the operation. * 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"). * @ref AbstractTexture::Mipmap "Mipmap::Linear").
* @attention For rectangle textures only some modes are supported, * @attention For rectangle textures only some modes are supported,
* see @ref AbstractTexture::Filter "Filter" and * see @ref AbstractTexture::Filter "Filter" and
@ -1053,7 +1053,7 @@ class MAGNUM_EXPORT AbstractTexture {
* or @fn_gl_extension{TextureParameter,EXT,direct_state_access} * or @fn_gl_extension{TextureParameter,EXT,direct_state_access}
* with @def_gl{TEXTURE_MIN_FILTER} * 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 * @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 */ /* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT #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); AbstractTexture::setMinificationFilter(filter, mipmap);
return this; return this;
} }

2
src/CubeMapTextureArray.h

@ -200,7 +200,7 @@ class CubeMapTextureArray: public AbstractTexture {
/* Overloads to remove WTF-factor from method chaining order */ /* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT #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); AbstractTexture::setMinificationFilter(filter, mipmap);
return this; return this;
} }

8
src/Text/Font.cpp

@ -58,8 +58,8 @@ void Font::finishConstruction() {
/* Set up the texture */ /* Set up the texture */
_texture.setWrapping(Texture2D::Wrapping::ClampToEdge) _texture.setWrapping(Texture2D::Wrapping::ClampToEdge)
->setMinificationFilter(Texture2D::Filter::LinearInterpolation) ->setMinificationFilter(Texture2D::Filter::Linear)
->setMagnificationFilter(Texture2D::Filter::LinearInterpolation); ->setMagnificationFilter(Texture2D::Filter::Linear);
} }
void Font::prerenderInternal(const std::string& characters, const Vector2i& atlasSize, const Int radius, Texture2D* output) { 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 */ /* Render input texture */
Texture2D input; Texture2D input;
input.setWrapping(Texture2D::Wrapping::ClampToEdge) input.setWrapping(Texture2D::Wrapping::ClampToEdge)
->setMinificationFilter(Texture2D::Filter::LinearInterpolation) ->setMinificationFilter(Texture2D::Filter::Linear)
->setMagnificationFilter(Texture2D::Filter::LinearInterpolation); ->setMagnificationFilter(Texture2D::Filter::Linear);
prerenderInternal(characters, atlasSize, radius, &input); prerenderInternal(characters, atlasSize, radius, &input);
/* Create distance field from input texture */ /* 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 */ /* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT #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); AbstractTexture::setMinificationFilter(filter, mipmap);
return this; return this;
} }

Loading…
Cancel
Save