X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Facesskernel_src%2Fvideo.c;h=da18f482db817fb0b5cd0c5087c026b624094dea;hb=a01b96ccf4ec884e5b894d08a819a37ea3f5f749;hp=5408b56e3cbe9bbb0aad04dff8efd01a1907efcd;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/video.c b/AcessNative/acesskernel_src/video.c index 5408b56e..da18f482 100644 --- a/AcessNative/acesskernel_src/video.c +++ b/AcessNative/acesskernel_src/video.c @@ -166,10 +166,12 @@ Uint64 Video_Write(tVFS_Node *Node, Uint64 Offset, Uint64 Length, const void *Bu LOG("buffer = %p", Buffer); + Offset /= 4; startX = Offset % giUI_Width; startY = Offset / giUI_Width; - - if( Length + startX < giUI_Width ) + Length /= 4; + + if( startX + Length < giUI_Width ) { // Single line UI_BlitBitmap( @@ -177,6 +179,15 @@ Uint64 Video_Write(tVFS_Node *Node, Uint64 Offset, Uint64 Length, const void *Bu Length, 1, Buffer); } + else if( startX == 0 ) + { + int lines = Length / giUI_Width; + int rem = Length % giUI_Width; + UI_BlitBitmap(0, startY, giUI_Width, lines, Buffer); + if( rem ) { + UI_BlitBitmap(0, startY + lines, rem, 1, (Uint32*)Buffer + lines*giUI_Width); + } + } else { // First scanline (partial or full)