Browse Source

Reducing pointer chasings, part 3f: less pointer passing in TextureTools.

pull/277/head
Vladimír Vondruš 13 years ago
parent
commit
8a8b9aca5e
  1. 10
      src/TextureTools/DistanceField.cpp
  2. 4
      src/TextureTools/DistanceField.h

10
src/TextureTools/DistanceField.cpp

@ -129,9 +129,9 @@ DistanceFieldShader::DistanceFieldShader(): radiusUniform(0), scalingUniform(1)
} }
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
void distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectangle, const Int radius, const Vector2i&) void distanceField(Texture2D& input, Texture2D& output, const Rectanglei& rectangle, const Int radius, const Vector2i&)
#else #else
void distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectangle, const Int radius, const Vector2i& imageSize) void distanceField(Texture2D& input, Texture2D& output, const Rectanglei& rectangle, const Int radius, const Vector2i& imageSize)
#endif #endif
{ {
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -141,7 +141,7 @@ void distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectan
/** @todo Disable depth test, blending and then enable it back (if was previously) */ /** @todo Disable depth test, blending and then enable it back (if was previously) */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
Vector2i imageSize = input->imageSize(0); Vector2i imageSize = input.imageSize(0);
#endif #endif
Framebuffer framebuffer(rectangle); Framebuffer framebuffer(rectangle);
@ -161,7 +161,7 @@ void distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectan
.setScaling(Vector2(imageSize)/rectangle.size()) .setScaling(Vector2(imageSize)/rectangle.size())
.use(); .use();
input->bind(DistanceFieldShader::TextureLayer); input.bind(DistanceFieldShader::TextureLayer);
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
if(!Context::current()->isVersionSupported(Version::GL300)) if(!Context::current()->isVersionSupported(Version::GL300))
@ -190,7 +190,7 @@ void distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectan
Vector2( 3.0, 1.0) Vector2( 3.0, 1.0)
}; };
buffer.setData(triangle, Buffer::Usage::StaticDraw); buffer.setData(triangle, Buffer::Usage::StaticDraw);
mesh.addVertexBuffer(&buffer, 0, DistanceFieldShader::Position()); mesh.addVertexBuffer(buffer, 0, DistanceFieldShader::Position());
} }
/* Draw the mesh */ /* Draw the mesh */

4
src/TextureTools/DistanceField.h

@ -85,9 +85,9 @@ http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnifica
(jaggies, visible e.g. when rendering outlined fonts) (jaggies, visible e.g. when rendering outlined fonts)
*/ */
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
void MAGNUM_TEXTURETOOLS_EXPORT distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectangle, Int radius, const Vector2i& imageSize = Vector2i()); void MAGNUM_TEXTURETOOLS_EXPORT distanceField(Texture2D& input, Texture2D& output, const Rectanglei& rectangle, Int radius, const Vector2i& imageSize = Vector2i());
#else #else
void MAGNUM_TEXTURETOOLS_EXPORT distanceField(Texture2D* input, Texture2D* output, const Rectanglei& rectangle, Int radius, const Vector2i& imageSize); void MAGNUM_TEXTURETOOLS_EXPORT distanceField(Texture2D& input, Texture2D& output, const Rectanglei& rectangle, Int radius, const Vector2i& imageSize);
#endif #endif
}} }}

Loading…
Cancel
Save