1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2025-04-21 12:27:27 +03:00
Commit Graph

142 Commits

Author SHA1 Message Date
Maarten ter Huurne 0a9229ff3f Surface: Use the destructor as intended.
There is no reason to have an explicit free() method instead of just
destructing the Surface object and doing cleanup in the destructor.
2011-06-02 18:15:15 +02:00
Maarten ter Huurne 0c867aabbf Surface: Fixed memory leak in previous commit.
I forgot to initialize freeWhenDone in two of the three constructors.
2011-06-02 18:07:17 +02:00
Maarten ter Huurne 7dac306c16 Surface: Removed fake double buffering.
Use real double buffering instead.

I checked the SDL code and if the hardware cannot provide double buffering
it will use a shadow surface to ensure that a frame is not displayed until
it has been fully painted.

Also disable mouse cursor before opening the output surface. The reason it
was disabled after the surface was opened is that SDL on GP2X has a bug.
However, this means the cursor is visible for a short time during startup
which looks ugly.
2011-06-02 17:59:26 +02:00
Maarten ter Huurne 5b6d922f11 Fixed bug: wallpaper does not use alpha channel.
The unnecessary alpha channel might harm performance but is not a big deal.
However, the fact that the alpha flag (bool) is somehow automatically
converted by C++ into a skin name (string) causes the entire screen to
stay black.

The black screen was fixed by removing the alpha flag.
For optimum blitting performance, the wallpaper surface is then converted
to the pixel format of the frame buffer.

Bug was introduced in 52c89d6005.
2011-06-02 07:13:59 +02:00
Maarten ter Huurne 8b17e2ef62 PNG: Make loadPNG() responsible for creating an RGBA surface.
Before this commit loadPNG() could return any surface format and the caller
was responsible for converting it to the desired format. However, in practice
all callers want a surface with an alpha channel and SDL only supports that
with 32bpp surfaces, so RGBA or a permutation thereof. So I changed the
contract for loadPNG() so it is required to return an RGBA surface, and
removed the conversion code in the callers.

The next step is to replace IMG_Load() by a function that calls libpng
directly and loads a fixed 32bpp pixel format. That way, we can drop the
SDL_image dependency and avoid unnecessary pixel format conversions.
2011-06-02 06:19:21 +02:00
Maarten ter Huurne 7877fee3fa Surface: Remove alpha flag.
As for SurfaceCollection, the alpha flag passed to the Surface constructor
was also always true. Therefore there is no need to have the flag.
2011-06-02 06:02:45 +02:00
Maarten ter Huurne 44ca4e3460 SurfaceCollection: Removed alpha flag.
In the existing code the alpha flag is always true, so there is no point
in passing it around.
2011-06-02 05:52:47 +02:00
Maarten ter Huurne af3ed78496 Merge branch 'master' of projects.qi-hardware.com:gmenu2x 2011-06-02 05:46:25 +02:00
Sergey Kukunin 240286df11 Add powersaver class 2011-06-02 06:32:39 +03:00
Maarten ter Huurne 52c89d6005 Surface: Removed duplicate constructor.
There were two constructors that took an image path, skin name and alpha flag
as their arguments, but in different orders. We need only one of them.
2011-06-02 04:57:21 +02:00
Maarten ter Huurne b2896d6bac ASFont: Refactored string drawing methods.
Renamed methods that draw a single line from write() to writeLine().
There is now only one write() method left: the public method.

Pass surface to draw on as wrapped Surface instead of SDL_Surface.
At the end of the call chain we still use SDL directly though.
2011-06-02 04:29:19 +02:00
Maarten ter Huurne b6a5d89bc8 Surface: Removed unused code and restricted access.
Removed all methods that are never called.
Made methods that are only called by Surface itself private.

