Merge branch 'master' of ted.mutabah.net:acess2
[tpg/acess2.git] / KernelLand / Kernel / drvutil_video.c
index 6e63386..094f0b1 100644 (file)
@@ -58,6 +58,9 @@ int DrvUtil_Video_2DStream(void *Ent, const void *Buffer, int Length,
        const Uint8     *stream = Buffer;
         int    rem = Length;
         int    op;
+
+       Uint16  tmp[6];
+
        while( rem )
        {
                rem --;
@@ -83,7 +86,8 @@ int DrvUtil_Video_2DStream(void *Ent, const void *Buffer, int Length,
                case VIDEO_2DOP_NOP:    break;
                
                case VIDEO_2DOP_FILL:
-                       if(rem < 10)    return Length-rem;
+                       if(rem < 12)    return Length-rem;
+                       memcpy(tmp, stream, 6*2);
                        
                        if(!Handlers->Fill) {
                                Log_Warning("DrvUtil", "DrvUtil_Video_2DStream: Driver"
@@ -92,18 +96,18 @@ int DrvUtil_Video_2DStream(void *Ent, const void *Buffer, int Length,
                        }
                        
                        Handlers->Fill(
-                               Ent,
-                               ((const Uint16*)stream)[0], ((const Uint16*)stream)[1],
-                               ((const Uint16*)stream)[2], ((const Uint16*)stream)[3],
-                               ((const Uint32*)stream)[4]
+                               Ent, 
+                               tmp[0], tmp[1], tmp[2], tmp[3],
+                               tmp[4] | ((Uint32)tmp[5] << 16)
                                );
                        
-                       rem -= 10;
-                       stream += 10;
+                       rem -= 12;
+                       stream += 12;
                        break;
                
                case VIDEO_2DOP_BLIT:
                        if(rem < 12)    return Length-rem;
+                       memcpy(tmp, stream, 6*2);
                        
                        if(!Handlers->Blit) {
                                Log_Warning("DrvUtil", "DrvUtil_Video_2DStream: Driver"
@@ -113,9 +117,8 @@ int DrvUtil_Video_2DStream(void *Ent, const void *Buffer, int Length,
                        
                        Handlers->Blit(
                                Ent,
-                               ((const Uint16*)stream)[0], ((const Uint16*)stream)[1],
-                               ((const Uint16*)stream)[2], ((const Uint16*)stream)[3],
-                               ((const Uint16*)stream)[4], ((const Uint16*)stream)[5]
+                               tmp[0], tmp[1], tmp[2], tmp[3],
+                               tmp[4], tmp[5]
                                );
                        
                        rem -= 12;

UCC git Repository :: git.ucc.asn.au