You're right, it's even an open issue:
https://github.com/SFML/SFML/issues/254For now, a solution is to recompile SFML with a slight change in Font.cpp, replacing FT_RENDER_MODE_NORMAL by FT_RENDER_MODE_MONO.
But you can almost totally avoid the
"smoothing" effect if you take a font that was
designed with the size you want (10px for your case). Then you can apply a scale multiplier (power of two for the best result) on the sf::Text in order to fit the size you really want.
I made some tests with 2 differents fonts:
http://www.dafont.com/commodore-64-pixelized.font?text=commodore+pixelizedfont=Commodore Pixelized v1.2.ttf; characterSize=10; FT_RENDER_MODE_MONO
font=Commodore Pixelized v1.2.ttf; characterSize=10; FT_RENDER_MODE_NORMAL
font=Commodore Pixelized v1.2.ttf; characterSize=11; FT_RENDER_MODE_MONO
font=Commodore Pixelized v1.2.ttf; characterSize=11; FT_RENDER_MODE_NORMAL
http://www.dafont.com/grand9k-pixel.fontfont=Grand9K Pixel.ttf; characterSize=8; FT_RENDER_MODE_MONO
font=Grand9K Pixel.ttf; characterSize=8; FT_RENDER_MODE_NORMAL
font=Grand9K Pixel.ttf; characterSize=9; FT_RENDER_MODE_MONO
font=Grand9K Pixel.ttf; characterSize=9; FT_RENDER_MODE_NORMAL
So, no smoothing effect if you use characterSize=8 for Grand9K and characterSize=10 for Commodore 64
.
Hope it helps!