SDL 2.0 рдкрд╛рда рдЪрдХреНрд░: рдкрд╛рда 6 - SDL_ttf рдХреЗ рд╕рд╛рде рдлрд╝реЙрдиреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛

рдЫрд╡рд┐

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ:

рдпрд╣ рдЯреНрд╡рд┐рдВрдХрд▓рдмрд┐рдпрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ, рдЬреЛ рдпрд╣рд╛рдВ рдореВрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдЕрдиреБрд╡рд╛рдж рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрди рдпрд╛ рдкрд░рд┐рд╡рд░реНрдзрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рджреЛ рдкрд╛рдареЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж - рд▓реЗрдЦрдХреАрдпInvalidPointerрдФрд░ рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рдХреЗ рд▓рд┐рдП k1-801ред


рд╕рдмрдХ рдХреА рд╕реВрдЪреА:


SDL_ttf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдлреЛрдВрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛


рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ SDL_ttf рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреНрд░реВ рдЯрд╛рдЗрдк рдлрд╝реЙрдиреНрдЯ рдлрд╝реЙрдиреНрдЯ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкрд╛рда 3 рдореЗрдВ SDL_image рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ , рд▓реЗрдХрд┐рди "рдЫрд╡рд┐" рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдмрд╕ "ttf" рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдлрд╝рд░реНрд╕реНрдЯрд╛рдЗрдк dll рдХреЛ рднреА рдХреЙрдкреА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рддреЛ SDL_ttf рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ , рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╢реБрд░реВ рдХрд░реЗрдВ!

SDL_ttf рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдЪреАрдЬ рд╣реИ ttf рдлрд╝реЙрдиреНрдЯред BitFontMaker рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , рд▓реЗрдЦрдХ рдиреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдлрд╝реЙрдиреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕реЗ рдЖрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВрд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдирд╛ рд╕реБрдВрджрд░ рдлрд╝реЙрдиреНрдЯ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝реЙрдиреНрдЯ рдХреЗрд╡рд▓ рд╕рд░рд▓ ASCII рд╡рд░реНрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЧреИрд░-ASCII рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЗрд╕ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкрд╛рда 5 рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЖрдк рдЗрд╕реЗ рдЧреАрдереВрдм рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЪрд┐рддреНрд░, рдХрдЯрд╛ рд╣реБрдЖ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдФрд░ рдбреНрд░реЙрдЗрдВрдЧ рдмрджрд▓реА рдЬрд╛рдПрдЧреАред

рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ


SDL_ttf рд╡рд┐рднрд┐рдиреНрди рдЧрддрд┐ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдлреЛрдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде UTF8 рдФрд░ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдирдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЧрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдХрдм рдФрд░ рдХрд┐рд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝рдирд╛ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо TTF_RenderText_Blended рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдордп рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдкрд╛рда рд╕реБрдВрджрд░ рд╣реЛред рд╡рд┐рднрд┐рдиреНрди рдкрд╛рда рдкреНрд░рджрд░реНрд╢рди рдлрд╝рдВрдХреНрд╢рди RGB SDL_Color рд░рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдкрд╛рда рдХреЗ рд░рдВрдЧ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, SDL_ttf рдХреЗрд╡рд▓ рд╕рддрд╣ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо рдЙрдард╛рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдлрд╝реЙрдиреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ TTF_OpenFont рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬрд╣рд╛рдВ рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдлрдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛


рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдПрдХ рдлрд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдЯреАрдЯреАрдПрдл рдлрд╝реЙрдиреНрдЯ, рд░рдВрдЧ, рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдФрд░ рд░реЗрдВрдбрд░рд░ рдЕрдВрддрд┐рдо рдмрдирд╛рд╡рдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди рдлрд╝реЙрдиреНрдЯ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИ, рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдХ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрдирд╛рд╡рдЯ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЙрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рдЪреНрдЫ рд╕рдВрд╕рд╛рдзрди, рд▓реЙрдЧ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдЕрд╢рдХреНрдд рд╡рд╛рдкрд╕реА рддрд╛рдХрд┐ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдХреБрдЫ рдмреБрд░рд╛ рд╣реБрдЖ рд╣реИред SDL_ttf SDL_GetError рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рд▓реЙрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП logSDLError рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВред

рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЖрдЗрдП рд░реЗрдВрдбрд░рдЯреИрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ:

