void drawTextCentered(Game* g, Font* f, char* text, float x, float y) { int offsetX = 0, offsetY = 0, length = strlen(text); if(f == 0) f = &g->font; offsetX = -getTextLineWidth(f, text) / 2; for(int i = 0; i < length; ++i) { char c = f->layout[(int)text[i]]; if(text[i] == '\n') { if(i + 1 < length) offsetX = -getTextLineWidth(f, &text[i+1]) / 2; offsetY += f->lineSpacing; continue; } if(text[i] != ' ') { f->sprite.frame = c; spriteDraw(g, &f->sprite, x + offsetX, y + offsetY); } offsetX += f->letterWidth[(int)text[i]] + f->letterSpacing; } }
void drawText(Game* g, Font* f, char* text, float x, float y) { int offsetX = 0, offsetY = 0, length = strlen(text); if(f == 0) f = &g->font; for(int i = 0; i < length; ++i) { char c = f->layout[(int)text[i]]; if(f->singleCase) c = f->layout[toupper(text[i])]; if(text[i] == '\n') { offsetX = 0; offsetY += f->lineSpacing; continue; } if(text[i] != ' ') { f->sprite.frame = c; spriteDraw(g, &f->sprite, x + offsetX, y + offsetY); } offsetX += f->letterWidth[(int)text[i]] + f->letterSpacing; } }
void cScreen::refresh() { if(( mBitmapRedraw || mSpriteRedraw) && !mTextRedraw) { bitmapRefresh(); spriteDraw(); } if( mTextRedraw ) { mTextRedraw = false; } mWindow->RenderAt(mSurface, cPosition(8, 15)); if(mCursorOn) { size_t x = ((mCursorX) * 2 ) * mScale; size_t y = 70 + (mCursorY) * mScale; //TODO //mWindow->RenderAt( mSDLCursorSurface, cPosition(x,y) ); } mWindow->FrameEnd(); }
void EXPORT_THIS d_sprite_draw(void *sprite) { spriteDraw(sprite); return; }