Ejemplo n.º 1
0
Archivo: mode.c Proyecto: antrik/libggi
int GGI_palemu_flush(struct ggi_visual *vis, int x, int y, int w, int h, int tryflag)
{
	ggi_palemu_priv *priv = PALEMU_PRIV(vis);
	int err;

	MANSYNC_ignore(vis);

	ggLock(priv->flush_lock);

	if (priv->target == PALEMU_TARGET) {
		err = _ggi_palemu_Flush(vis);
	} else {
		err = _ggi_monotext_Flush(vis);
	}

	if (! err) {
		err = _ggiInternFlush(GGI_VISUAL(priv->parent), x, y, w, h, tryflag);
	}

	ggUnlock(priv->flush_lock);

	MANSYNC_cont(vis);

	return err;
}
Ejemplo n.º 2
0
int GGI_X_expose(void *arg, int x, int y, int w, int h) {
	struct ggi_visual *vis;
	ggi_x_priv *priv;
	int err;
	vis = arg;
	priv = GGIX_PRIV(vis);

        /* Expose event may be queued from a previous (larger) mode.
           In that case we just ignore it and return. */
        if ((x+w > LIBGGI_VIRTX(vis)) || 
	    y+h > LIBGGI_VIRTY(vis) * (vis->d_frame_num + 1)) 
		return 0;

	priv->fullflush = 1;
	err = _ggiInternFlush(vis, x, y, w, h, 2);
	priv->fullflush = 0;
	return err;
}
Ejemplo n.º 3
0
Archivo: mode.c Proyecto: antrik/libggi
int GGI_trueemu_flush(struct ggi_visual *vis, int x, int y, int w, int h, int tryflag)
{
	ggi_trueemu_priv *priv = TRUEEMU_PRIV(vis);
	
	int err;

	MANSYNC_ignore(vis);

	ggLock(priv->flush_lock);

	err = _ggi_trueemu_Flush(vis);

	if (! err) {
		err = _ggiInternFlush(GGI_VISUAL(priv->parent), x, y, w, h, tryflag);
	}

	ggUnlock(priv->flush_lock);

	MANSYNC_cont(vis);

	return err;
}
Ejemplo n.º 4
0
int GGI_sub_flush(ggi_visual *vis, int x, int y, int w, int h, int tryflag)
{
	ggi_sub_priv *priv = SUB_PRIV(vis);
	return _ggiInternFlush(priv->parent, x + priv->position.x, 
				y + priv->position.y, w, h, tryflag);
}