Opened 19 years ago

Closed 18 years ago

Last modified 5 years ago

#8472 closed patch (outdated)

Patch to make WinCE backend work with OPIE

Reported by: SF/j0tt Owned by: fingolfin
Priority: normal Component: Ports
Version: Keywords:
Cc: Game:

Description

This patch will allow you to use the keyboard, toolbar and key mappings on linux handheld devices running Opie (Qtopia OpenZaurus should work too). Namely it makes the wince backend more usable with general SDL capable devices using 320x240 resolution.

Main changes: - Introduced a getPreferredGUI{width,height} in OSystem and use this instead of the overlaySize in GUI elements. This will make the GUI elements scale correct when the keyboard/toolbar is enabled. - Introduced a OPIE_BACKEND define which can be enabled with configure when choosing opie backend - Fixed some #includes in backend/wince and dependend files that where not using correct path and cases - Put the backend/wince WinCE specific code in #ifndef OPIE_BACKEND and introduced some QT embedded code to query device resolution when building Opie backend - Introduced SDL_xpm.h in backend/wince to parse xpm files - Converted bmp to xpm and made new xpm for keyboard and toolbar (makes the patch so huge) - Some #defines in stdafx.h to make the Opie backend more compatible with wince source

Notes: diff -urN was run against CVS from 2005-10-13.

When using OpenEmbedded the bb should have something like this to make it work:

EXTRA_OECONF = "--host=linupy \ --backend=opie \ --with-sdl-prefix=${STAGING_BINDIR}/.. \ --disable-alsa \ --with-ogg-prefix=${STAGING_LIBDIR}/.. \ --with-tremor-prefix=${STAGING_LIBDIR}/.. \ --with-mpeg2-prefix=${STAGING_LIBDIR}/.. \ --with-mad-prefix=${STAGING_LIBDIR}/.. "

do_compile() { oe_runmake CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS} -ggdb" CXXFLAGS="${CXXFLAGS} -ggdb - I${STAGING_LIBDIR}/../qt2/include/" LDFLAGS="${LDFLAGS} - lmpeg2 -lSDLmain -ggdb" \ DEFINES="-DUNIX -DSCUMM_NEED_ALIGNMENT - DUSE_MAD -DUSE_VORBIS -DUSE_TREMOR -DUSE_ZLIB - DUSE_MPEG2 -DDISABLE_SAGA -DOPIE_BACKEND - DSMALL_SCREEN_DEVICE -DDISABLE_KYRA" }

Ticket imported from: #1325302. Ticket imported from: patches/577.

Attachments (1)

opiepatch.diff (119.5 KB ) - added by SF/j0tt 19 years ago.

Download all attachments as: .zip

Change History (6)

by SF/j0tt, 19 years ago

Attachment: opiepatch.diff added

comment:1 by sev-, 19 years ago

Short summary of our IRC discussion:

- getPreferredGUI() is questionable. We should try to avoid introduce of yet another OSystem method - Images are better to keep in a manner as joostp does for his PSP port. I.e. zipped BMPs put into C arrays. Not verbose XPM + SDL_image functions - Probably it would be better to split out of WinCE backend a generic Smallscreen backend and both OPIE and WinCE will inherit from that. I.e.

SDL ---> Smallscreen ---> WinCE +----> OPIE - Yes, WinCE backend needs cleanup but that should be sumbitted separately and discussed with arisme. - As of OPIE compilation just create platform-specific Makefile. See backends/gp32/Makefile and backends/gp32/build.rules

comment:2 by fingolfin, 19 years ago

EPOC, gp32 and maybe even PalmOS (which currently has its own backend, of course) could profit from such changes to the SDL backend, too.

Furthemore, common virtual keyboard code would be potentially a big boon to many existing and future ports... A key factor here is to make using stuff like this easy, while not adding (much) bloat if the target OS already provides its own virtual keyboard / feature X.

Regarding images: We need a BMP (or other format) loader soon anyway. Storing gzip compressed BMP data in a C-array is something we soon may have to do "often", so it might be nice to have some code which takes such an array and turns it into a Graphics::Surface.

comment:3 by fingolfin, 18 years ago

What is the status of this item?

comment:4 by fingolfin, 18 years ago

Owner: set to fingolfin
Resolution: outdated
Status: newclosed

comment:5 by digitall, 5 years ago

Component: Ports
Note: See TracTickets for help on using tickets.