Mercurial > sdl-ios-xcode
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 |