Opened 14 years ago

Closed 13 years ago

Last modified 12 months ago

#8472 closed patch (outdated)

Patch to make WinCE backend work with OPIE

Reported by: SF/j0tt Owned by: fingolfin
Priority: normal Component: Ports
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 14 years ago.

Download all attachments as: .zip

Change History (6)

by SF/j0tt, 14 years ago

Attachment: opiepatch.diff added

comment:1 by sev-, 14 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, 14 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, 13 years ago

What is the status of this item?

comment:4 by fingolfin, 13 years ago

Owner: set to fingolfin
Resolution: outdated
Status: newclosed

comment:5 by digitall, 12 months ago

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