Код:// 2x 32bit void render_2x(u8 *dst, u32 pitch) { if (!conf.noflic) { u32 *src = (u32*)vbuf[vid.buf]; src += conf.framex * 2; src += conf.framey * VID_WIDTH * 2; for (u32 i=0; i<conf.frameysize; i++) { memcpy (dst, src, pitch); dst += pitch; memcpy (dst, src, pitch); dst += pitch; src += VID_WIDTH * 2; } } else // noflic { RGB32 *src1 = (RGB32*)vbuf[vid.buf]; src1 += conf.framex * 2; src1 += conf.framey * VID_WIDTH * 2; RGB32 *src2 = (RGB32*)vbuf[vid.buf^1]; src2 += conf.framex * 2; src2 += conf.framey * VID_WIDTH * 2; for (u32 i=0; i<conf.frameysize; i++) { RGB32 *src11 = src1; RGB32 *src22 = src2; u8 *dst1 = dst; for (u32 j=0; j<(pitch/4); j++) { RGB32 p1 = *src11++; RGB32 p2 = *src22++; *dst++ = (p1.b + p2.b) >> 1; *dst++ = (p1.g + p2.g) >> 1; *dst++ = (p1.r + p2.r) >> 1; dst++; } memcpy (dst, dst1, pitch); dst += pitch; src1 += VID_WIDTH * 2; src2 += VID_WIDTH * 2; } } }




Ответить с цитированием