One ugly thing remaining is outside access to the "raw" field.
2011-06-02 03:39:34 +02:00
Maarten ter Huurne a382a425a9 ASFont: access font pixels efficiently.
Previous commit ensures that the font surface is always 32 bpp.
Therefore we can read font pixels directly through a pointer.
2011-05-12 02:10:40 +02:00
Maarten ter Huurne 41e6e4693e ASFont: only convert font surface if it is not already in a 32bpp format. 2011-05-12 01:20:26 +02:00
Maarten ter Huurne db5ebff16f Fixed debug print.
GCC 4.5.1 has stricter checking of format strings and refused to compile this.
2011-05-11 02:31:41 +02:00
Maarten ter Huurne 8592038f95 Merge branch 'master' of projects.qi-hardware.com:gmenu2x 2011-05-11 01:37:57 +02:00
Maarten ter Huurne bff04d2418 ASFont: removed duplication of horizontal alignment code. 2011-05-10 02:43:15 +02:00
Maarten ter Huurne b4f3cde526 ASFont: merged SFontPlus class into ASFont class. 2011-05-10 02:37:10 +02:00
Maarten ter Huurne 1bc55392cd ASFont: cleanups in text write methods. 2011-05-10 02:23:13 +02:00
Maarten ter Huurne ff546cdcb0 ASFont: have a single routine for computing text width that also handles newlines.
This way the text has to be scanned only once and no copying is needed.
2011-05-10 02:08:14 +02:00
Maarten ter Huurne e4b71138b9 ASFont: removed precalculation of half heights.
There is no point in precalculating something so cheap to recalculate.
Also, the majority of uses was to compensate for passing the wrong alignment argument.
2011-05-10 00:31:45 +02:00
Maarten ter Huurne 492a36b9df ASFont: simplified object initialization and cleanup.
Do initialization and cleanup in constructor and destructor respectively.
Removed constructors that are not used by gmenu2x.
2011-05-09 14:54:11 +02:00
Maarten ter Huurne ec5d426d83 ASFont: moved SFontPlus code into ASFont source files.
This is in preparation of merging the classes.
2011-05-09 14:25:16 +02:00
Maarten ter Huurne a35a7e2c35 Introduced enums for text alignment in the ASFont class. 2011-05-09 05:17:25 +02:00
Maarten ter Huurne c54dec90f5 Minor cleanups in SFontPlus and ASFont.
Removed unused includes.
Avoid importing classes into default namespace in headers.
Don't use a type alias if it does not add value.
2011-05-09 04:29:59 +02:00
Maarten ter Huurne e6be835038 Isolate all PNG loading in a separate source/header.
This is in preparation of replacing SDL_image with direct use of libpng.
2011-05-09 03:56:57 +02:00
Ayla 38a83dd385 On the skin menu, the ALTLEFT/ALTRIGHT buttons will now respectively decrease/increase the ARGB values by 10. 2011-04-14 19:35:50 +02:00
Maarten ter Huurne c22cc4d663 Cleaned up link flags.
Use the flags found by "configure" and nothing more.
The hardcoded "-lpng12" broke linking with libpng 1.4.
2011-04-13 03:40:36 +02:00
Maarten ter Huurne f9db1fbd53 Merge remote branch 'origin/master' 2011-04-13 03:14:45 +02:00
Maarten ter Huurne 34a3d55d10 Added missing #include.
Fixes compile error when compiling with GCC 4.5.1.
2011-04-13 03:14:10 +02:00
Ayla ba9fef5c42 The locale configuration will now be saved. 2011-04-12 13:24:35 +02:00
Ayla ec000e0214 Changed an error message, that was displaying "Error:" twice. Plus, it now more meaningful. 2011-03-30 15:44:32 +02:00
David Kühling 5300921fab gmenu2x: make console the foreground console before launching applications
Emacs didn't like how it was launched before
2011-02-21 23:54:07 +01:00
Xiangfu Liu 91d3fea2ec fixed section display not correct in ben nanonote 2011-01-13 17:20:17 +08:00
Xiangfu Liu bfe772b690 using STDOUT_FILENO, remove tcsetpgrp 2011-01-05 22:11:54 +08:00
David Kühling dd0709e1da Fix problems with missing tty for launched applications 2010-12-26 17:58:22 +01:00
Xiangfu Liu be9c6b9220 update the brightness file path to NanoNote
Signed-off-by: Xiangfu Liu <xiangfu@sharism.cc>
2010-11-17 17:26:34 +08:00
Ayla 69c702f88c When adding a new link, the default brightness is now -1.
Note that the brightness values between -1 and 5 won't be accepted, and will be set back to 5.
2010-10-13 22:15:55 +02:00
Ayla 5cd92b76ae The selector filters will now match also the files with an extension in uppercase.
Please note that the selector filters have to be entered in lowercase.
2010-10-13 22:09:43 +02:00
Ayla ffdc8de2ac User can now increase/decrease by 10 the values of clock, brightness etc. 2010-09-19 00:50:16 +02:00
Ayla 08468776f4 When a foo.dge file is loaded, the image file foo.png will be automatically assigned. 2010-09-18 21:28:54 +02:00
Ayla 563cb34a89 Rewrote the whole input system.
Gmenu2X will no longer eat 100% CPU ;)
2010-09-17 22:34:26 +02:00
Ayla c6c3dfe8e0 Added some signal handlers, so that gmenu2x will exit correctly if a TERM signal occurs or after a segfault. 2010-09-17 22:32:41 +02:00
Ayla 7c9364780b Replaced every message output by calls to the log macros. 2010-09-17 22:31:09 +02:00
Ayla 7d0c0e958c Adding a new file, debug.h, containing useful macros to output information:
DEBUG, INFO, WARNING, ERROR. The log level can be set using the LOG_LEVEL define.
2010-09-17 22:28:23 +02:00
bartbes 5c05348ba9 Automatically switches CARD_ROOT to / when CARD_ROOT doesn't exist 2010-09-01 22:50:43 +02:00
bartbes cf9628a4cc More fixed for when CARD_ROOT doesn't exist 2010-09-01 22:11:24 +02:00
bartbes 6381674f57 Fixed segfault when CARD_ROOT didn't exist & added _CARD_ROOT
compile-time define to set CARD_ROOT

Note that you shouldn't set CARD_ROOT (or _CARD_ROOT) to /, because that
might mess things up.
2010-09-01 17:37:27 +02:00
bartbes e9941dc4fd Now only allows file browsing up to /, CARD_ROOT is /card/ 2010-08-03 17:49:34 +02:00
bartbes ba9af53c21 Changed the file browser to use / as root and added ability to see extensionless files (i.e. executables) 2010-08-03 17:32:54 +02:00