src/video/SDL_blit_slow.c
changeset 5184 d976b67150c5
parent 5140 e743b9c3f6d6
child 5262 b530ef003506
equal deleted inserted replaced
5183:227d81a4b66c 5184:d976b67150c5
   115                     srcR = (srcR * srcA) / 255;
   115                     srcR = (srcR * srcA) / 255;
   116                     srcG = (srcG * srcA) / 255;
   116                     srcG = (srcG * srcA) / 255;
   117                     srcB = (srcB * srcA) / 255;
   117                     srcB = (srcB * srcA) / 255;
   118                 }
   118                 }
   119             }
   119             }
   120             switch (flags & (SDL_COPY_BLEND | SDL_COPY_ADD)) {
   120             switch (flags & (SDL_COPY_BLEND | SDL_COPY_ADD | SDL_COPY_MOD)) {
   121             case 0:
   121             case 0:
   122                 dstR = srcR;
   122                 dstR = srcR;
   123                 dstG = srcG;
   123                 dstG = srcG;
   124                 dstB = srcB;
   124                 dstB = srcB;
   125                 dstA = srcA;
   125                 dstA = srcA;
   138                     dstG = 255;
   138                     dstG = 255;
   139                 dstB = srcB + dstB;
   139                 dstB = srcB + dstB;
   140                 if (dstB > 255)
   140                 if (dstB > 255)
   141                     dstB = 255;
   141                     dstB = 255;
   142                 break;
   142                 break;
       
   143             case SDL_COPY_MOD:
       
   144                 dstR = (srcR * dstR) / 255;
       
   145                 dstG = (srcG * dstG) / 255;
       
   146                 dstB = (srcB * dstB) / 255;
       
   147                 break;
   143             }
   148             }
   144             if (dst_fmt->Amask) {
   149             if (dst_fmt->Amask) {
   145                 ASSEMBLE_RGBA(dst, dstbpp, dst_fmt, dstR, dstG, dstB, dstA);
   150                 ASSEMBLE_RGBA(dst, dstbpp, dst_fmt, dstR, dstG, dstB, dstA);
   146             } else {
   151             } else {
   147                 ASSEMBLE_RGB(dst, dstbpp, dst_fmt, dstR, dstG, dstB);
   152                 ASSEMBLE_RGB(dst, dstbpp, dst_fmt, dstR, dstG, dstB);