Example #1
0
void ph_OCUpdate(_THIS, int numrects, SDL_Rect *rects)
{
    int i;

    PhPoint_t zero = {0};
    PhArea_t src_rect;
    PhArea_t dest_rect;

    PgSetRegion(PtWidgetRid(window));
    PgSetClipping(0, NULL);
    PgWaitHWIdle();

    for (i=0; i<numrects; ++i)
    {
        if (rects[i].w == 0)  /* Clipped? */
        {
            continue;
        }

        if (rects[i].h == 0)  /* Clipped? */
        {
            continue;
        }

        src_rect.pos.x=rects[i].x;
        src_rect.pos.y=rects[i].y;
        dest_rect.pos.x=rects[i].x;
        dest_rect.pos.y=rects[i].y;

        src_rect.size.w=rects[i].w;
        src_rect.size.h=rects[i].h;
        dest_rect.size.w=rects[i].w;
        dest_rect.size.h=rects[i].h;

        zero.x = 0;
        zero.y = 0;
        PgSetTranslation(&zero, 0);
        PgSetRegion(PtWidgetRid(window));
        PgSetClipping(0, NULL);
        PgContextBlitArea(OCImage.offscreen_context, &src_rect, NULL, &dest_rect);
    }

    if (PgFlush() < 0)
    {
        SDL_SetError("ph_OCUpdate(): PgFlush failed.\n");
    }
}
Example #2
0
void ph_window_refresh_screen (void)
{
	PhArea_t sarea, darea;
	
//	fprintf(stderr,"refresh screen\n");
	switch (ph_window_update_method)
	{
		case PH_NORMAL:
			sarea.pos.x=sarea.pos.y=darea.pos.x=darea.pos.y=0;
			sarea.size.w=darea.size.w=image->dim.w;
			sarea.size.h=darea.size.h=image->dim.h;
			
			PgSetRegion(PtWidgetRid(P_mainWindow));
			PgSetClipping (0,NULL);
			PgContextBlitArea (image,&sarea,NULL,&darea);
		break;
	}
}
Example #3
0
INLINE void ph_window_put_image (int x, int y, int width, int height)
{
	PhArea_t sarea, darea;


	switch (ph_window_update_method)
	{
		case PH_NORMAL:
			sarea.pos.x=x; sarea.pos.y=y;
			sarea.size.w=darea.size.w=width;
			sarea.size.h=darea.size.h=height;
			darea.pos.x=x+startx; darea.pos.y=y+starty;

			PgSetRegion(PtWidgetRid(P_mainWindow));
			PgSetClipping (0,NULL);
			PgContextBlitArea (image,&sarea,NULL,&darea);
		break;
	}
}