summaryrefslogtreecommitdiff
path: root/dev-games/t4k-common/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-06-15 14:57:03 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-06-15 14:57:03 +0100
commitd18bf1e01b65ee4bf0c804e2843b282d3d4e5d7c (patch)
tree4a95cbc6ffdf13bad6ecbc7f8d5af99631984123 /dev-games/t4k-common/files
parente748ba9741f6540f4675c23e3e37b73e822c13a4 (diff)
gentoo resync : 15.06.2021
Diffstat (limited to 'dev-games/t4k-common/files')
-rw-r--r--dev-games/t4k-common/files/t4k-common-0.1.1-fix-declaration.patch10
-rw-r--r--dev-games/t4k-common/files/t4k-common-0.1.1-missing-text.patch14
-rw-r--r--dev-games/t4k-common/files/t4k-common-0.1.1-svg-libxml2.patch73
3 files changed, 97 insertions, 0 deletions
diff --git a/dev-games/t4k-common/files/t4k-common-0.1.1-fix-declaration.patch b/dev-games/t4k-common/files/t4k-common-0.1.1-fix-declaration.patch
new file mode 100644
index 000000000000..8b1188039f42
--- /dev/null
+++ b/dev-games/t4k-common/files/t4k-common-0.1.1-fix-declaration.patch
@@ -0,0 +1,10 @@
+https://bugs.gentoo.org/759574
+--- a/src/t4k_menu.c 2013-12-02 10:50:23.000000000 -0500
++++ b/src/t4k_menu.c 2021-01-04 19:49:20.561524579 -0500
+@@ -152,5 +152,5 @@
+ char* find_longest_text(MenuNode* menu, int* length);
+ int find_longest_menu_page(MenuNode* menu);
+-void set_font_size();
++void set_font_size(bool uniform);
+ void prerender_menu(MenuNode* menu);
+ int min(int a, int b);
diff --git a/dev-games/t4k-common/files/t4k-common-0.1.1-missing-text.patch b/dev-games/t4k-common/files/t4k-common-0.1.1-missing-text.patch
new file mode 100644
index 000000000000..72cb5372c282
--- /dev/null
+++ b/dev-games/t4k-common/files/t4k-common-0.1.1-missing-text.patch
@@ -0,0 +1,14 @@
+Fix some missing (transparent) text with libsdl-1.2.15_p20210224
+e.g. empty menus in tuxmath
+--- a/src/t4k_sdl.c
++++ b/src/t4k_sdl.c
+@@ -1401,3 +1401,3 @@
+ /* Use color key for eventual transparency: */
+- color_key = SDL_MapRGB(bg->format, 30, 30, 30);
++ color_key = SDL_MapRGBA(bg->format, 30, 30, 30, 0xff);
+ SDL_FillRect(bg, NULL, color_key);
+@@ -1448,3 +1448,3 @@
+ SDL_SetColorKey(bg, SDL_SRCCOLORKEY|SDL_RLEACCEL, color_key);
+- out = SDL_DisplayFormatAlpha(bg);
++ out = SDL_DisplayFormat(bg);
+ SDL_FreeSurface(bg);
diff --git a/dev-games/t4k-common/files/t4k-common-0.1.1-svg-libxml2.patch b/dev-games/t4k-common/files/t4k-common-0.1.1-svg-libxml2.patch
new file mode 100644
index 000000000000..590be3858de0
--- /dev/null
+++ b/dev-games/t4k-common/files/t4k-common-0.1.1-svg-libxml2.patch
@@ -0,0 +1,73 @@
+https://bugs.gentoo.org/763591
+
+https://github.com/tux4kids/t4kcommon/commit/99e9d3895b480d5998513592f6af25096c6d1c50
+From: Paul Huff <paul.huff@gmail.com>
+Date: Wed, 1 May 2019 19:56:12 -0600
+Subject: [PATCH] Use libxml2 to get info from svg files for frame counts since
+ librsvg doesn't let you access the description anymore.
+--- a/src/t4k_loaders.c
++++ b/src/t4k_loaders.c
+@@ -41,4 +41,6 @@
+ #include<librsvg/rsvg.h>
+ #include<librsvg/rsvg-cairo.h>
++#include <libxml/parser.h>
++#include <libxml/tree.h>
+ #endif
+
+@@ -49,4 +51,5 @@
+
+ #ifdef HAVE_RSVG
++int get_number_of_frames_from_svg(const char *file_name);
+ SDL_Surface* load_svg(const char* file_name, int width, int height, const char* layer_name);
+ sprite* load_svg_sprite(const char* file_name, int width, int height);
+@@ -161,4 +164,43 @@
+ #ifdef HAVE_RSVG
+
++int get_number_of_frames_from_svg(const char* file_name) {
++ xmlDocPtr svgFile;
++ xmlNodePtr svgNode = NULL, nodeIterator = NULL;
++ int number_of_frames = 0, found = 0;
++
++ svgFile = xmlReadFile(file_name, NULL, XML_PARSE_RECOVER | XML_PARSE_NOERROR | XML_PARSE_NOWARNING);
++
++ /* If it's null something's really wrong because we're trying to load a sprite that doesn't exist */
++ if(svgFile == NULL) {
++ DEBUGMSG(debug_loaders, "get_number_of_frames_from_svg: couldn't load svgFile: %s\n", file_name);
++ return 0;
++ }
++
++ svgNode = xmlDocGetRootElement(svgFile);
++
++ /* If it's null then something's really wrong because there should be a root in every svg file... */
++ if(svgNode == NULL) {
++ DEBUGMSG(debug_loaders, "get_number_of_frames_from_svg: couldn't load the root from the svgFile: %s", file_name);
++ xmlFreeDoc(svgFile); /* be clean */
++ return 0;
++ }
++
++ nodeIterator = svgNode->children;
++ while(nodeIterator) {
++ if(xmlStrcasecmp(nodeIterator->name, (const xmlChar*)"desc") == 0) {
++ sscanf((const char*)xmlNodeGetContent(nodeIterator), "%d", &number_of_frames);
++ xmlFreeDoc(svgFile);
++ return number_of_frames;
++ }
++ nodeIterator = nodeIterator->next;
++ }
++
++ /* if we get here we had no description, which means something's really wrong */
++ DEBUGMSG(debug_loaders, "get_number_of_frames_from_svg: couldn't find the description frame number count from svgFile: %s", file_name);
++ xmlFreeDoc(svgFile);
++ return 0;
++}
++
++
+ /* Load a layer of SVG file and resize it to given dimensions.
+ If width or height is negative no resizing is applied.
+@@ -215,5 +257,5 @@
+
+ /* get number of frames from description */
+- sscanf(rsvg_handle_get_desc(file_handle), "%d", &new_sprite->num_frames);
++ new_sprite->num_frames = get_number_of_frames_from_svg(file_name);
+ DEBUGMSG(debug_loaders, "load_svg_sprite(): loading %d frames\n", new_sprite->num_frames);
+