comparison src/video/ps2gs/SDL_gsyuv.c @ 1659:14717b52abc0 SDL-1.3

Merge trunk-1.3-3
author Sam Lantinga <slouken@libsdl.org>
date Wed, 17 May 2006 08:18:28 +0000
parents 51038e80ae59
children 782fd950bd46 c121d94672cb a1b03ba2fcd0
comparison
equal deleted inserted replaced
1658:e49147870aac 1659:14717b52abc0
323 int h, w, i; 323 int h, w, i;
324 Uint32 *lum, *Cr, *Cb; 324 Uint32 *lum, *Cr, *Cb;
325 int lum_pitch; 325 int lum_pitch;
326 int crb_pitch; 326 int crb_pitch;
327 Uint32 *lum_src, *Cr_src, *Cb_src; 327 Uint32 *lum_src, *Cr_src, *Cb_src;
328 Uint32 *src, *dst; 328 Uint32 *srcp, *dstp;
329 unsigned int x, y; 329 unsigned int x, y;
330 SDL_Surface *screen; 330 SDL_Surface *screen;
331 331
332 /* Find out where the various portions of the image are */ 332 /* Find out where the various portions of the image are */
333 hwdata = overlay->hwdata; 333 hwdata = overlay->hwdata;
343 Cb = (Uint32 *)overlay->pixels[1]; 343 Cb = (Uint32 *)overlay->pixels[1];
344 default: 344 default:
345 SDL_SetError("Unsupported YUV format in blit (?)"); 345 SDL_SetError("Unsupported YUV format in blit (?)");
346 return(-1); 346 return(-1);
347 } 347 }
348 dst = (Uint32 *)hwdata->ipu_imem; 348 dstp = (Uint32 *)hwdata->ipu_imem;
349 lum_pitch = overlay->w/4; 349 lum_pitch = overlay->w/4;
350 crb_pitch = (overlay->w/2)/4; 350 crb_pitch = (overlay->w/2)/4;
351 351
352 /* Copy blocks of 16x16 pixels to the DMA area */ 352 /* Copy blocks of 16x16 pixels to the DMA area */
353 for ( h=overlay->h/16; h; --h ) { 353 for ( h=overlay->h/16; h; --h ) {
354 lum_src = lum; 354 lum_src = lum;
355 Cr_src = Cr; 355 Cr_src = Cr;
356 Cb_src = Cb; 356 Cb_src = Cb;
357 for ( w=overlay->w/16; w; --w ) { 357 for ( w=overlay->w/16; w; --w ) {
358 src = lum_src; 358 srcp = lum_src;
359 for ( i=0; i<16; ++i ) { 359 for ( i=0; i<16; ++i ) {
360 dst[0] = src[0]; 360 dstp[0] = srcp[0];
361 dst[1] = src[1]; 361 dstp[1] = srcp[1];
362 dst[2] = src[2]; 362 dstp[2] = srcp[2];
363 dst[3] = src[3]; 363 dstp[3] = srcp[3];
364 src += lum_pitch; 364 srcp += lum_pitch;
365 dst += 4; 365 dstp += 4;
366 } 366 }
367 src = Cb_src; 367 srcp = Cb_src;
368 for ( i=0; i<8; ++i ) { 368 for ( i=0; i<8; ++i ) {
369 dst[0] = src[0]; 369 dstp[0] = srcp[0];
370 dst[1] = src[1]; 370 dstp[1] = srcp[1];
371 src += crb_pitch; 371 srcp += crb_pitch;
372 dst += 2; 372 dstp += 2;
373 } 373 }
374 src = Cr_src; 374 srcp = Cr_src;
375 for ( i=0; i<8; ++i ) { 375 for ( i=0; i<8; ++i ) {
376 dst[0] = src[0]; 376 dstp[0] = srcp[0];
377 dst[1] = src[1]; 377 dstp[1] = srcp[1];
378 src += crb_pitch; 378 srcp += crb_pitch;
379 dst += 2; 379 dstp += 2;
380 } 380 }
381 lum_src += 16 / 4; 381 lum_src += 16 / 4;
382 Cb_src += 8 / 4; 382 Cb_src += 8 / 4;
383 Cr_src += 8 / 4; 383 Cr_src += 8 / 4;
384 } 384 }