- Timestamp:
- Aug 25, 2005, 1:26:57 AM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/graphics/graphics_engine.cc
r5092 r5121 464 464 if (this->geTextCFPS == NULL) 465 465 { 466 this->geTextCFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC , 0, 255, 0);466 this->geTextCFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC); 467 467 this->geTextCFPS->setAlignment(TEXT_ALIGN_LEFT); 468 468 this->geTextCFPS->setAbsCoor2D(5, 5); … … 470 470 if (this->geTextMaxFPS == NULL) 471 471 { 472 this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC , 0, 255, 0);472 this->geTextMaxFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC); 473 473 this->geTextMaxFPS->setAlignment(TEXT_ALIGN_LEFT); 474 474 this->geTextMaxFPS->setAbsCoor2D(5, 35); … … 476 476 if (this->geTextMinFPS == NULL) 477 477 { 478 this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC , 0, 255, 0);478 this->geTextMinFPS = TextEngine::getInstance()->createText("fonts/arial_black.ttf", 15, TEXT_DYNAMIC); 479 479 this->geTextMinFPS->setAlignment(TEXT_ALIGN_LEFT); 480 480 this->geTextMinFPS->setAbsCoor2D(5, 65); -
trunk/src/lib/graphics/text_engine.cc
r5115 r5121 60 60 this->texture = 0; 61 61 this->blending = 1.0f; 62 this->color = Vector(1.0, 1.0, 1.0); 62 63 this->setType(type); 63 64 … … 75 76 76 77 if (this->text) 77 delete []this->text;78 delete[] this->text; 78 79 } 79 80 … … 130 131 131 132 /** 132 * sets a new color to the font133 * @param r Red134 * @param g Green135 * @param b Blue136 */137 void Text::setColor(Uint8 r, Uint8 g, Uint8 b)138 {139 this->color.r = r;140 this->color.g = g;141 this->color.b = b;142 }143 144 /**145 133 * creates a texture out of the given parameters 146 134 … … 154 142 glDeleteTextures(1, &this->texture); 155 143 if (likely(this->font != NULL)) 144 { 145 SDL_Color theColor = { (int)(this->color.x*255), (int)(this->color.y*255), (int)(this->color.z*255) }; 156 146 tmpSurf = TTF_RenderText_Blended(this->font->font, 157 147 this->text, 158 this->color); 148 theColor); 149 } 159 150 if (tmpSurf) 160 151 this->texture = loadTexture(tmpSurf, &this->texCoord); … … 179 170 // drawing this Text. 180 171 // setting the Blending effects 181 glColor4f( 1.0f,1.0f,1.0f, this->blending);172 glColor4f(this->color.x, this->color.y, this->color.z, this->blending); 182 173 glEnable(GL_BLEND); 183 174 glEnable(GL_TEXTURE_2D); 184 175 glBlendFunc(GL_SRC_ALPHA, GL_ONE); 176 177 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE ); 185 178 186 179 if(type == TEXT_STATIC) … … 234 227 PRINT(0)("is bind to %s; ref=%p\n", this->getBindNode()->getName(), this->getBindNode()); 235 228 PRINT(0)("Relative Position: (%d::%d)\n", this->posSize.x, this->posSize.y); 236 PRINT(0)("Color: % d %d %d\n", this->color.r, this->color.g, this->color.b);229 PRINT(0)("Color: %0.2f %0.2f %0.2f\n", this->color.x, this->color.y, this->color.z); 237 230 } 238 231 … … 349 342 * @param b Blue value of the Font. 350 343 */ 351 Font::Font(const char* fontFile, unsigned int fontSize , Uint8 r, Uint8 g, Uint8 b)344 Font::Font(const char* fontFile, unsigned int fontSize) 352 345 { 353 346 this->setClassID(CL_FONT, "Font"); … … 364 357 this->setStyle("c");//TTF_STYLE_NORMAL); 365 358 366 this->setFastColor(r, g, b);367 368 359 this->fastTextureID = this->createFastTexture(); 369 360 } … … 381 372 for (int i = 0; i < FONT_HIGHEST_KNOWN_CHAR; i++) 382 373 delete this->glyphArray[i]; 383 delete []this->glyphArray;374 delete[] this->glyphArray; 384 375 } 385 376 … … 448 439 { 449 440 this->fontSize = fontSize; 450 }451 452 /**453 * sets a new color to the font454 * @param r Red455 * @param g Green456 * @param b Blue457 */458 void Font::setFastColor(Uint8 r, Uint8 g, Uint8 b)459 {460 this->fastColor.r = r;461 this->fastColor.g = g;462 this->fastColor.b = b;463 441 } 464 442 … … 538 516 539 517 this->initGlyphs(32, numberOfGlyphs); 540 this->glyphArray[32]->width = fontSize/ 3; //!< @todo find out the real size of a Space518 this->glyphArray[32]->width = fontSize/2; //!< @todo find out the real size of a Space 541 519 542 520 int rectSize = this->findOptimalFastTextureSize(); … … 589 567 // reading in the new Glyph 590 568 if (likely(this->font != NULL)) 591 glyphSurf = TTF_RenderGlyph_Blended(this->font, i, this->fastColor); 569 { 570 SDL_Color white = {255, 255, 255}; 571 glyphSurf = TTF_RenderGlyph_Blended(this->font, i, white); 572 } 592 573 if( glyphSurf != NULL ) 593 574 { … … 598 579 tmpTexCoord.minU = (float)tmpRect.x/(float)tmpSurf->w; 599 580 tmpTexCoord.maxU = (float)(tmpRect.x +1 + tmpGlyph->width)/(float)tmpSurf->w; 600 tmpTexCoord.minV = (float) tmpRect.y/(float)tmpSurf->w;581 tmpTexCoord.minV = (float)(tmpRect.y)/(float)tmpSurf->w; 601 582 tmpTexCoord.maxV = (float)(tmpRect.y+tmpGlyph->height)/(float)tmpSurf->w; 602 583 tmpGlyph->displayList = glGenLists(1); … … 691 672 int x,y; // the counters 692 673 int maxLineHeight; 693 int size = 32; // starting Value, we have to start somewhere 32 seems reasonable.674 unsigned int size = 32; // starting Value, we have to start somewhere 32 seems reasonable. (take any small enough 2^i number) 694 675 bool sizeOK = false; 695 676 Glyph* tmpGlyph; … … 815 796 @see Text::Text 816 797 */ 817 Text* TextEngine::createText(const char* fontFile, unsigned int fontSize, int textType , Uint8 r, Uint8 g, Uint8 b)798 Text* TextEngine::createText(const char* fontFile, unsigned int fontSize, int textType) 818 799 { 819 800 Font* tmpFont; … … 821 802 Vector tmpVec; 822 803 823 tmpVec = Vector(r, g, b); 824 tmpFont = (Font*)ResourceManager::getInstance()->load(fontFile, TTF, RP_GAME, &fontSize, &tmpVec); 804 tmpFont = (Font*)ResourceManager::getInstance()->load(fontFile, TTF, RP_GAME, &fontSize); 825 805 if (!tmpFont) 826 806 { -
trunk/src/lib/graphics/text_engine.h
r5078 r5121 34 34 class PNode; 35 35 class Font; 36 template<class T> class tList;37 36 38 37 #define TEXT_ALIGN_LEFT E2D_ALIGN_LEFT … … 113 112 inline void setBlending(float blending) { this->blending = blending; }; 114 113 115 / / Static Text116 void setColor( Uint8 r, Uint8 g, Uint8 b);114 /** sets the Color of the Text to render (values in [0-1]) @param r red @param g green @param b blue */ 115 void setColor(float r, float g, float b) { this->color = Vector(r,g,b); }; 117 116 118 117 void createTexture(); … … 133 132 int type; //!< The type of this Font. 134 133 char* text; //!< The text to display 135 SDL_Colorcolor; //!< The color of the font.134 Vector color; //!< The color of the font. 136 135 float blending; //!< The blending intensity. 137 136 … … 152 151 public: 153 152 Font(const char* fontFile, 154 unsigned int fontSize = FONT_DEFAULT_SIZE, 155 Uint8 r = FONT_DEFAULT_COLOR_R, 156 Uint8 g = FONT_DEFAULT_COLOR_G, 157 Uint8 b = FONT_DEFAULT_COLOR_B); 153 unsigned int fontSize = FONT_DEFAULT_SIZE); 158 154 159 155 virtual ~Font(); … … 162 158 bool setFont(const char* fontFile); 163 159 void setSize(unsigned int fontSize); 164 void setFastColor(Uint8 r, Uint8 g, Uint8 b);165 160 void setStyle(const char* renderStyle); 166 161 167 162 /** @returns a Pointer to the Array of Glyphs */ 168 inline Glyph** getGlyphArray() const { return glyphArray;}163 inline Glyph** getGlyphArray() const { return glyphArray; }; 169 164 /** @returns the texture to the fast-texture */ 170 165 inline GLuint getFastTextureID() const {return fastTextureID;} … … 195 190 Glyph** glyphArray; //!< An Array of all the Glyphs stored in the Array of Glyphs. 196 191 GLuint fastTextureID; //!< The fast textureID. 197 SDL_Color fastColor; //!< A Color for the fast Texture.198 192 199 193 tList<Text>* textList; //!< A list of texts this Font is mapped to. … … 213 207 Text* createText(const char* fontFile, 214 208 unsigned int fontSize = FONT_DEFAULT_SIZE, 215 int textType = TEXT_DYNAMIC, 216 Uint8 r = FONT_DEFAULT_COLOR_R, 217 Uint8 g = FONT_DEFAULT_COLOR_G, 218 Uint8 b = FONT_DEFAULT_COLOR_B); 209 int textType = TEXT_DYNAMIC); 219 210 220 211 void debug() const; … … 228 219 static void disableFonts(); 229 220 static bool checkVersion(); 230 231 private:232 // tList<Font>* fontList;233 234 221 }; 235 222 -
trunk/src/util/resource_manager.cc
r5115 r5121 319 319 else 320 320 tmpResource->ttfSize = FONT_DEFAULT_SIZE; 321 if (param2)322 {323 Vector* tmpVec = (Vector*)param2;324 tmpResource->ttfColorR = (int)tmpVec->x;325 tmpResource->ttfColorG = (int)tmpVec->y;326 tmpResource->ttfColorB = (int)tmpVec->z;327 }328 else329 {330 tmpResource->ttfColorR = FONT_DEFAULT_COLOR_R;331 tmpResource->ttfColorG = FONT_DEFAULT_COLOR_G;332 tmpResource->ttfColorB = FONT_DEFAULT_COLOR_B;333 }334 321 335 322 if(isFile(fullName)) 336 323 tmpResource->pointer = new Font(fullName, 337 tmpResource->ttfSize, 338 tmpResource->ttfColorR, 339 tmpResource->ttfColorG, 340 tmpResource->ttfColorB); 324 tmpResource->ttfSize); 341 325 else 342 326 PRINTF(2)("Sorry, %s does not exist. Not loading Font\n", fullName); … … 560 544 else if (enumRes->ttfSize == *(int*)param1) 561 545 subMatch = true; 562 if(subMatch)563 {564 Vector* tmpVec = (Vector*)param2;565 if (!param2)566 {567 if(enumRes->ttfColorR == FONT_DEFAULT_COLOR_R &&568 enumRes->ttfColorG == FONT_DEFAULT_COLOR_G &&569 enumRes->ttfColorB == FONT_DEFAULT_COLOR_B )570 match = true;571 }572 else if (enumRes->ttfColorR == (int)tmpVec->x &&573 enumRes->ttfColorG == (int)tmpVec->y &&574 enumRes->ttfColorB == (int)tmpVec->z )575 match = true;576 }577 546 break; 578 547 #endif /* NO_TEXT */ -
trunk/src/util/resource_manager.h
r5039 r5121 79 79 #ifndef NO_TEXT 80 80 unsigned int ttfSize; //!< the size of the ttf-font (TTF) 81 unsigned char ttfColorR; //!< red Color (TTF)82 unsigned char ttfColorG; //!< green Color (TTF)83 unsigned char ttfColorB; //!< blue Color (TTF)84 81 #endif /* NO_TEXT */ 85 82 }; -
trunk/src/util/shell.cc
r5120 r5121 158 158 if (this->inputLineText == NULL) 159 159 delete this->inputLineText; 160 this->inputLineText = TextEngine::getInstance()->createText("fonts/Aniron_Bold.ttf", this->textSize, TEXT_DYNAMIC, 255, 0, 0); 160 this->inputLineText = TextEngine::getInstance()->createText("fonts/Aniron_Bold.ttf", this->textSize, TEXT_DYNAMIC); 161 this->inputLineText->setColor(1, 0, 0); 161 162 this->inputLineText->setAlignment(TEXT_ALIGN_LEFT); 162 163 this->inputLineText->setText(NULL); … … 183 184 for (unsigned int i = 0; i < bufferDisplaySize; i++) 184 185 { 185 this->bufferText[i] = TextEngine::getInstance()->createText("fonts/Aniron_Bold.ttf", this->textSize, TEXT_DYNAMIC, 255, 0, 0); 186 this->bufferText[i] = TextEngine::getInstance()->createText("fonts/Aniron_Bold.ttf", this->textSize, TEXT_DYNAMIC); 187 this->bufferText[i]->setColor(1, 0, 0); 186 188 this->bufferText[i]->setAlignment(TEXT_ALIGN_LEFT); 187 189 this->bufferText[i]->setRelCoor2D(calculateLinePosition(i)); -
trunk/src/util/track/track_manager.cc
r5115 r5121 380 380 this->setBindSlave(this->trackNode); 381 381 // initializing the Text 382 this->trackText = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC , 0, 255, 0);382 this->trackText = TextEngine::getInstance()->createText("fonts/earth.ttf", 30, TEXT_DYNAMIC); 383 383 this->trackText->setAlignment(E2D_ALIGN_SCREEN_CENTER); 384 384 // initializing the Animation for the Text.
Note: See TracChangeset
for help on using the changeset viewer.