mirror of
git://projects.qi-hardware.com/openwrt-packages.git
synced 2024-11-29 12:24:05 +02:00
liballegro: fix fbdev driver, also package examples
This commit is contained in:
parent
e7f7d81bc0
commit
2e457ea3d0
@ -5,6 +5,17 @@
|
|||||||
#
|
#
|
||||||
# OpenWRT package for the Allegro game and multimedia library
|
# OpenWRT package for the Allegro game and multimedia library
|
||||||
|
|
||||||
|
# todo:
|
||||||
|
#
|
||||||
|
# * GFX_SAFE has a problem switching to 32bpp mode (maybe it falsely
|
||||||
|
# attempts switching to 24bpp mode?), so it fails. doing a
|
||||||
|
# set_color_depth(32) and GFX_AUTODETECT works.
|
||||||
|
#
|
||||||
|
# * both shooter and skater try to load a demo.dat from /usr/bin. hack them to
|
||||||
|
# use usr/share subdirs?
|
||||||
|
#
|
||||||
|
# * similar problem with setup?
|
||||||
|
#
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=liballegro
|
PKG_NAME:=liballegro
|
||||||
@ -84,6 +95,17 @@ $(call Package/liballegro/Default/description)
|
|||||||
This package contains the Allegro setup program
|
This package contains the Allegro setup program
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/liballegro-examples
|
||||||
|
$(call Package/liballegro/Default)
|
||||||
|
TITLE+= (examples)
|
||||||
|
DEPENDS:=+liballegro
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/liballegro-examples/description
|
||||||
|
$(call Package/liballegro/Default/description)
|
||||||
|
This package contains the Allegro example programs named "ex*"
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/liballegro-utils
|
define Package/liballegro-utils
|
||||||
$(call Package/liballegro/Default)
|
$(call Package/liballegro/Default)
|
||||||
TITLE+= (utils)
|
TITLE+= (utils)
|
||||||
@ -231,6 +253,13 @@ define Package/liballegro-setup/install
|
|||||||
$(CP) $(PKG_BUILD_DIR)/setup/setup.dat $(1)/usr/share/allegro/
|
$(CP) $(PKG_BUILD_DIR)/setup/setup.dat $(1)/usr/share/allegro/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/liballegro-examples/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin/allegro
|
||||||
|
$(CP) $(PKG_BUILD_DIR)/examples/* $(1)/usr/bin/allegro/
|
||||||
|
rm $(1)/usr/bin/allegro/{*.c,*.h,*.txt,*.cmake}
|
||||||
|
rm -r $(1)/usr/bin/allegro/CMakeFiles
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/liballegro-utils/install
|
define Package/liballegro-utils/install
|
||||||
$(INSTALL_DIR) $(1)/usr/bin
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin $(1)/usr
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin $(1)/usr
|
||||||
@ -242,6 +271,7 @@ $(eval $(call BuildPackage,liballegro))
|
|||||||
#$(eval $(call BuildPackage,liballegro-data))
|
#$(eval $(call BuildPackage,liballegro-data))
|
||||||
$(eval $(call BuildPackage,liballegro-demo))
|
$(eval $(call BuildPackage,liballegro-demo))
|
||||||
$(eval $(call BuildPackage,liballegro-setup))
|
$(eval $(call BuildPackage,liballegro-setup))
|
||||||
|
$(eval $(call BuildPackage,liballegro-examples))
|
||||||
$(eval $(call BuildPackage,liballegro-utils))
|
$(eval $(call BuildPackage,liballegro-utils))
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,15 +1,21 @@
|
|||||||
Index: allegro-4.4.2/demos/shooter/demo.c
|
Index: allegro-4.4.2/demos/shooter/demo.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- allegro-4.4.2.orig/demos/shooter/demo.c 2011-05-29 12:56:58.000000000 +0200
|
--- allegro-4.4.2.orig/demos/shooter/demo.c 2011-05-29 12:56:58.000000000 +0200
|
||||||
+++ allegro-4.4.2/demos/shooter/demo.c 2011-05-29 13:50:44.000000000 +0200
|
+++ allegro-4.4.2/demos/shooter/demo.c 2011-05-31 15:57:29.000000000 +0200
|
||||||
@@ -90,9 +90,9 @@
|
@@ -1,3 +1,5 @@
|
||||||
|
+#define DEBUGMODE
|
||||||
|
+
|
||||||
|
#include "demo.h"
|
||||||
|
#include "data.h"
|
||||||
|
#include "expl.h"
|
||||||
|
@@ -90,9 +92,9 @@
|
||||||
allegro_message("Error initialising joystick\n%s\n", allegro_error);
|
allegro_message("Error initialising joystick\n%s\n", allegro_error);
|
||||||
install_joystick(JOY_TYPE_NONE);
|
install_joystick(JOY_TYPE_NONE);
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
- if (set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0) != 0) {
|
- if (set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0) != 0) {
|
||||||
- if (set_gfx_mode(GFX_SAFE, 320, 200, 0, 0) != 0) {
|
- if (set_gfx_mode(GFX_SAFE, 320, 200, 0, 0) != 0) {
|
||||||
+ set_color_depth(32);
|
+ /* set_color_depth(32); */
|
||||||
+ if (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0) != 0) {
|
+ if (set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0) != 0) {
|
||||||
+ if (set_gfx_mode(GFX_SAFE, 320, 240, 0, 0) != 0) {
|
+ if (set_gfx_mode(GFX_SAFE, 320, 240, 0, 0) != 0) {
|
||||||
set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
|
set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
|
||||||
|
55
liballegro/patches/020-fix-fbcon-init.patch
Normal file
55
liballegro/patches/020-fix-fbcon-init.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
Index: allegro-4.4.2/src/linux/fbcon.c
|
||||||
|
===================================================================
|
||||||
|
--- allegro-4.4.2.orig/src/linux/fbcon.c 2011-05-31 15:57:15.000000000 +0200
|
||||||
|
+++ allegro-4.4.2/src/linux/fbcon.c 2011-05-31 17:04:32.000000000 +0200
|
||||||
|
@@ -19,6 +19,10 @@
|
||||||
|
* See readme.txt for copyright information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+/* #define DEBUGMODE */
|
||||||
|
+
|
||||||
|
+#include <errno.h>
|
||||||
|
+#include <string.h>
|
||||||
|
|
||||||
|
#include "allegro.h"
|
||||||
|
#include "allegro/internal/aintern.h"
|
||||||
|
@@ -263,6 +267,7 @@
|
||||||
|
case -1:
|
||||||
|
/* let's see if we can get the actual screen mode */
|
||||||
|
/* shouldn't we be keeping the previous color depth setting? */
|
||||||
|
+ TRACE(PREFIX_I "...orig bpp %i...\n", (int)orig_mode.bits_per_pixel);
|
||||||
|
switch (orig_mode.bits_per_pixel) {
|
||||||
|
case 8:
|
||||||
|
case 16:
|
||||||
|
@@ -360,9 +365,21 @@
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* try to set the mode */
|
||||||
|
+ TRACE(PREFIX_I "...trying w %i h %i vw %i vh %i bpp %i...\n",
|
||||||
|
+ (int)my_mode.xres, (int)my_mode.yres,
|
||||||
|
+ (int)my_mode.xres_virtual, (int)my_mode.yres_virtual,
|
||||||
|
+ my_mode.bits_per_pixel);
|
||||||
|
if (ioctl(fbfd, FBIOPUT_VSCREENINFO, &my_mode) == 0) {
|
||||||
|
+ TRACE(PREFIX_I "...ioctl ok w %i h %i vw %i vh %i bpp %i...\n",
|
||||||
|
+ (int)my_mode.xres, (int)my_mode.yres,
|
||||||
|
+ (int)my_mode.xres_virtual, (int)my_mode.yres_virtual,
|
||||||
|
+ my_mode.bits_per_pixel);
|
||||||
|
if (my_mode.bits_per_pixel == (unsigned)color_depth)
|
||||||
|
goto got_a_nice_mode;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ TRACE(PREFIX_I "...ioctl said %i %s\n", errno, strerror(errno));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -377,6 +394,9 @@
|
||||||
|
close(fbfd);
|
||||||
|
ustrzcpy(allegro_error, ALLEGRO_ERROR_SIZE, get_config_text("Framebuffer resolution not available"));
|
||||||
|
TRACE(PREFIX_E "Resolution %dx%d not available...\n", w, h);
|
||||||
|
+ /* bugfix: if we don't reset fb_mode_read than the next call to
|
||||||
|
+ set_gfx_mode() is going to fail with "bad file descriptor" */
|
||||||
|
+ fb_mode_read = FALSE;
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
got_a_nice_mode:
|
Loading…
Reference in New Issue
Block a user