SDL 2.0 on Raspberry Pi

Hi!

Has anyone tried to use SDL 2.0 on Raspberry Pi?

I compiled SDL from Hg with

CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"
LDFLAGS="-L/opt/vc/lib"

to use VideoCore OpenGL ES implementation. (See footnote)

But when I run my application (https://github.com/brmlab/armap) I get
the following error:

SDL_GL_CreateContext(): Invalid window

I am happy to help with the debugging.

PS: I do call bcm_host_init() at the beginning of my source.—

Compiling SDL on Raspbian resulted in the following bug report -
https://bugs.launchpad.net/raspbian/+bug/1062954 . I guess this can be
fixed in SDL sources as well (i.e. use <EGL/egl.h> instead of
<GLES/egl.h> in SDL sources), because GLES/egl.h is legacy.


Best Regards / S pozdravom,

Pavol Rusnak <@Pavol_Rusnak>

2012/10/6 Pavol Rusnak

Hi!

Has anyone tried to use SDL 2.0 on Raspberry Pi?

I compiled SDL from Hg with

CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"
LDFLAGS="-L/opt/vc/lib"

to use VideoCore OpenGL ES implementation. (See footnote)

But when I run my application (https://github.com/brmlab/armap) I get
the following error:

SDL_GL_CreateContext(): Invalid window

I am happy to help with the debugging.

PS: I do call bcm_host_init() at the beginning of my source.

I’m interested in this but never got around to runnning some tests…are
you running this under X11? which video backend is SDL using? DirectFB? X11?–
Gabriel.

X11On 06/10/12 20:23, Gabriel Jacobo wrote:

I’m interested in this but never got around to runnning some tests…are
you running this under X11? which video backend is SDL using? DirectFB? X11?


Best Regards / S pozdravom,

Pavol Rusnak <@Pavol_Rusnak>

Hi,

I have started a Raspberry Pi/BCM chip and OpenGL ES back-end Port for SDL2. It is probably far from being finished.

What works so far: Opening a window, create an OpenGL ES context and then start rendering with OpenGL ES API.
It is has been developed and tested so far using OpenElec.TV/XBMC (which does not offer X11 per default anyways).
The bcm/OpenGL ES driver of SDL2 is currently configured to pop up a display layer on top of XBMC running -
test applications pop up on top of XBMC.
Driver code is inspired by the code found in the XBMC raspberry pi sources.

The hg repo (a clone of SDL2) is publicly available at:
http://dynware-hq.org/hg/pub/SDL-rpi/

See README.rpi for details. I haven’t rebased the repo for three month now with the official SDL2 repo - so
it might have some parts (in particular related to OpenGL ES additions) that are not in sync.

Anyways, comments and help is very welcome!

Thanks,

  • DanielOn Oct 6, 2012, at 8:36 PM, Pavol Rusnak wrote:

On 06/10/12 20:23, Gabriel Jacobo wrote:

I’m interested in this but never got around to runnning some tests…are
you running this under X11? which video backend is SDL using? DirectFB? X11?

X11


Best Regards / S pozdravom,

Pavol Rusnak


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Here is the ldd output called on my binary as a proof that it’s using
VideoCore OpenGL ES API:

/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0x4017c000)
libfreenect.so.0.1 => /usr/lib/arm-linux-gnueabihf/libfreenect.so.0.1

(0x40144000)
libSDL2-2.0.so.0 => /usr/local/lib/libSDL2-2.0.so.0 (0x40185000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x40094000)
libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x400fe000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x402c0000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x4038d000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x400cb000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x403fe000)
libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x4004d000)
libusb-1.0.so.0 => /lib/arm-linux-gnueabihf/libusb-1.0.so.0 (0x4011b000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x40130000)
libts-0.0.so.0 => /usr/lib/arm-linux-gnueabihf/libts-0.0.so.0 (0x4007f000)
/lib/ld-linux-armhf.so.3 (0x4001c000)
libEGL.so => /opt/vc/lib/libEGL.so (0x4052b000)
libvcos.so => /opt/vc/lib/libvcos.so (0x400b3000)
libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x40158000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x40165000)On 06/10/12 20:23, Gabriel Jacobo wrote:

I am happy to help with the debugging.

PS: I do call bcm_host_init() at the beginning of my source.


Best Regards / S pozdravom,

Pavol Rusnak <@Pavol_Rusnak>