Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7757 in orxonox.OLD for trunk/src/lib/graphics


Ignore:
Timestamp:
May 21, 2006, 11:07:48 PM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: Resize of the Shell works quite nice

Location:
trunk/src/lib/graphics/text_engine
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/graphics/text_engine/multi_line_text.cc

    r7756 r7757  
    2626 * @param type The renderType to display this font in
    2727 */
    28 MultiLineText::MultiLineText(const std::string& fontFile, unsigned int textSize, unsigned int lineWidth)
     28MultiLineText::MultiLineText(const std::string& fontFile, unsigned int textSize, float lineWidth)
    2929  : Text(fontFile, textSize)
    3030{
    3131  this->setClassID(CL_MULTI_LINE_TEXT, "MultiLineText");
    3232
    33   this->lineSpacing = 1.0f;
     33  this->lineSpacing = 1.0;
    3434  this->lineCount = 0;
    3535  this->setLineWidth(lineWidth);
     
    9393  for (unsigned int i = 0; i < this->getText().size(); ++i)
    9494  {
    95     if (unlikely(!this->lineEnds.empty() && i == this->lineEnds[lineNumber]))
     95    if (unlikely(this->lineEnds.size() > lineNumber && i == this->lineEnds[lineNumber]))
    9696    {
    9797      // go to the next Line.
    9898      ++lineNumber;
    99       posX = 0.0f;
     99      posX = 10.0f;
    100100      posY += this->lineSpacing + this->getSize(); //this->getFont()->getMaxHeight();
    101101    }
     
    149149      width += this->getFont()->getGlyphArray()[this->getText()[i]]->advance;
    150150  }
    151 
    152   this->lineCount = lineEnds.size()+1;
     151  this->lineCount = lineEnds.size() + 1;
    153152  this->setSizeY2D((this->lineEnds.size()+1) * (this->lineSpacing + this->getFont()->getMaxHeight()));
    154153}
     154
     155void MultiLineText::debug() const
     156{
     157 printf("Debug %s::%s: %d lines\n", this->getClassName(), this->getName(), this->getLineCount());
     158
     159 std::string tmpText = this->getText();
     160 std::vector<unsigned int> ends = this->lineEnds;
     161 ends.push_back(tmpText.size());
     162
     163 unsigned int prev = 0;
     164  for (unsigned int i = 0; i < ends.size(); i++)
     165  {
     166    printf("Line %d: %s\n", i, tmpText.substr(prev, ends[i] - prev).c_str());
     167    prev = ends[i];
     168  }
     169}
  • trunk/src/lib/graphics/text_engine/multi_line_text.h

    r7754 r7757  
    1515{
    1616  public:
    17     MultiLineText(const std::string& fontFile = "", unsigned int fontSize = TEXT_DEFAULT_SIZE, unsigned int lineWidth = 100.0);
     17    MultiLineText(const std::string& fontFile = "", unsigned int fontSize = TEXT_DEFAULT_SIZE, float lineWidth = 100.0);
    1818
    1919    // Setup:
     
    3030    virtual void draw() const;
    3131
     32    void debug() const;
     33
    3234  protected:
    3335    virtual void setupTextWidth();
Note: See TracChangeset for help on using the changeset viewer.