X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Fvideo.c;h=dfdd2e50e33462b579e81569b8f90e7ce43777d0;hb=4c78a1bdd506cda6cda27ee342165c7dfa7ecdc2;hp=60f2155ef699a8f2d07846c552ec5677db013fc5;hpb=04a050f42807686dc119838c82372409246d55bb;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/WM/video.c b/Usermode/Applications/axwin3_src/WM/video.c index 60f2155e..dfdd2e50 100644 --- a/Usermode/Applications/axwin3_src/WM/video.c +++ b/Usermode/Applications/axwin3_src/WM/video.c @@ -49,9 +49,10 @@ void Video_Setup(void) giTerminalFD_Input = 0; // Check that the console is a VT // - _SysIOCtl(..., 0, NULL) returns the type, which should be 2 - if( _SysIOCtl(1, 0, NULL) != 2 ) + tmpInt = _SysIOCtl(1, 0, NULL); + if( tmpInt != 2 ) { - fprintf(stderr, "stdout is not an Acess VT, can't start"); + fprintf(stderr, "stdout is not an Acess VT, can't start (2 exp, %i got)\n", tmpInt); _SysDebug("stdout is not an Acess VT, can't start"); exit(-1); } @@ -87,11 +88,11 @@ void Video_Update(void) _SysDebug("Video_Update - Updating lines %i to %i (0x%x+0x%x px)", giVideo_FirstDirtyLine, giVideo_LastDirtyLine, ofs, size); - _SysSeek(giTerminalFD, ofs*4, 1); + _SysSeek(giTerminalFD, ofs*4, SEEK_SET); _SysDebug("Video_Update - Sending FD %i %p 0x%x", giTerminalFD, gpScreenBuffer+ofs, size*4); _SysWrite(giTerminalFD, gpScreenBuffer+ofs, size*4); _SysDebug("Video_Update - Done"); - giVideo_FirstDirtyLine = 0; + giVideo_FirstDirtyLine = giScreenHeight; giVideo_LastDirtyLine = 0; } @@ -158,10 +159,8 @@ void Video_Blit(uint32_t *Source, short DstX, short DstY, short W, short H) if( W <= 0 || H <= 0 ) return; - if( DstY < giVideo_FirstDirtyLine ) - giVideo_FirstDirtyLine = DstY; - if( DstY + H > giVideo_LastDirtyLine ) - giVideo_LastDirtyLine = DstY + H; + giVideo_FirstDirtyLine = MIN(DstY, giVideo_FirstDirtyLine); + giVideo_LastDirtyLine = MAX(DstY+H, giVideo_LastDirtyLine); buf = gpScreenBuffer + DstY*giScreenWidth + DstX; if(drawW != giScreenWidth || W != giScreenWidth)