Esempio n. 1
0
int GGI_directfb_drawbox(ggi_visual *vis, int x, int y, int w, int h)
{
	if (w > 0 && h > 0) {	/* 0 width is not OK! */
		struct directfb_priv *priv = DIRECTFB_PRIV(vis);
		int yadd = vis->w_frame_num * LIBGGI_VIRTY(vis);
		DFBRectangle dfbobj;

		y += yadd;

		directfb_gcupdate(vis, priv, LIBGGI_MODE(vis), LIBGGI_GC(vis),
				  LIBGGI_VIRTX(vis), yadd, DFXL_FILLRECTANGLE);

		dfbobj.x = x;
		dfbobj.y = y;
		dfbobj.h = h;
		dfbobj.w = w;
		priv->device.funcs.FillRectangle(priv->device.driver_data,
						 priv->device.device_data,
						 &dfbobj);

		vis->accelactive = 1;
	}

	return 0;
}
Esempio n. 2
0
int GGI_directfb_copybox(struct ggi_visual *vis, int x, int y, int w, int h,
		       int dstx, int dsty)
{
	struct directfb_priv *priv = DIRECTFB_PRIV(vis);
	int virtx = LIBGGI_VIRTX(vis);
	int yadd = vis->w_frame_num * LIBGGI_VIRTY(vis);
	DFBRectangle dfbobj;

        directfb_gcupdate(vis, priv, LIBGGI_MODE(vis), LIBGGI_GC(vis),
                          LIBGGI_VIRTX(vis), yadd, DFXL_BLIT);

	dfbobj.x = x;
	dfbobj.y = y;
	dfbobj.h = h;
	dfbobj.w = w;

	priv->device.funcs.Blit(priv->device.driver_data,
				priv->device.device_data,
				&dfbobj, dstx, dsty);

	vis->accelactive = 1;

	return 0;
}
Esempio n. 3
0
int GGI_directfb_fillscreen(ggi_visual *vis)
{
	struct directfb_priv *priv = DIRECTFB_PRIV(vis);
	int virtx = LIBGGI_VIRTX(vis);
	int virty = LIBGGI_VIRTY(vis);
	int yadd = vis->w_frame_num * LIBGGI_VIRTY(vis);
	DFBRectangle dfbobj;

        directfb_gcupdate(vis, priv, LIBGGI_MODE(vis), LIBGGI_GC(vis),
                          LIBGGI_VIRTX(vis), yadd, DFXL_FILLRECTANGLE);

	dfbobj.x = 0;
	dfbobj.y = 0;
	dfbobj.h = virty;
	dfbobj.w = virtx;

	priv->device.funcs.FillRectangle(priv->device.driver_data,
					 priv->device.device_data,
					 &dfbobj);

	vis->accelactive = 1;

	return 0;
}
Esempio n. 4
0
int GGI_directfb_drawhline(struct ggi_visual *vis, int x, int y, int w)
{
	struct directfb_priv *priv = DIRECTFB_PRIV(vis);
	int yadd = vis->w_frame_num * LIBGGI_VIRTY(vis);
	DFBRectangle dfbobj;

	y += yadd;

        directfb_gcupdate(vis, priv, LIBGGI_MODE(vis), LIBGGI_GC(vis),
                          LIBGGI_VIRTX(vis), yadd, DFXL_FILLRECTANGLE);

	dfbobj.x = x;
	dfbobj.y = y;
	dfbobj.w = w;
	dfbobj.h = 1;

	priv->device.funcs.FillRectangle(priv->device.driver_data,
					 priv->device.device_data,
					 &dfbobj);

	vis->accelactive = 1;

	return 0;
}