// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#include <config.h>
+
#include <algorithm>
#include <cassert>
#include <iostream>
DrawingContext::DrawingContext()
{
-transform.draw_effect = NONE_EFFECT;
-transform.zoom = 1;
-transform.alpha = 255;
}
DrawingContext::~DrawingContext()
DrawingRequest request;
request.type = SURFACE;
- request.layer = layer;
- request.request_data = const_cast<Surface*> (surface);
request.pos = transform.apply(position);
- request.drawing_effect = drawing_effect;
- request.drawing_effect = transform.draw_effect | drawing_effect;
+
+ if(request.pos.x >= screen->w || request.pos.y >= screen->h
+ || request.pos.x + surface->w < 0 || request.pos.y + surface->h < 0)
+ return;
+
+ request.layer = layer;
+ request.drawing_effect = transform.drawing_effect | drawing_effect;
request.zoom = transform.zoom;
request.alpha = transform.alpha;
+ request.request_data = const_cast<Surface*> (surface);
drawingrequests.push_back(request);
}
DrawingRequest request;
request.type = SURFACE_PART;
- request.layer = layer;
request.pos = transform.apply(dest);
- request.drawing_effect = drawing_effect;
+ request.layer = layer;
+ request.drawing_effect = transform.drawing_effect | drawing_effect;
request.alpha = transform.alpha;
SurfacePartRequest* surfacepartrequest = new SurfacePartRequest();
DrawingRequest request;
request.type = TEXT;
- request.layer = layer;
request.pos = transform.apply(position);
- request.drawing_effect = drawing_effect;
+ request.layer = layer;
+ request.drawing_effect = transform.drawing_effect | drawing_effect;
+ request.zoom = transform.zoom;
request.alpha = transform.alpha;
TextRequest* textrequest = new TextRequest;
DrawingRequest request;
request.type = GRADIENT;
- request.layer = layer;
request.pos = Vector(0,0);
+ request.layer = layer;
+
+ request.drawing_effect = transform.drawing_effect;
+ request.zoom = transform.zoom;
+ request.alpha = transform.alpha;
GradientRequest* gradientrequest = new GradientRequest;
gradientrequest->top = top;
DrawingRequest request;
request.type = FILLRECT;
- request.layer = layer;
request.pos = transform.apply(topleft);
+ request.layer = layer;
+
+ request.drawing_effect = transform.drawing_effect;
+ request.zoom = transform.zoom;
+ request.alpha = transform.alpha;
FillRectRequest* fillrectrequest = new FillRectRequest;
fillrectrequest->size = size;
void
DrawingContext::set_drawing_effect(int effect)
{
- transform.draw_effect = effect;
+ transform.drawing_effect = effect;
}
void