diff options
author | eroen <eroen@occam.eroen.eu> | 2012-10-23 11:10:03 +0200 |
---|---|---|
committer | eroen <eroen@occam.eroen.eu> | 2012-10-23 11:10:03 +0200 |
commit | 0bfcc4f8893fa4a5de068874b00f83360c3792c6 (patch) | |
tree | 6c9fe32a0c66e4d318e95b2e3ce896de4dfa7ef0 /dev-libs | |
parent | dfhack ebuild, with light patching. (diff) | |
download | eroen-0bfcc4f8893fa4a5de068874b00f83360c3792c6.tar.gz eroen-0bfcc4f8893fa4a5de068874b00f83360c3792c6.tar.bz2 eroen-0bfcc4f8893fa4a5de068874b00f83360c3792c6.zip |
libegg hooks for ligbraphics
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/libgraphics/Manifest | 9 | ||||
-rw-r--r-- | dev-libs/libgraphics/files/0001-Add-something-eggy.patch | 155 | ||||
-rw-r--r-- | dev-libs/libgraphics/files/SConscript | 1 | ||||
-rw-r--r-- | dev-libs/libgraphics/files/SConscript-egg | 50 | ||||
-rw-r--r-- | dev-libs/libgraphics/libgraphics-34.11.ebuild | 12 | ||||
-rw-r--r-- | dev-libs/libgraphics/metadata.xml | 3 |
6 files changed, 223 insertions, 7 deletions
diff --git a/dev-libs/libgraphics/Manifest b/dev-libs/libgraphics/Manifest index 63e64fc..7352165 100644 --- a/dev-libs/libgraphics/Manifest +++ b/dev-libs/libgraphics/Manifest @@ -1,6 +1,7 @@ -AUX SConscript 1737 SHA256 585f3d8cd44afaabd8c3930ae88a7ce37bc64430db3bbd5849d90014e2192e35 SHA512 92fcd59c1bb85adff0afa8b2f3f0d7ef6c0c3a85dac50b4b8d4a6aa9fe6d6334368a0927d80c20139d3af87f5fc086be9312aa714ad5d090b357449235e845a5 WHIRLPOOL 9afc11d2cbb2fa1d84275c3fa52e24497d86e559a654de6d4ab7ea9699b4e3e7ff92450a182efa15d4e67a06ef7a6069dbb3ba6300500e7306e2fdf3327c1f62 +AUX 0001-Add-something-eggy.patch 4405 SHA256 602b565d1017f5319c757c205c7ff89a3606effa38f18c1e80c03dd8d2a39603 SHA512 ef8f956738032f93d982ca24f50c64faa680a2da8816ef7d5835e492590ddbcf0a3214318be9a3d298b016c63261e9dd4cf3df24daa11b9b785062eed2e5d983 WHIRLPOOL 06b44f4169a3e87a61b0b845fe82ee062f1d3ca5479484e2205f05e876921b0bc889ad1a24add139ce54fe155fba91141777991e25492e8c39b67341f2e05e78 +AUX SConscript 1803 SHA256 6a7958f7f04761bd7b808904d1b10659703b539b913d5686e4db95bfe1073e33 SHA512 dec6d0b0b830fb8ada2ccafb6b42796c19bd26698908f72663f38a9053da82e4cec4ea9ce9a2acefc224e6435858171ac17d6d997126858f98713ddeae9fa0e4 WHIRLPOOL 920affa3e1e2c3f05cbc06aba9ce7192ebd2d9a4a0712694bc241f713a007dae29e63438c74b56ce08232def4b46da29cbdaa67ead747d8b3b3f3f37f52a5141 +AUX SConscript-egg 1809 SHA256 b300f91ae4c84f52f2e34aa27a898f00da86098570ce5dde12453b86d7a16ea6 SHA512 de883a86640e0f85b81a58b9d022877b8d56841b1a3c4bfd9f2f79c4c34ecad0d347c9ed0f6b6a3bc70b8fcb4099626ea355898691429386f91580c17a8a004a WHIRLPOOL 4d1f6c7ab7965308119d8ef8527ebc695e1df9497e8858ce29eb53c135140437e8bdb7dfeb0c2163c836bf7d2489e494ac24d763315b86abeda79e580701352d AUX SConstruct 33 SHA256 1d6c6f8c72753c52d014aad4a9a57169a18ad83d280a27b9d47b8021a09cef7a SHA512 a189dbdb8ceec11d7cebd1e295ab494d5bb6056139be2caa443e595d14f642c2ee2ef688d06f6577e65a66b2722ed0b9138bf4a9d2bceba03236565b125382a9 WHIRLPOOL 1f92c339f26cf8d859e01f5652c0e369612ae3e9acb0f3c7e21f4ffbb75e3daedde40a638e7ed28af103805516d284dbeabf5d0f9a9a03f8df4c616a3c73f8fb DIST df_34_11_linux.tar.bz2 11587360 SHA256 720eda6c83e72fb1212a8eead0c39989ab5387bcf42dc4028a14e8df5bdd69e2 SHA512 3e270b53aa0ad0abcd3d435dc7da765b08e450de8cf6e5402f40e8dbd20ec2001cf0d59c20a58e3a65dd661260e92123e037e25606d0fece1d354ccfbe454438 WHIRLPOOL caa0e3ee4d521e4399ca5f203c6de4d7180eb89bde5fd969ef380ebc7a2f6bc57dfe6d44b32099314b8d4ca698726bcd712b7dd6c245177180d322e60887b8c4 -EBUILD libgraphics-34.11.ebuild 1656 SHA256 a248de22668b0cc689a1b078261e81dccf0f86edc5bd061ebc340d24f0665a29 SHA512 c31335d2aab57e968fbec9679096a9c58849d7826b83e1dbc3283adb5a0859ca5e187c31b0f76f8dd22de026c2865112afd84e4459a40fc1356173aa21ec6112 WHIRLPOOL 5c2890aa23dccd61e54db2998dd891d7128a31daab2b8ab03e3ab2daaae824ef1818e4bb5d0996c13f6a1e09a32fd35180d00b39ec00638a84e4567e63c1e342 -MISC libgraphics-34.11.ebuild.old 1983 SHA256 9d2cd08e68675413cf7ea79508874c8cf74fbd0dc8470ae68484567f394ac5f9 SHA512 00d7a278d5012ec75e33c143170388808a468bbddbeafc0eea2b0d66cf006e592312f9808ad843ebfc36ccf69d40c514eccd8a1196b36a99e68d35b4e8991e33 WHIRLPOOL d5b486baefcd758092ab24ad69fda018992c86667ea2fcaf362368c052d76a3f3eb544106c0173482c21ab6f105ef92e42129f57d01ce03b2a07cb627ef41023 -MISC metadata.xml 189 SHA256 3c34d13913d23a2d7669fe1e294b7a026e204eff7c701461646f4d7db25d9d0c SHA512 fe3ac50d70b7d95b9488f1af5dcd8dad0b3f9e344f4f56ba58b7812e4e17e0d90540c446882c8c5d11f32b89976d6e1b3d10846acf6ef75849daa4e163139213 WHIRLPOOL e85232acc2cd9452fcaa9e49b23e6980e224d79a23a48c43be38dea3d3a60d1b4cfce56ffe2e193b7c5d6100fef927da9c8d5a5b085e7849d1bd65cb104ce715 +EBUILD libgraphics-34.11.ebuild 1864 SHA256 2839e3874d4e8dcff7ab9e9aabacbc6b295a49e6f3ae5c4945c4243d38b3936d SHA512 6cfc9298300d13bcd9679d8b1d7cdf38093df78d67082e75f75c0d37cffdd9a0a4e380e374532a4e9b1c7f5cc1cef0369fad0a5111686c311a815733aa93b644 WHIRLPOOL ab39530e6a633872cc946a68deee339a45b1cc347f29e6977132eeef2c37649801055728cc091a16aa3948afb4db493577c6ea30c0d6830516924e03557afbb0 +MISC metadata.xml 295 SHA256 d5fcf121d0db8967aa291949b1c7cc1d4573d4d4760493a4eb1aaea6fe463679 SHA512 39731cf9141bb4653a927d808e92eae205d6fe46cb60822863aa2b5eeb2a46762b9622ce73434860b5b765cea41b9ba7187302075e49602fe709adf888c08b25 WHIRLPOOL bf3c5c16cf76066e0a04864f92b204d761bb1564218822123c29370e14defc1917e243b9171f4fd94cc162fc43a232716e4b015e5e25b5764b91ec0804e334d5 diff --git a/dev-libs/libgraphics/files/0001-Add-something-eggy.patch b/dev-libs/libgraphics/files/0001-Add-something-eggy.patch new file mode 100644 index 0000000..46111a3 --- /dev/null +++ b/dev-libs/libgraphics/files/0001-Add-something-eggy.patch @@ -0,0 +1,155 @@ +From 023128b5ab721e4c72b0fdea7ed8fd732dd5d795 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= <peterix@gmail.com> +Date: Tue, 28 Feb 2012 03:37:10 +0100 +Subject: [PATCH] Add something eggy. + +--- + df | 1 + + g_src/SConscript | 18 +++++++++++++++++- + g_src/curses.h | 2 +- + g_src/eggy.cpp | 29 +++++++++++++++++++++++++++++ + g_src/eggy.h | 23 +++++++++++++++++++++++ + g_src/enabler.cpp | 9 ++++++++- + g_src/graphics.cpp | 4 ++++ + g_src/renderer_curses.cpp | 12 ++++++++++-- + 8 files changed, 93 insertions(+), 5 deletions(-) + create mode 100644 g_src/eggy.cpp + create mode 100644 g_src/eggy.h + +diff --git a/g_src/eggy.h b/g_src/eggy.h +new file mode 100644 +index 0000000..d1f24dc +--- /dev/null ++++ b/g_src/eggy.h +@@ -0,0 +1,23 @@ ++#pragma once ++#ifdef unix ++ #define EggyExport extern "C" __attribute__ ((visibility("default"))) ++#else ++ #ifdef egg_internal ++ #define EggyExport extern "C" __declspec(dllexport) ++ #else ++ #define EggyExport extern "C" __declspec(dllimport) ++ #endif ++#endif ++ ++// hook - called before rendering ++EggyExport int egg_init(void); ++// hook - called before rendering ++EggyExport int egg_shutdown(void); ++// hook - called for each game tick (or more often) ++EggyExport int egg_tick(void); ++// hook - called before rendering ++EggyExport int egg_prerender(void); ++// hook - called for each SDL event, returns 0 when the event has been consumed. 1 otherwise ++EggyExport int egg_sdl_event(void* event); ++// hook - ncurses event, -1 signifies error. ++EggyExport int egg_curses_event(int orig_return); +\ No newline at end of file +diff --git a/g_src/enabler.cpp b/g_src/enabler.cpp +index 115e748..7e838ea 100755 +--- a/g_src/enabler.cpp ++++ b/g_src/enabler.cpp +@@ -11,6 +11,7 @@ + #include "random.h" + #include "init.h" + #include "music_and_sound_g.h" ++#include "eggy.h" + + #ifdef unix + # include <locale.h> +@@ -346,7 +347,7 @@ void enablerst::async_loop() { + if (async_frames < 0) async_frames = 0; + update_fps(); + } +- SDL_NumJoysticks(); // Hook for dfhack ++ egg_tick(); // Hook for dfhack + } + } + +@@ -433,6 +434,8 @@ void enablerst::eventLoop_SDL() + + // Check for SDL events + while (SDL_PollEvent(&event)) { ++ if(!egg_sdl_event(&event)) ++ continue; + // Make sure mainloop isn't running while we're processing input + if (!paused_loop) { + pause_async_loop(); +@@ -574,6 +577,8 @@ int enablerst::loop(string cmdline) { + } else { + renderer = new renderer_opengl(); + } ++ // Tell the egg that we are ready to roll ++ egg_init(); + + // At this point we should have a window that is setup to render DF. + if (init.display.flag.has_flag(INIT_DISPLAY_FLAG_TEXT)) { +@@ -584,6 +589,8 @@ int enablerst::loop(string cmdline) { + SDL_EnableUNICODE(1); + eventLoop_SDL(); + } ++ // Tell egg to leave ++ egg_shutdown(); + + endroutine(); + +diff --git a/g_src/graphics.cpp b/g_src/graphics.cpp +index e255ea8..5a53fe6 100755 +--- a/g_src/graphics.cpp ++++ b/g_src/graphics.cpp +@@ -17,6 +17,8 @@ + #include "svector.h" + #include "ttf_manager.hpp" + ++#include "eggy.h" ++ + #ifdef WIN32 + + /* +@@ -559,4 +561,6 @@ void render_things() + fps_locator(fps.size()); + gps.addst(fps); + } ++ // tell egg to do its dirty obscure things ++ egg_prerender(); + } +diff --git a/g_src/renderer_curses.cpp b/g_src/renderer_curses.cpp +index 69bd907..44b9b96 100755 +--- a/g_src/renderer_curses.cpp ++++ b/g_src/renderer_curses.cpp +@@ -1,3 +1,5 @@ ++#include "eggy.h" ++ + static bool curses_initialized = false; + + static void endwin_void() { +@@ -134,17 +136,23 @@ public: + } + }; + ++static int eggy_getch_wrapper() ++{ ++ int byte = wgetch(*stdscr_p); ++ return egg_curses_event(byte); ++} ++ + // Reads from getch, collapsing utf-8 encoding to the actual unicode + // character. Ncurses symbols (left arrow, etc.) are returned as + // positive values, unicode as negative. Error returns 0. + static int getch_utf8() { +- int byte = wgetch(*stdscr_p); ++ int byte = eggy_getch_wrapper(); + if (byte == ERR) return 0; + if (byte > 0xff) return byte; + int len = decode_utf8_predict_length(byte); + if (!len) return 0; + string input(len,0); input[0] = byte; +- for (int i = 1; i < len; i++) input[i] = wgetch(*stdscr_p); ++ for (int i = 1; i < len; i++) input[i] = eggy_getch_wrapper(); + return -decode_utf8(input); + } + +-- +1.7.12.4 + diff --git a/dev-libs/libgraphics/files/SConscript b/dev-libs/libgraphics/files/SConscript index 5b217b9..6da4304 100644 --- a/dev-libs/libgraphics/files/SConscript +++ b/dev-libs/libgraphics/files/SConscript @@ -40,6 +40,7 @@ env['CCFLAGS'] += SCons.Util.CLVar(os.environ.get('CFLAGS', '')) env['CXX'] = os.environ.get('CXX', 'g++') env['CXXFLAGS'] += SCons.Util.CLVar(os.environ.get('CXXFLAGS', '')) env['LINKFLAGS'] += SCons.Util.CLVar(os.environ.get('LDFLAGS', '')) +env['LIBPATH'] += SCons.Util.CLVar(os.environ.get('LIBPATH', '')) # Finally, do the build if libgraphics: diff --git a/dev-libs/libgraphics/files/SConscript-egg b/dev-libs/libgraphics/files/SConscript-egg new file mode 100644 index 0000000..dd0161d --- /dev/null +++ b/dev-libs/libgraphics/files/SConscript-egg @@ -0,0 +1,50 @@ +# -*- mode: python -*- +from sys import platform +import os +import SCons.Util + +src_dll = ["basics.cpp","command_line.cpp","enabler.cpp","files.cpp", + "find_files_posix.cpp","graphics.cpp","init.cpp","interface.cpp", + "keybindings.cpp","music_and_sound_openal.cpp", "random.cpp", + "textlines.cpp","enabler_input.cpp","ViewBase.cpp", + "KeybindingScreen.cpp", "win32_compat.cpp", "textures.cpp", + "resize++.cpp", "renderer_offscreen.cpp", + "ttf_manager.cpp"] + +dll = '#libs/libgraphics.so' + +libgraphics = True +tetris = False + +# Propagate PATH. We'll just take our chances with non-repeatable builds. +env = Environment(ENV = {'PATH' : os.environ.get('PATH', '/usr/bin:/bin')}) + +# Libraries and linking +env['LIBS']=["SDL_image","z","SDL_ttf","sndfile","egg"] +#env['LINKFLAGS']=['-Wl,-rpath=\$$ORIGIN/libs'] + +# Generic unix, including Linux +env.ParseConfig('pkg-config gtk+-2.0 --cflags --libs') +env.ParseConfig('pkg-config openal --cflags') +env.ParseConfig('pkg-config sndfile --cflags') +env.ParseConfig('pkg-config sdl --cflags --libs') +env.ParseConfig('pkg-config glu --cflags --libs') +env.ParseConfig('pkg-config glew --cflags --libs') + +# flags and compiler +env['CCFLAGS'].append("-Dunix") +env['CXXFLAGS'].append("-std=gnu++0x") +# this is gentoo, respect my flags +env['CC'] = os.environ.get('CC', 'gcc') +env['CCFLAGS'] += SCons.Util.CLVar(os.environ.get('CFLAGS', '')) +env['CXX'] = os.environ.get('CXX', 'g++') +env['CXXFLAGS'] += SCons.Util.CLVar(os.environ.get('CXXFLAGS', '')) +env['LINKFLAGS'] += SCons.Util.CLVar(os.environ.get('LDFLAGS', '')) +env['LIBPATH'] += SCons.Util.CLVar(os.environ.get('LIBPATH', '')) + +# Finally, do the build +if libgraphics: + env.SharedLibrary(dll, src_dll) + +if tetris: + env.Program("#tetris", src_dll + ["tetris.cpp"]) diff --git a/dev-libs/libgraphics/libgraphics-34.11.ebuild b/dev-libs/libgraphics/libgraphics-34.11.ebuild index d5bce6e..46d44e6 100644 --- a/dev-libs/libgraphics/libgraphics-34.11.ebuild +++ b/dev-libs/libgraphics/libgraphics-34.11.ebuild @@ -17,7 +17,7 @@ SRC_URI="http://www.bay12games.com/dwarves/${DF_P}_linux.tar.bz2" LICENSE="DwarfFortress as-is LGPL-2.1 BSD fmod MIT" SLOT="0" KEYWORDS="~amd64" -IUSE="" +IUSE="egg" DEPEND_SCONSCRIPT="virtual/pkgconfig media-libs/sdl-image @@ -41,6 +41,7 @@ DEPEND_INCLUDE="media-libs/fmod " COMMON_DEPEND="!games-simulation/dwarffortress[libgraphics] + egg? ( games-util/dfhack[egg] ) app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-gtklibs app-emulation/emul-linux-x86-opengl @@ -65,13 +66,18 @@ pkg_setup() { } src_prepare() { + if use egg; then + epatch "${FILESDIR}/0001-Add-something-eggy.patch" + cp "${FILESDIR}/SConscript-egg" "g_src/SConscript" || die + else + cp "${FILESDIR}/SConscript" "g_src/SConscript" || die + fi cp "${FILESDIR}/SConstruct" "SConstruct" || die - cp "${FILESDIR}/SConscript" "g_src/SConscript" || die rm "libs/libgraphics.so" || die } src_compile() { - escons || die + LIBPATH="$(games_get_libdir)" escons || die } src_install() { diff --git a/dev-libs/libgraphics/metadata.xml b/dev-libs/libgraphics/metadata.xml index 199da9a..6d87773 100644 --- a/dev-libs/libgraphics/metadata.xml +++ b/dev-libs/libgraphics/metadata.xml @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> + <use> + <flag name="egg">Enable hooks for and link against libegg from games-util/dfhack.</flag> + </use> <longdescription lang="en"> </longdescription> </pkgmetadata> |