void
DrawingContext::draw_text(Font* font, const std::string& text,
- const Vector& position, int layer, Uint32 drawing_effect)
+ const Vector& position, int layer, Uint32 drawing_effect, int alpha)
{
DrawingRequest request;
TextRequest* textrequest = new TextRequest;
textrequest->font = font;
textrequest->text = text;
+ textrequest->center = false;
+ textrequest->alpha = alpha;
request.request_data = textrequest;
drawingrequests.push_back(request);
void
DrawingContext::draw_text_center(Font* font, const std::string& text,
- const Vector& position, int layer, Uint32 drawing_effect)
+ const Vector& position, int layer, Uint32 drawing_effect, int alpha)
{
DrawingRequest request;
request.type = TEXT;
request.layer = layer;
- request.pos = transform.apply(position) + Vector(screen->w/2 -
- font->get_text_width(text)/2, 0);
+ request.pos = transform.apply(position);
request.drawing_effect = drawing_effect;
TextRequest* textrequest = new TextRequest;
textrequest->font = font;
textrequest->text = text;
+ textrequest->center = true;
+ textrequest->alpha = alpha;
request.request_data = textrequest;
drawingrequests.push_back(request);
DrawingContext::draw_text(DrawingRequest& request)
{
TextRequest* textrequest = (TextRequest*) request.request_data;
-
- textrequest->font->draw(textrequest->text, request.pos, request.drawing_effect);
+
+ if(textrequest->center)
+ textrequest->font->draw_center(textrequest->text, request.pos, request.drawing_effect, textrequest->alpha);
+ else
+ textrequest->font->draw(textrequest->text, request.pos, request.drawing_effect, textrequest->alpha);
delete textrequest;
}