Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
OpenPandora support added by David Carr?
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed May 31, 2009
1 parent e030668 commit 6b7fccd
Show file tree
Hide file tree
Showing 11 changed files with 1,139 additions and 2 deletions.
4 changes: 3 additions & 1 deletion CREDITS
Expand Up @@ -44,10 +44,12 @@ Thanks to everyone who made this possible, including:

* Eric Wing, Max Horn, and Darrell Walisser for unflagging work on the Mac OS X port

* Couriersud for the DirectFB driver
* David Carr�, for the Pandora port

* Patrice Mandin, for the Atari port

* Couriersud for the DirectFB driver

* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation

* Arne Claus, for the 2004 winning SDL logo,
Expand Down
37 changes: 37 additions & 0 deletions Makefile.pandora
@@ -0,0 +1,37 @@
# Makefile to build the pandora SDL library

AR = arm-none-linux-gnueabi-ar
RANLIB = arm-none-linux-gnueabi-ranlib
CC = arm-none-linux-gnueabi-gcc
CXX = arm-none-linux-gnueabi-g++
STRIP = arm-none-linux-gnueabi-strip

CFLAGS = -O3 -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=softfp \
-mfpu=neon -ftree-vectorize -ffast-math -fomit-frame-pointer -fno-strict-aliasing -fsingle-precision-constant \
-I./include -I$(PNDSDK)/usr/include

TARGET = libSDL.a

SOURCES = ./src/*.c ./src/audio/*.c ./src/cdrom/*.c ./src/cpuinfo/*.c ./src/events/*.c \
./src/file/*.c ./src/stdlib/*.c ./src/thread/*.c ./src/timer/*.c ./src/video/*.c \
./src/joystick/*.c ./src/haptic/*.c ./src/video/dummy/*.c ./src/audio/disk/*.c \
./src/audio/dummy/*.c ./src/loadso/dlopen/*.c ./src/audio/dsp/*.c ./src/audio/dma/*.c \
./src/thread/pthread/SDL_systhread.c ./src/thread/pthread/SDL_syssem.c \
./src/thread/pthread/SDL_sysmutex.c ./src/thread/pthread/SDL_syscond.c \
./src/joystick/linux/*.c ./src/haptic/linux/*.c ./src/timer/unix/*.c ./src/cdrom/dummy/*.c \
./src/video/pandora/SDL_pandora.o ./src/video/pandora/SDL_pandora_events.o ./src/video/x11/*.c


OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')

all: $(TARGET)

$(TARGET): $(CONFIG_H) $(OBJECTS)
$(AR) crv $@ $^
$(RANLIB) $@

$(CONFIG_H):
cp include/SDL_config_pandora.h include/SDL_config.h

clean:
rm -f $(TARGET) $(OBJECTS)
16 changes: 16 additions & 0 deletions README.pandora
@@ -0,0 +1,16 @@
SDL 1.3 with open pandora console support ( http://openpandora.org/ )
=====================================================================

- A pandora specific video driver was writed to allow SDL 1.3 with OpenGL ES
support to work on the pandora under the framebuffer. This driver do not have
input support for now, so if you use it you will have to add your own control code.
The video driver name is "pandora" so if you have problem running it from
the framebuffer, try to set the following variable before starting your application :
"export SDL_VIDEODRIVER=pandora"

- OpenGL ES support was added to the x11 driver, so it's working like the normal
x11 driver one with OpenGLX support, with SDL input event's etc..


David Carré (Cpasjuste)
cpasjuste@gmail.com
14 changes: 13 additions & 1 deletion src/video/SDL_renderer_gles.c
Expand Up @@ -42,6 +42,14 @@ glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)

#endif /* __QNXNTO__ */

#if SDL_VIDEO_DRIVER_PANDORA
GL_API void GL_APIENTRY
glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
{
return;
}
#endif /* SDL_VIDEO_DRIVER_PANDORA */

/* OpenGL ES 1.1 renderer implementation, based on the OpenGL renderer */

static const float inv255f = 1.0f / 255.0f;
Expand Down Expand Up @@ -284,14 +292,18 @@ GLES_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->info.flags |= SDL_RENDERER_SINGLEBUFFER;
}
}

#if SDL_VIDEO_DRIVER_PANDORA
data->GL_OES_draw_texture_supported = SDL_FALSE;
data->useDrawTexture = SDL_FALSE;
#else
if (SDL_GL_ExtensionSupported("GL_OES_draw_texture")) {
data->GL_OES_draw_texture_supported = SDL_TRUE;
data->useDrawTexture = SDL_TRUE;
} else {
data->GL_OES_draw_texture_supported = SDL_FALSE;
data->useDrawTexture = SDL_FALSE;
}
#endif

data->glGetIntegerv(GL_MAX_TEXTURE_SIZE, &value);
renderer->info.max_texture_width = value;
Expand Down
7 changes: 7 additions & 0 deletions src/video/SDL_sysvideo.h
Expand Up @@ -318,6 +318,10 @@ struct SDL_VideoDevice
void *driverdata;
struct SDL_GLDriverData *gl_data;

#if SDL_VIDEO_DRIVER_PANDORA
struct SDL_PrivateGLESData *gles_data;
#endif

/* * * */
/* The function used to dispose of this structure */
void (*free) (_THIS);
Expand Down Expand Up @@ -403,6 +407,9 @@ extern VideoBootStrap DUMMY_bootstrap;
#if SDL_VIDEO_DRIVER_NDS
extern VideoBootStrap NDS_bootstrap;
#endif
#if SDL_VIDEO_DRIVER_PANDORA
extern VideoBootStrap PND_bootstrap;
#endif

#define SDL_CurrentDisplay (_this->displays[_this->current_display])

Expand Down
3 changes: 3 additions & 0 deletions src/video/SDL_video.c
Expand Up @@ -120,6 +120,9 @@ static VideoBootStrap *bootstrap[] = {
#endif
#if SDL_VIDEO_DRIVER_DUMMY
&DUMMY_bootstrap,
#endif
#if SDL_VIDEO_DRIVER_PANDORA
&PND_bootstrap,
#endif
NULL
};
Expand Down

0 comments on commit 6b7fccd

Please sign in to comment.