diff --git a/src/Text/GlyphCache.cpp b/src/Text/GlyphCache.cpp index a11338b0a..3e054803c 100644 --- a/src/Text/GlyphCache.cpp +++ b/src/Text/GlyphCache.cpp @@ -31,6 +31,8 @@ namespace Magnum { namespace Text { +/** @todo Do this using delegating constructors when support for GCC 4.6 is dropped */ + GlyphCache::GlyphCache(const TextureFormat internalFormat, const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding): _size(originalSize), _padding(padding) { initialize(internalFormat, size); } @@ -39,7 +41,17 @@ GlyphCache::GlyphCache(const TextureFormat internalFormat, const Vector2i& size, initialize(internalFormat, size); } +GlyphCache::GlyphCache(const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding): _size(originalSize), _padding(padding) { + initialize(size); +} + GlyphCache::GlyphCache(const Vector2i& size, const Vector2i& padding): _size(size), _padding(padding) { + initialize(size); +} + +GlyphCache::~GlyphCache() = default; + +void GlyphCache::initialize(const Vector2i& size) { #ifndef MAGNUM_TARGET_GLES MAGNUM_ASSERT_EXTENSION_SUPPORTED(Extensions::GL::ARB::texture_rg); #endif @@ -55,8 +67,6 @@ GlyphCache::GlyphCache(const Vector2i& size, const Vector2i& padding): _size(siz initialize(internalFormat, size); } -GlyphCache::~GlyphCache() = default; - void GlyphCache::initialize(const TextureFormat internalFormat, const Vector2i& size) { /* Initialize texture */ _texture.setWrapping(Sampler::Wrapping::ClampToEdge) diff --git a/src/Text/GlyphCache.h b/src/Text/GlyphCache.h index d790abc51..7446e5952 100644 --- a/src/Text/GlyphCache.h +++ b/src/Text/GlyphCache.h @@ -70,7 +70,7 @@ class MAGNUM_TEXT_EXPORT GlyphCache { * although the actual glyph cache texture has @p size. Glyph * @p padding can be used to account for e.g. glyph shadows. */ - explicit GlyphCache(TextureFormat internalFormat, const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding); + explicit GlyphCache(TextureFormat internalFormat, const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding = Vector2i()); /** * @brief Constructor @@ -87,6 +87,13 @@ class MAGNUM_TEXT_EXPORT GlyphCache { * ES2 uses @es_extension{EXT,texture_rg}, if available, or * @ref TextureFormat "TextureFormat::Luminance" as fallback. */ + explicit GlyphCache(const Vector2i& originalSize, const Vector2i& size, const Vector2i& padding = Vector2i()); + + /** + * @brief Constructor + * + * Same as calling the above with @p originalSize and @p size the same. + */ explicit GlyphCache(const Vector2i& size, const Vector2i& padding = Vector2i()); virtual ~GlyphCache(); @@ -178,6 +185,7 @@ class MAGNUM_TEXT_EXPORT GlyphCache { virtual void setImage(const Vector2i& offset, const ImageReference2D& image); private: + void MAGNUM_LOCAL initialize(const Vector2i& size); void MAGNUM_LOCAL initialize(TextureFormat internalFormat, const Vector2i& size); Vector2i _size, _padding;