so I've made mine then :
Function SetCanvasImage( GadgetNumber, ImageNumber , Memblok )
Make Memblock From Image Memblok, ImageNumber
MbcXSize = Memblock DWord( Memblok, 0 ) : MbcYSize = Memblock DWord( Memblok, 4 )
Depth = Memblock DWord( Memblok, 8 ) / 8
GadXSize = GadgetWidth( GadgetNumber ) : GadYSize = GadgetHeight( GadgetNumber )
If GadXSize < XSize : XSize = GadXSize : Else : XSize = MbcXSize : Endif
If GadYSize < YSize : YSize = GadYSize : Else : YSize = MbcYSize : Endif
For YLoop = 0 To YSize-1
For XLoop = 0 to XSize-1
If Depth = 4
_Ink = Memblock Dword( Memblok, 12 + ( Depth * XLoop ) + ( YLoop * MbcXSize * Depth ) )
Else
_Ink = Memblock Word( Memblok, 12 + ( Depth * XLoop ) + ( YLoop * MbcXSize * Depth ) )
Endif
DrawPoint GadgetNumber, XLoop, YLoop, _Ink
Next XLoop
Next YLoop
PaintGadget GadgetNumber
Delete Memblock Memblok
EndFunction
All we have to decide is what to do with the time that is given to us.