Beispiel #1
0
static IPTR coolimage_draw(Class *cl, Object *o, struct impDraw *msg)
{
    struct CoolImageData    *data;
    WORD    	    	    x, y;
    
    data = INST_DATA(cl, o);
    
    x = IM(o)->LeftEdge + msg->imp_Offset.X;
    y = IM(o)->TopEdge  + msg->imp_Offset.Y;
    
    if (CyberGfxBase && (GetBitMapAttr(msg->imp_RPort->BitMap, BMA_DEPTH) >= 15))
    {
	data->pal[0] = data->bgcol;
	
	WriteLUTPixelArray((APTR)data->image->data,
			    0,
			    0,
			    data->image->width,
			    msg->imp_RPort,
			    data->pal,
			    x,
			    y,
			    data->image->width,
			    data->image->height,
			    CTABFMT_XRGB8);
        
    }
    	    
    return 0;
}
Beispiel #2
0
  static
  void  refresh_rectangle( grArosSurface*  surface,
                           int          x,
                           int          y,
                           int          w,
                           int          h )
  {
     SetAPen(surface->win->RPort, 1);
     SetDrMd(surface->win->RPort, JAM2);

     if (!surface->grays)
     {
	BltTemplate(surface->root.bitmap.buffer,
     		    0,
		    w / 8,
		    surface->win->RPort,
		    surface->win->BorderLeft,
		    surface->win->BorderTop,
		    surface->bpr * 8,
		    surface->root.bitmap.rows);
     } else {
#if 0
       WritePixelArray8(surface->win->RPort,
     			surface->win->BorderLeft,
			surface->win->BorderTop,
			surface->win->BorderLeft + surface->root.bitmap.width - 1,
			surface->win->BorderTop + surface->root.bitmap.rows - 1,
			surface->root.bitmap.buffer,
			0); 
#endif
       WriteLUTPixelArray(surface->root.bitmap.buffer,
			  0,
			  0,
			  surface->root.bitmap.width,
			  surface->win->RPort,
			  surface->cgfxcoltab,
			  surface->win->BorderLeft,
			  surface->win->BorderTop,
			  surface->root.bitmap.width,
			  surface->root.bitmap.rows,
			  CTABFMT_XRGB8);

     }
  }