comparison src/SDL_compat.c @ 2226:0e70b4b8cf84

Date: Sat, 11 Aug 2007 02:03:16 +0200 (CEST) From: couriersud arcor.de To: slouken@libsdl.org Subject: Directfb driver for SDL1.3 Hi, the attachment contains a patch for a SDL1.3 directfb driver. It supports: - Renderer "directfb": Hardware acceleration as supported by the underlying directfb driver. With a radeon X850, testsprite2 runs at 50% to 70% of OpenGL (X11, dri) performance. Also supports hardware accelerated yuv overlays. This must be enabled by sett ing: export SDL_DIRECTFB_YUV_DIRECT=1 - Renderer "opengl" Supports software opengl using mesa opengl (make linux-directfb). Some more information may be found in README.DirectFB There will certainly still be some bugs, and there is some debug code around. When I find some time, I will compile against directfb-0.9.25 as distributed with ubuntu 7.04. The diff also contains a fix for SDL_LockYUVOverlay fixing a bug in *pixels and pitches initialization. Kind regards, couriersud
author Sam Lantinga <slouken@libsdl.org>
date Sat, 11 Aug 2007 21:51:19 +0000
parents 926294b2bb4e
children bb67fd5ccfdb
comparison
equal deleted inserted replaced
2225:3bca1b7ca25b 2226:0e70b4b8cf84
1438 } 1438 }
1439 if (SDL_LockTexture(overlay->hwdata->textureID, NULL, 1, &pixels, &pitch) 1439 if (SDL_LockTexture(overlay->hwdata->textureID, NULL, 1, &pixels, &pitch)
1440 < 0) { 1440 < 0) {
1441 return -1; 1441 return -1;
1442 } 1442 }
1443 overlay->pixels[0] = (Uint8 *) pixels;
1444 overlay->pitches[0] = pitch;
1443 switch (overlay->format) { 1445 switch (overlay->format) {
1444 case SDL_YV12_OVERLAY: 1446 case SDL_YV12_OVERLAY:
1445 case SDL_IYUV_OVERLAY: 1447 case SDL_IYUV_OVERLAY:
1446 overlay->pixels[0] = (Uint8 *) pixels; 1448 overlay->pitches[1] = pitch / 2;
1449 overlay->pitches[2] = pitch / 2;
1447 overlay->pixels[1] = 1450 overlay->pixels[1] =
1448 overlay->pixels[0] + overlay->pitches[0] * overlay->h; 1451 overlay->pixels[0] + overlay->pitches[0] * overlay->h;
1449 overlay->pixels[2] = 1452 overlay->pixels[2] =
1450 overlay->pixels[1] + overlay->pitches[1] * overlay->h; 1453 overlay->pixels[1] + overlay->pitches[1] * overlay->h / 2;
1451 break; 1454 break;
1452 case SDL_YUY2_OVERLAY: 1455 case SDL_YUY2_OVERLAY:
1453 case SDL_UYVY_OVERLAY: 1456 case SDL_UYVY_OVERLAY:
1454 case SDL_YVYU_OVERLAY: 1457 case SDL_YVYU_OVERLAY:
1455 overlay->pixels[0] = (Uint8 *) pixels;
1456 break; 1458 break;
1457 } 1459 }
1458 return 0; 1460 return 0;
1459 } 1461 }
1460 1462