/**
*      
* @param message ,   
* @param fontFile ,   
* @param color ,     
* @param fontSize  
* @param renderer ,     
* @return SDL_Texture,     nullptr,  -   
*/
SDL_Texture* renderText(const std::string &message, const std::string &fontFile,
        SDL_Color color, int fontSize, SDL_Renderer *renderer)
{
        // 
        TTF_Font *font = TTF_OpenFont(fontFile.c_str(), fontSize);
        if (font == nullptr){
                logSDLError(std::cout, "TTF_OpenFont");
                return nullptr;
        }       
        //       TTF_RenderText,
        //    
        SDL_Surface *surf = TTF_RenderText_Blended(font, message.c_str(), color);
        if (surf == nullptr){
                TTF_CloseFont(font);
                logSDLError(std::cout, "TTF_RenderText");
                return nullptr;
        }
        SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surf);
        if (texture == nullptr){
                logSDLError(std::cout, "CreateTexture");
        }
        //   
        SDL_FreeSurface(surf);
        TTF_CloseFont(font);
        return texture;
}

рдкреНрд░рджрд░реНрд╢рди рдХреА рдЪреЗрддрд╛рд╡рдиреА


рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝реЙрдиреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдмрдВрдж рдХрд░реЗрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдХ рдмрд╛рд░ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╣рдо рдмрд╣реБрдд рд╕реЗ рдкрд╛рда рдФрд░ / рдпрд╛ рдмрд╣реБрдд рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдлрд╝реЙрдиреНрдЯ рдЬрд┐рддрдирд╛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рдЙрддрдирд╛ рдЦреБрд▓рд╛ред рдЗрд╕ рдЕрдзрд┐рдХ рд▓рдЧрд╛рддрд╛рд░ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░рдЯреИрдХреНрд╕ рдХрд╛ рд╣рдорд╛рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп TTF_Font * рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЦреБрд▓реЗрдЧрд╛ рдФрд░ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЬреАрд╡рди рдЕрд▓рдЧ рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

SDL_ttf рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ


рдПрд╕рдбреАрдПрд▓ рдХреЗ рд╕рд╛рде рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ TTF_Init рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреЛ рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ 0 рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред SDL_ttf рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ SDL рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред

if (TTF_Init() != 0){
        logSDLError(std::cout, "TTF_Init");
        SDL_Quit();
        return 1;
}

рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рд╣рдорд╛рд░реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреЙрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, "TTF рдлреЙрдиреНрдЯ рд╢рд╛рдВрдд рд╣реИрдВ!" рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рд╕рдлреЗрдж, рдкрд╣рд▓реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдЖрдХрд╛рд░ 64ред рдлрд┐рд░ рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рдорд╛рди рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП x / y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

const std::string resPath = getResourcePath("Lesson6");
//   "TTF fonts are cool!"
//   RGBA
SDL_Color color = { 255, 255, 255, 255 };
SDL_Texture *image = renderText("TTF fonts are cool!", resPath + "sample.ttf",
        color, 64, renderer);
if (image == nullptr){
        cleanup(renderer, window);
        TTF_Quit();
        SDL_Quit();
        return 1;
}
//    ,     
int iW, iH;
SDL_QueryTexture(image, NULL, NULL, &iW, &iH);
int x = SCREEN_WIDTH / 2 - iW / 2;
int y = SCREEN_HEIGHT / 2 - iH / 2;

рдкрд╛рда рдбреНрд░рд╛ рдХрд░реЗрдВ


рдЕрдВрдд рдореЗрдВ, рд╣рдо рдмрдирд╛рд╡рдЯ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛ред

//:     
SDL_RenderClear(renderer);
//    ,     ,  
//    
renderTexture(image, renderer, x, y);
SDL_RenderPresent(renderer);

рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реБрдЖ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

рдЫрд╡рд┐

рдкрд╛рда рдХрд╛ рдЕрдВрдд рем


рдпрд╣ рдЖрдкрдХреЛ SDL_ttf рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреНрдпрд╛ рд╕рдХреНрд╖рдо рд╣реИ , рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрджрд┐ рдЖрдкрдХреЛ рдкрд╛рда рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдЦрдХ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЕрдм рдФрд░ рдкрд╛рда рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЪрдХреНрд░ рд╕реЗ рдЕрдВрддрд┐рдо рдкрд╛рда рдерд╛ред рдЖрдк рдЖрд▓рд╕реА рдлреВ рдХреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдПрд╕рдбреАрдПрд▓ рд╡рд┐рдХреА рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред

All Articles