Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: c++ sfml. Text displayed as blurry  (Read 2954 times)

0 Members and 1 Guest are viewing this topic.

BaneTrapper

  • Full Member
  • ***
  • Posts: 213
  • Do you even see this, i dont need it.
    • View Profile
    • Email
c++ sfml. Text displayed as blurry
« on: November 11, 2012, 07:23:14 pm »
Hello.
I am hawing issues when drawing sf::Text onto screen. It is blurry in some cases!
The font on its own is not blurry at.
//TAKE NOTE When i changed the font, the problem remains

The problem occurs when text is some specified sizes.

Here are two examples: /* The "Height is" where the problem is if you don't see */
Image 1
http://postimage.org/image/6t4oj5a2h/
Image 2
http://postimage.org/image/98rr1cg51/

The code to images

//TAKE NOTE that the copy paste added errors where the '&;' sign is, it added ";amp;" for some reason
Quote
// The sequence the code goes is
objOptions.SetupOptions(*objApp);
objOptions.UpdateOptions(*objApp);
while( theGame == true )
{
        objOptions.DrawOptions(objWindow.Screen);
}

//The Actual code

void Options::SetupOptions(Application& objApp)
{
        recWindowInfo.setPosition(50.f, 50.f);
        recWindowInfo.setSize(sf::Vector2f(300.f, 150.f));
        recWindowInfo.setFillColor(sf::Color(150, 120, 200));
        recWindowInfo.setOutlineColor(sf::Color::Black);
        recWindowInfo.setOutlineThickness(1.f);
        txtWindowInfo.setCharacterSize(48);
        txtWindowInfo.setColor(sf::Color::White);
        txtWindowInfo.setFont(objApp.objFonts.Font1);
        txtWindowInfo.setString("Window size");
        objApp.objFunctions.CentertxtinrecTop(txtWindowInfo, recWindowInfo);
        txtWindowLine1.setCharacterSize(48);
        txtWindowLine1.setColor(sf::Color::White);
        txtWindowLine1.setFont(objApp.objFonts.Font1);
        txtWindowLine2.setCharacterSize(48);
        txtWindowLine2.setColor(sf::Color::White);
        txtWindowLine2.setFont(objApp.objFonts.Font1);
}
void Options::UpdateOptions(Application& objApp)
{
        std::stringstream conv;
        conv << "Width is " << objApp.objWindow.VidMod.width;
        txtWindowLine1.setString(conv.str());
        conv.clear();
        conv.str(std::string());
        conv << "Height " << objApp.objWindow.VidMod.height;
        txtWindowLine2.setString(conv.str());
        objApp.objFunctions.Centertxtinrec(txtWindowLine1, recWindowInfo);
        objApp.objFunctions.CentertxtinrecBot(txtWindowLine2, recWindowInfo);
}
void Options::DrawOptions(sf::RenderWindow& Screen)
{
        Screen.draw(recWindowInfo);
        Screen.draw(txtWindowInfo);
        Screen.draw(txtWindowLine1);
        Screen.draw(txtWindowLine2);
}
//Functions for centering the text
void Functions::Centertxtinrec(sf::Text& txt, sf::RectangleShape&; rec)
{
        txt.setPosition(rec.getPosition().x + rec.getSize().x / 2 - txt.getGlobalBounds().width / 2 - txt.getGlobalBounds().left / 2,
                                        rec.getPosition().y + rec.getSize().y / 2 - txt.getGlobalBounds().height / 2 - txt.getGlobalBounds().top / 2);
}
//Top
void Functions::CentertxtinrecTop(sf::Text& txt, sf::RectangleShape& rec)
{
        txt.setPosition(rec.getPosition().x + rec.getSize().x / 2 - txt.getGlobalBounds().width / 2 - txt.getGlobalBounds().left,
                                        rec.getPosition().y - txt.getGlobalBounds().top);
}
//Bot
void Functions::CentertxtinrecBot(sf::Text& txt, sf::RectangleShape& rec)
{
        txt.setPosition(rec.getPosition().x + rec.getSize().x / 2 - txt.getGlobalBounds().width / 2 - txt.getGlobalBounds().left,
                                        rec.getPosition().y + rec.getSize().y - txt.getGlobalBounds().height - txt.getGlobalBounds().top);
}
« Last Edit: November 11, 2012, 07:25:38 pm by BaneTrapper »
BaneTrapperDev@hotmail.com Programing, Coding
Projects: Not in development(unfinished/playable):
http://en.sfml-dev.org/forums/index.php?topic=11073.msg76266#msg76266
UP and in Development: The Wanderer - Lost in time
http://en.sfml-dev.org/forums/index.php?topic=14563.0

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re: c++ sfml. Text displayed as blurry
« Reply #1 on: November 11, 2012, 08:35:57 pm »
Try to round the text position.
Laurent Gomila - SFML developer

BaneTrapper

  • Full Member
  • ***
  • Posts: 213
  • Do you even see this, i dont need it.
    • View Profile
    • Email
Re: c++ sfml. Text displayed as blurry
« Reply #2 on: November 11, 2012, 08:52:33 pm »
You mean move text ?
BaneTrapperDev@hotmail.com Programing, Coding
Projects: Not in development(unfinished/playable):
http://en.sfml-dev.org/forums/index.php?topic=11073.msg76266#msg76266
UP and in Development: The Wanderer - Lost in time
http://en.sfml-dev.org/forums/index.php?topic=14563.0

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re: c++ sfml. Text displayed as blurry
« Reply #3 on: November 11, 2012, 09:03:35 pm »
I mean pass integer coordinates to setPosition.
Laurent Gomila - SFML developer

BaneTrapper

  • Full Member
  • ***
  • Posts: 213
  • Do you even see this, i dont need it.
    • View Profile
    • Email
Re: c++ sfml. Text displayed as blurry
« Reply #4 on: November 11, 2012, 09:41:10 pm »
Id be damn, it works...
Thanks for the info, will spread it.

Passing int as parameters to setPosition(); removes blurr

Also moving it around does not help.
BaneTrapperDev@hotmail.com Programing, Coding
Projects: Not in development(unfinished/playable):
http://en.sfml-dev.org/forums/index.php?topic=11073.msg76266#msg76266
UP and in Development: The Wanderer - Lost in time
http://en.sfml-dev.org/forums/index.php?topic=14563.0