X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fvideo%2Fdrawing_context.cpp;h=7ed00793439b2013ea16e3a70c85cf6f3bdf91fb;hb=634111449bef8b030090510475857adde9f3f87e;hp=57057b843a5c841665a5fb1935f0515a04c1e542;hpb=f2ffe3ee4a4955232ac311c661f98e11d2daa155;p=supertux.git diff --git a/src/video/drawing_context.cpp b/src/video/drawing_context.cpp index 57057b843..7ed007934 100644 --- a/src/video/drawing_context.cpp +++ b/src/video/drawing_context.cpp @@ -113,8 +113,9 @@ DrawingContext::draw_surface(SurfacePtr surface, const Vector& position, } void -DrawingContext::draw_surface_part(SurfacePtr surface, const Vector& source, - const Vector& size, const Vector& dest, int layer) +DrawingContext::draw_surface_part(SurfacePtr surface, + const Rectf& srcrect, const Rectf& dstrect, + int layer) { assert(surface != 0); @@ -122,31 +123,16 @@ DrawingContext::draw_surface_part(SurfacePtr surface, const Vector& source, request->target = target; request->type = SURFACE_PART; - request->pos = transform.apply(dest); + request->pos = transform.apply(dstrect.p1); request->layer = layer; request->drawing_effect = transform.drawing_effect; request->alpha = transform.alpha; SurfacePartRequest* surfacepartrequest = new(obst) SurfacePartRequest(); - surfacepartrequest->size = size; - surfacepartrequest->source = source; + surfacepartrequest->srcrect = srcrect; + surfacepartrequest->dstsize = dstrect.get_size(); surfacepartrequest->surface = surface.get(); - // clip on screen borders - if(request->pos.x < 0) { - surfacepartrequest->size.x += request->pos.x; - if(surfacepartrequest->size.x <= 0) - return; - surfacepartrequest->source.x -= request->pos.x; - request->pos.x = 0; - } - if(request->pos.y < 0) { - surfacepartrequest->size.y += request->pos.y; - if(surfacepartrequest->size.y <= 0) - return; - surfacepartrequest->source.y -= request->pos.y; - request->pos.y = 0; - } request->request_data = surfacepartrequest; requests->push_back(request);