DrawingContext::DrawingContext()
{
transform.draw_effect = NONE_EFFECT;
+transform.zoom = 1;
}
DrawingContext::~DrawingContext()
request.pos = transform.apply(position);
request.drawing_effect = drawing_effect;
request.drawing_effect = transform.draw_effect | drawing_effect;
+ request.zoom = transform.zoom;
drawingrequests.push_back(request);
}
case SURFACE:
{
const Surface* surface = (const Surface*) i->request_data;
- surface->impl->draw(i->pos.x, i->pos.y, 255, i->drawing_effect);
+
+ if(i->zoom != 1.0)
+ surface->impl->draw_stretched(i->pos.x * i->zoom, i->pos.y * i->zoom,
+ (int)(surface->w * i->zoom), (int)(surface->h * i->zoom),
+ 255, i->drawing_effect);
+ else
+ surface->impl->draw(i->pos.x, i->pos.y, 255, i->drawing_effect);
break;
}
case SURFACE_PART:
{
transform.draw_effect = effect;
}
+
+void
+DrawingContext::set_zooming(float zoom)
+{
+ transform.zoom = zoom;
+}