From 5200771066a27692df2df347f4ffff4624cd947a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Wed, 12 Jun 2013 15:04:19 +0200 Subject: [PATCH] Added some TODOs. --- src/AbstractFramebuffer.h | 2 ++ src/Shaders/DistanceFieldVector.h | 3 +++ src/Text/DistanceFieldGlyphCache.h | 3 +++ src/Text/GlyphCache.h | 1 + src/TextureTools/DistanceField.h | 3 +++ 5 files changed, 12 insertions(+) diff --git a/src/AbstractFramebuffer.h b/src/AbstractFramebuffer.h index 1fa6aa4a1..7472d4bbd 100644 --- a/src/AbstractFramebuffer.h +++ b/src/AbstractFramebuffer.h @@ -200,6 +200,8 @@ class MAGNUM_EXPORT AbstractFramebuffer { * Framebuffer::mapForRead(), DefaultFramebuffer::mapForDraw(), * Framebuffer::mapForDraw(), @fn_gl{BindFramebuffer}, * @fn_gl{Viewport} + * @todo Bind internally to ReadDraw if separate binding points are not + * supported */ void bind(FramebufferTarget target); diff --git a/src/Shaders/DistanceFieldVector.h b/src/Shaders/DistanceFieldVector.h index 72ef45949..ab6455e57 100644 --- a/src/Shaders/DistanceFieldVector.h +++ b/src/Shaders/DistanceFieldVector.h @@ -43,6 +43,9 @@ Renders vector art in form of signed distance field. See TextureTools::distanceF for more information. Note that the final rendered outlook will greatly depend on radius of input distance field and value passed to setSmoothness(). @see DistanceFieldVector2D, DistanceFieldVector3D +@todo Use fragment shader derivations to have proper smoothness in perspective/ + large zoom levels, make it optional as it might have negative performance + impact */ template class MAGNUM_SHADERS_EXPORT DistanceFieldVector: public AbstractVector { public: diff --git a/src/Text/DistanceFieldGlyphCache.h b/src/Text/DistanceFieldGlyphCache.h index 360d34844..bb5d1194c 100644 --- a/src/Text/DistanceFieldGlyphCache.h +++ b/src/Text/DistanceFieldGlyphCache.h @@ -66,6 +66,9 @@ class MAGNUM_TEXT_EXPORT DistanceFieldGlyphCache: public GlyphCache { * desktop OpenGL requires @extension{ARB,texture_rg} (also part of * OpenGL ES 3.0), in ES2 uses @es_extension{EXT,texture_rg} if * available or @ref TextureFormat "TextureFormat::RGB" as fallback. + * @todo Is Luminance format renderable anywhere? Also would it be + * possible to convert the RGB texture to Luminance after it has + * been rendered when blitting is not supported to save memory? */ explicit DistanceFieldGlyphCache(const Vector2i& originalSize, const Vector2i& distanceFieldSize, UnsignedInt radius); diff --git a/src/Text/GlyphCache.h b/src/Text/GlyphCache.h index e2a27a33e..35d93cf52 100644 --- a/src/Text/GlyphCache.h +++ b/src/Text/GlyphCache.h @@ -55,6 +55,7 @@ font->createGlyphCache(cache, "abcdefghijklmnopqrstuvwxyz" @endcode See TextRenderer for information about text rendering. +@todo Some way for Font to negotiate or check internal texture format */ class MAGNUM_TEXT_EXPORT GlyphCache { public: diff --git a/src/TextureTools/DistanceField.h b/src/TextureTools/DistanceField.h index 6685395db..e44e6ba8d 100644 --- a/src/TextureTools/DistanceField.h +++ b/src/TextureTools/DistanceField.h @@ -80,6 +80,9 @@ http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnifica inefficient supported format is in most cases @ref TextureFormat "TextureFormat::RGB", rendering to @ref TextureFormat "TextureFormat::Luminance" is not supported in most cases. + +@bug ES (and maybe GL < 3.20) implementation behaves slightly different + (jaggies, visible e.g. when rendering outlined fonts) */ #ifndef MAGNUM_TARGET_GLES void MAGNUM_TEXTURETOOLS_EXPORT distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectangle, Int radius, const Vector2i& imageSize = Vector2i());