Code: Select all
u16 *dst = (u16*) job->dst;
u32 c = c0 | c0 << 16;
Code: Select all
memset32( dst, c, job->srcPitch );
I guess everyone is on Intel? Specifically, just before the SIGSEGV, I have dst = 0xXXXXXXX2.
Code: Select all
u16 *dst = (u16*) job->dst;
u32 c = c0 | c0 << 16;
Code: Select all
memset32( dst, c, job->srcPitch );
Code: Select all
935 if ( 0 == (job->srcPitch & 3 ) )
935 {
936 for ( s32 dy = 0; dy != job->height; ++dy )
937 {
938 memset32( dst, c, job->srcPitch );
939 dst = (u16*) ( (u8*) (dst) + job->dstPitch );
940 }
941 }
942 else
943 {
944 const s32 dx = job->width - 1;
945
946 for ( s32 dy = 0; dy != job->height; ++dy )
947 {
948 if ((((long)dst)&0x10)==0)
949 {
950 memset32(dst, c, job->srcPitch);
951 dst[dx] = c0;
952 }
953 else
954 {
955 dst[0] = c0;
956 memset32(dst+1, c, job->srcPitch);
957 }
958 dst = (u16*) ( (u8*) (dst) + job->dstPitch );
959 }
960 }
Code: Select all
if ((((long)dst)&3)==0)
Code: Select all
else
{
assert(((int) dst & 1) == 0)
dst[0] = dst[1] = c0;
memset32(dst + 2, c, job->srcPitch - 2);
}
Code: Select all
static void executeBlit_Color_16_to_16( const SBlitJob * job )
{
u16 *dst = (u16*) job->dst;
u16 c0 = video::A8R8G8B8toA1R5G5B5( job->argb );
u32 pixels = job->srcPitch/2;
for ( s32 dy = 0; dy != job->height; ++dy )
{
for ( u32 i=0; i< pixels; ++i )
{
dst[i] = c0;
}
dst = (u16*) ( (u8*) (dst) + job->dstPitch );
}
}