X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrvutil_video.c;h=2bee791fafeaf176fa280a870fb9de87a120ec89;hb=8dcc3e209d0d728565a18c8dca2b0ba220b74a6f;hp=05fa102684700f32a5072670b2d02e676a496faa;hpb=77099870d7148903cbf7b47409b7be0666a03753;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drvutil_video.c b/KernelLand/Kernel/drvutil_video.c index 05fa1026..2bee791f 100644 --- a/KernelLand/Kernel/drvutil_video.c +++ b/KernelLand/Kernel/drvutil_video.c @@ -265,12 +265,16 @@ int DrvUtil_Video_WriteLFB(tDrvUtil_Video_BufInfo *FBInfo, size_t Offset, size_t px = (void*)dest; } } + if( x > 0 ) { + dest += FBInfo->Pitch; + } } else { ofs = Offset; dest += ofs; memcpy(dest, Buffer, Length); + dest += Length; } break; default: @@ -293,9 +297,11 @@ int DrvUtil_Video_WriteLFB(tDrvUtil_Video_BufInfo *FBInfo, size_t Offset, size_t return -1; } if( FBInfo->BackBuffer && dest ) { - memcpy((char*)FBInfo->Framebuffer + ofs, (char*)FBInfo->BackBuffer + ofs, - ((tVAddr)dest - (tVAddr)FBInfo->BackBuffer) - ofs - ); + void *_dst = (char*)FBInfo->Framebuffer + ofs; + void *_src = (char*)FBInfo->BackBuffer + ofs; + size_t len = ((tVAddr)dest - (tVAddr)FBInfo->BackBuffer) - ofs; + // Log_Debug("DrvUtil", "Copy from BB %p to FB %p 0x%x bytes", _src, _dst, len); + memcpy(_dst, _src, len); } DrvUtil_Video_DrawCursor(FBInfo, csr_x, csr_y);