LCOV - code coverage report
Current view: top level - engine/render - rendertext.h (source / functions) Hit Total Coverage
Test: Libprimis Test Coverage Lines: 3 11 27.3 %
Date: 2024-11-22 05:07:59 Functions: 2 5 40.0 %

          Line data    Source code
       1             : #ifndef RENDERTEXT_H_
       2             : #define RENDERTEXT_H_
       3             : struct font
       4             : {
       5             :     struct charinfo
       6             :     {
       7             :         float x, y, w, h, offsetx, offsety, advance;
       8             :         int tex;
       9             : 
      10             :     };
      11             : 
      12             :     std::string name;
      13             :     std::vector<Texture *> texs;
      14             :     std::vector<charinfo> chars;
      15             :     int charoffset, defaultw, defaulth, scale;
      16             :     float bordermin, bordermax, outlinemin, outlinemax;
      17             : 
      18           2 :     font() {}
      19           6 :     ~font()
      20             :     {
      21           6 :     }
      22             : };
      23             : 
      24             : #define FONTH (curfont->scale)
      25             : 
      26             : extern font *curfont;
      27             : 
      28           0 : inline int fontwidth()
      29             : {
      30           0 :     return FONTH/2;
      31             : }
      32             : constexpr int minreswidth = 640,
      33             :               minresheight = 480;
      34             : 
      35             : extern float textscale;
      36             : 
      37             : extern void reloadfonts();
      38             : 
      39           0 : inline void setfont(font *f)
      40             : {
      41           0 :     if(f)
      42             :     {
      43           0 :         curfont = f;
      44             :     }
      45           0 : }
      46             : 
      47             : extern bool setfont(const char *name);
      48             : extern void pushfont();
      49             : extern bool popfont();
      50             : extern void gettextres(int &w, int &h);
      51             : 
      52             : extern float text_widthf(const char *str);
      53             : extern void text_boundsf(const char *str, float &width, float &height, int maxwidth = -1);
      54             : extern int text_visible(const char *str, float hitx, float hity, int maxwidth);
      55             : extern void text_posf(const char *str, int cursor, float &cx, float &cy, int maxwidth);
      56             : 
      57           0 : inline int text_width(const char *str)
      58             : {
      59           0 :     return static_cast<int>(std::ceil(text_widthf(str)));
      60             : }
      61             : #endif

Generated by: LCOV version 1.14