1 |
commit: 0a09ba651e97e88364fc3d9c098af10635c99101 |
2 |
Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun May 31 21:12:08 2020 +0000 |
4 |
Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun May 31 21:12:08 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a09ba65 |
7 |
|
8 |
games-util/slade: New package |
9 |
|
10 |
Package-Manager: Portage-2.3.100, Repoman-2.3.22 |
11 |
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> |
12 |
|
13 |
games-util/slade/Manifest | 1 + |
14 |
.../slade/files/slade-3.1.12a-bundled-libs.patch | 80 +++++++++++++++ |
15 |
.../files/slade-3.1.12a-fluidsynth-driver.patch | 14 +++ |
16 |
.../slade/files/slade-3.1.12a-freetype-deps.patch | 74 ++++++++++++++ |
17 |
.../slade/files/slade-3.1.12a-sfml-gtk3.patch | 88 ++++++++++++++++ |
18 |
.../slade/files/slade-3.1.12a-wxGLCanvas.patch | 112 +++++++++++++++++++++ |
19 |
games-util/slade/metadata.xml | 14 +++ |
20 |
games-util/slade/slade-3.1.12a.ebuild | 67 ++++++++++++ |
21 |
8 files changed, 450 insertions(+) |
22 |
|
23 |
diff --git a/games-util/slade/Manifest b/games-util/slade/Manifest |
24 |
new file mode 100644 |
25 |
index 00000000000..be9e5aaa542 |
26 |
--- /dev/null |
27 |
+++ b/games-util/slade/Manifest |
28 |
@@ -0,0 +1 @@ |
29 |
+DIST slade-3.1.12a.tar.gz 5883702 BLAKE2B 400cf032bf0b60555b45b450c524d85f145d593d74601461f33fa571360a0c66a1d5933a7d48e8cfad98981bcf446df213240f53da237be6d9a1ce09517c4566 SHA512 ecedec880b8ebed921e152d016a451164efd4de90ae69963be077d1ef39326670254ca8eb03e1045ca7ae5b02f7512dbbe712f83c845cbbd4ed787a90899ad13 |
30 |
|
31 |
diff --git a/games-util/slade/files/slade-3.1.12a-bundled-libs.patch b/games-util/slade/files/slade-3.1.12a-bundled-libs.patch |
32 |
new file mode 100644 |
33 |
index 00000000000..6e8285d8105 |
34 |
--- /dev/null |
35 |
+++ b/games-util/slade/files/slade-3.1.12a-bundled-libs.patch |
36 |
@@ -0,0 +1,80 @@ |
37 |
+diff -Naur a/src/Application/App.cpp b/src/Application/App.cpp |
38 |
+--- a/src/Application/App.cpp 2020-05-26 00:34:50.000000000 +0100 |
39 |
++++ b/src/Application/App.cpp 2020-05-31 17:11:08.365000293 +0100 |
40 |
+@@ -34,7 +34,7 @@ |
41 |
+ #include "App.h" |
42 |
+ #include "Archive/ArchiveManager.h" |
43 |
+ #include "Dialogs/SetupWizard/SetupWizardDialog.h" |
44 |
+-#include "External/dumb/dumb.h" |
45 |
++#include <dumb.h> |
46 |
+ #include "Game/Configuration.h" |
47 |
+ #include "General/ColourConfiguration.h" |
48 |
+ #include "General/Console/Console.h" |
49 |
+diff -Naur a/src/Audio/ModMusic.cpp b/src/Audio/ModMusic.cpp |
50 |
+--- a/src/Audio/ModMusic.cpp 2020-05-26 00:34:50.000000000 +0100 |
51 |
++++ b/src/Audio/ModMusic.cpp 2020-05-31 17:11:08.365000293 +0100 |
52 |
+@@ -30,7 +30,7 @@ |
53 |
+ *******************************************************************/ |
54 |
+ #include "Main.h" |
55 |
+ #include "ModMusic.h" |
56 |
+-#include "External/dumb/dumb.h" |
57 |
++#include <dumb.h> |
58 |
+ |
59 |
+ |
60 |
+ /******************************************************************* |
61 |
+diff -Naur a/src/CMakeLists.txt b/src/CMakeLists.txt |
62 |
+--- a/src/CMakeLists.txt 2020-05-26 00:34:50.000000000 +0100 |
63 |
++++ b/src/CMakeLists.txt 2020-05-31 17:11:08.365000293 +0100 |
64 |
+@@ -105,6 +105,8 @@ |
65 |
+ find_package(GLEW REQUIRED) |
66 |
+ find_package(Freetype REQUIRED) |
67 |
+ find_package(CURL REQUIRED) |
68 |
++find_package(Lua REQUIRED) |
69 |
++pkg_check_modules(DUMB REQUIRED dumb>=1.0) |
70 |
+ include_directories( |
71 |
+ ${FREEIMAGE_INCLUDE_DIR} |
72 |
+ ${SFML_INCLUDE_DIR} |
73 |
+@@ -112,8 +114,9 @@ |
74 |
+ ${FREETYPE_INCLUDE_DIRS} |
75 |
+ ${GLEW_INCLUDE_PATH} |
76 |
+ ${CURL_INCLUDE_DIR} |
77 |
++ ${LUA_INCLUDE_DIR} |
78 |
++ ${DUMB_INCLUDE_DIRS} |
79 |
+ . |
80 |
+- ./External/dumb |
81 |
+ ./Application |
82 |
+ ) |
83 |
+ |
84 |
+@@ -182,6 +185,8 @@ |
85 |
+ ${FREETYPE_LIBRARIES} |
86 |
+ ${GLEW_LIBRARY} |
87 |
+ ${CURL_LIBRARIES} |
88 |
++ ${LUA_LIBRARIES} |
89 |
++ ${DUMB_LIBRARIES} |
90 |
+ ) |
91 |
+ |
92 |
+ if (WX_GTK3) |
93 |
+diff -Naur a/src/External/CMakeLists.txt b/src/External/CMakeLists.txt |
94 |
+--- a/src/External/CMakeLists.txt 2020-05-26 00:34:50.000000000 +0100 |
95 |
++++ b/src/External/CMakeLists.txt 2020-05-31 17:12:09.614333605 +0100 |
96 |
+@@ -24,8 +24,6 @@ |
97 |
+ file(GLOB_RECURSE EXTERNAL_SOURCES |
98 |
+ *.cpp |
99 |
+ *.cxx |
100 |
+- dumb/*.c |
101 |
+- lua/*.c |
102 |
+ lzma/C/LzmaDec.c |
103 |
+ ${SLADE_HEADERS} |
104 |
+ ) |
105 |
+diff -Naur a/src/External/sol/sol.hpp b/src/External/sol/sol.hpp |
106 |
+--- a/src/External/sol/sol.hpp 2020-05-26 00:34:50.000000000 +0100 |
107 |
++++ b/src/External/sol/sol.hpp 2020-05-31 17:11:08.367000336 +0100 |
108 |
+@@ -798,7 +798,7 @@ |
109 |
+ #include <lualib.h> |
110 |
+ #include <lauxlib.h> |
111 |
+ #else |
112 |
+-#include "External/lua/lua.hpp" |
113 |
++#include <lua.hpp> |
114 |
+ #endif // C++ Mangling for Lua |
115 |
+ |
116 |
+ #if defined(_WIN32) || defined(_MSC_VER) |
117 |
|
118 |
diff --git a/games-util/slade/files/slade-3.1.12a-fluidsynth-driver.patch b/games-util/slade/files/slade-3.1.12a-fluidsynth-driver.patch |
119 |
new file mode 100644 |
120 |
index 00000000000..c0ef70d6dfc |
121 |
--- /dev/null |
122 |
+++ b/games-util/slade/files/slade-3.1.12a-fluidsynth-driver.patch |
123 |
@@ -0,0 +1,14 @@ |
124 |
+https://github.com/sirjuddington/SLADE/issues/1147 |
125 |
+ |
126 |
+diff -Naur a/src/Audio/MIDIPlayer.cpp b/src/Audio/MIDIPlayer.cpp |
127 |
+--- a/src/Audio/MIDIPlayer.cpp 2020-05-28 00:08:34.000000000 +0100 |
128 |
++++ b/src/Audio/MIDIPlayer.cpp 2020-05-31 21:40:03.480211253 +0100 |
129 |
+@@ -74,8 +74,6 @@ |
130 |
+ #ifndef NO_FLUIDSYNTH |
131 |
+ // Set fluidsynth driver to alsa in linux (no idea why it defaults to jack) |
132 |
+ #if !defined __WXMSW__ && !defined __WXOSX__ |
133 |
+- if (fs_driver == "") |
134 |
+- fs_driver = "alsa"; |
135 |
+ #endif // !defined __WXMSW__ && !defined __WXOSX__ |
136 |
+ |
137 |
+ // Init soundfont path |
138 |
|
139 |
diff --git a/games-util/slade/files/slade-3.1.12a-freetype-deps.patch b/games-util/slade/files/slade-3.1.12a-freetype-deps.patch |
140 |
new file mode 100644 |
141 |
index 00000000000..33fdbfe8521 |
142 |
--- /dev/null |
143 |
+++ b/games-util/slade/files/slade-3.1.12a-freetype-deps.patch |
144 |
@@ -0,0 +1,74 @@ |
145 |
+From 115ae712d576deafaa95dc5227a7f83dce92a9cb Mon Sep 17 00:00:00 2001 |
146 |
+From: James Le Cuirot <chewi@g.o> |
147 |
+Date: Sun, 31 May 2020 21:59:06 +0100 |
148 |
+Subject: [PATCH 1/2] Drop unused FreeType dependency |
149 |
+ |
150 |
+It may be used by FTGL but it's not directly used by this |
151 |
+project. pkg-config should handle this for static builds. |
152 |
+--- |
153 |
+ src/CMakeLists.txt | 3 --- |
154 |
+ 1 file changed, 3 deletions(-) |
155 |
+ |
156 |
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt |
157 |
+index f54b126f..8dab39fc 100644 |
158 |
+--- a/src/CMakeLists.txt |
159 |
++++ b/src/CMakeLists.txt |
160 |
+@@ -103,7 +103,6 @@ find_package(SFML COMPONENTS ${SFML_FIND_COMPONENTS} REQUIRED) |
161 |
+ find_package(FTGL REQUIRED) |
162 |
+ find_package(OpenGL REQUIRED) |
163 |
+ find_package(GLEW REQUIRED) |
164 |
+-find_package(Freetype REQUIRED) |
165 |
+ find_package(CURL REQUIRED) |
166 |
+ find_package(Lua REQUIRED) |
167 |
+ find_package(fmt CONFIG REQUIRED) |
168 |
+@@ -111,7 +110,6 @@ include_directories( |
169 |
+ ${FREEIMAGE_INCLUDE_DIR} |
170 |
+ ${SFML_INCLUDE_DIR} |
171 |
+ ${FTGL_INCLUDE_DIR} |
172 |
+- ${FREETYPE_INCLUDE_DIRS} |
173 |
+ ${GLEW_INCLUDE_PATH} |
174 |
+ ${CURL_INCLUDE_DIR} |
175 |
+ ${LUA_INCLUDE_DIR} |
176 |
+@@ -184,7 +182,6 @@ target_link_libraries(slade |
177 |
+ ${SFML_LIBRARY} |
178 |
+ ${FTGL_LIBRARIES} |
179 |
+ ${OPENGL_LIBRARIES} |
180 |
+- ${FREETYPE_LIBRARIES} |
181 |
+ ${GLEW_LIBRARY} |
182 |
+ ${CURL_LIBRARIES} |
183 |
+ ${LUA_LIBRARIES} |
184 |
+-- |
185 |
+2.26.2 |
186 |
+ |
187 |
+From 9116972a75b58ef32e229842f80cdc96fab04f1e Mon Sep 17 00:00:00 2001 |
188 |
+From: James Le Cuirot <chewi@g.o> |
189 |
+Date: Sun, 31 May 2020 22:00:53 +0100 |
190 |
+Subject: [PATCH 2/2] Only require FTGL when USE_SFML_RENDERWINDOW is disabled |
191 |
+ |
192 |
+--- |
193 |
+ src/CMakeLists.txt | 2 +- |
194 |
+ 1 file changed, 1 insertion(+), 1 deletion(-) |
195 |
+ |
196 |
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt |
197 |
+index 8dab39fc..b0d4776d 100644 |
198 |
+--- a/src/CMakeLists.txt |
199 |
++++ b/src/CMakeLists.txt |
200 |
+@@ -72,6 +72,7 @@ set(SFML_FIND_COMPONENTS system audio window graphics network) |
201 |
+ ADD_DEFINITIONS(-DUSE_SFML_RENDERWINDOW) |
202 |
+ else (USE_SFML_RENDERWINDOW) |
203 |
+ set(SFML_FIND_COMPONENTS system audio window network) |
204 |
++find_package(FTGL REQUIRED) |
205 |
+ endif(USE_SFML_RENDERWINDOW) |
206 |
+ |
207 |
+ # Fluidsynth |
208 |
+@@ -100,7 +101,6 @@ endif() |
209 |
+ |
210 |
+ find_package(FreeImage REQUIRED) |
211 |
+ find_package(SFML COMPONENTS ${SFML_FIND_COMPONENTS} REQUIRED) |
212 |
+-find_package(FTGL REQUIRED) |
213 |
+ find_package(OpenGL REQUIRED) |
214 |
+ find_package(GLEW REQUIRED) |
215 |
+ find_package(CURL REQUIRED) |
216 |
+-- |
217 |
+2.26.2 |
218 |
+ |
219 |
|
220 |
diff --git a/games-util/slade/files/slade-3.1.12a-sfml-gtk3.patch b/games-util/slade/files/slade-3.1.12a-sfml-gtk3.patch |
221 |
new file mode 100644 |
222 |
index 00000000000..745a41d64b8 |
223 |
--- /dev/null |
224 |
+++ b/games-util/slade/files/slade-3.1.12a-sfml-gtk3.patch |
225 |
@@ -0,0 +1,88 @@ |
226 |
+From 7e2aa2666701cc0db32d8b3185c3cd07ae733ab0 Mon Sep 17 00:00:00 2001 |
227 |
+From: Simon Judd <sirjuddington@×××××.com> |
228 |
+Date: Fri, 6 Dec 2019 16:36:52 +1030 |
229 |
+Subject: [PATCH] Fix SFML RenderWindow embedding on GTK3 |
230 |
+ |
231 |
+It actually seems to work ok now so might be able to make it the default there |
232 |
+ |
233 |
+It'd be nice if it worked on macos as well, then I'd be able to remove the wxGLCanvas/FTGL stuff completely... |
234 |
+--- |
235 |
+ |
236 |
+diff --git a/src/UI/Canvas/OGLCanvas.cpp b/src/UI/Canvas/OGLCanvas.cpp |
237 |
+index 92f86b29..4bba9f98 100644 |
238 |
+--- a/src/UI/Canvas/OGLCanvas.cpp |
239 |
++++ b/src/UI/Canvas/OGLCanvas.cpp |
240 |
+@@ -44,6 +44,8 @@ |
241 |
+ #endif |
242 |
+ #endif |
243 |
+ |
244 |
++EXTERN_CVAR(Int, gl_depth_buffer_size) |
245 |
++ |
246 |
+ |
247 |
+ /******************************************************************* |
248 |
+ * OGLCANVAS CLASS FUNCTIONS |
249 |
+@@ -130,29 +132,29 @@ bool OGLCanvas::setContext() |
250 |
+ #endif |
251 |
+ } |
252 |
+ |
253 |
+-void OGLCanvas::createSFML() |
254 |
++bool OGLCanvas::createSFML() |
255 |
+ { |
256 |
+ #ifdef USE_SFML_RENDERWINDOW |
257 |
+ // Code taken from SFML wxWidgets integration example |
258 |
+ sf::WindowHandle handle; |
259 |
+ #ifdef __WXGTK__ |
260 |
+- // GTK implementation requires to go deeper to find the |
261 |
+- // low-level X11 identifier of the widget |
262 |
+- gtk_widget_realize(m_wxwindow); |
263 |
+- gtk_widget_set_double_buffered(m_wxwindow, false); |
264 |
+- GdkWindow* Win = gtk_widget_get_window(m_wxwindow); |
265 |
+- XFlush(GDK_WINDOW_XDISPLAY(Win)); |
266 |
+- //sf::RenderWindow::Create(GDK_WINDOW_XWINDOW(Win)); |
267 |
+- handle = GDK_WINDOW_XWINDOW(Win); |
268 |
++ auto widget = GetHandle(); |
269 |
++ if (!widget) |
270 |
++ return false; |
271 |
++ auto window = gtk_widget_get_window(widget); |
272 |
++ if (!window) |
273 |
++ return false; |
274 |
++ handle = gdk_x11_window_get_xid(window); |
275 |
+ #else |
276 |
+ handle = GetHandle(); |
277 |
+ #endif |
278 |
+ // Context settings |
279 |
+ sf::ContextSettings settings; |
280 |
+- settings.depthBits = 24; |
281 |
+- settings.stencilBits = 8; |
282 |
++ settings.depthBits = gl_depth_buffer_size; |
283 |
++ settings.stencilBits = sf::ContextSettings::Default; |
284 |
+ sf::RenderWindow::create(handle, settings); |
285 |
+ #endif |
286 |
++ return true; |
287 |
+ } |
288 |
+ |
289 |
+ /* OGLCanvas::init |
290 |
+@@ -308,7 +310,9 @@ void OGLCanvas::onPaint(wxPaintEvent& e) |
291 |
+ |
292 |
+ if (recreate) |
293 |
+ { |
294 |
+- createSFML(); |
295 |
++ if (!createSFML()) |
296 |
++ return; |
297 |
++ |
298 |
+ recreate = false; |
299 |
+ } |
300 |
+ |
301 |
+diff --git a/src/UI/Canvas/OGLCanvas.h b/src/UI/Canvas/OGLCanvas.h |
302 |
+index a1defbee..9b9b07db 100644 |
303 |
+--- a/src/UI/Canvas/OGLCanvas.h |
304 |
++++ b/src/UI/Canvas/OGLCanvas.h |
305 |
+@@ -28,7 +28,7 @@ public: |
306 |
+ Palette* getPalette() { return &palette; } |
307 |
+ void setPalette(Palette* pal) { palette.copyPalette(pal); } |
308 |
+ bool setContext(); |
309 |
+- void createSFML(); |
310 |
++ bool createSFML(); |
311 |
+ void init(); |
312 |
+ virtual void draw() = 0; |
313 |
+ virtual void update(long frametime) {} |
314 |
|
315 |
diff --git a/games-util/slade/files/slade-3.1.12a-wxGLCanvas.patch b/games-util/slade/files/slade-3.1.12a-wxGLCanvas.patch |
316 |
new file mode 100644 |
317 |
index 00000000000..64698cc4591 |
318 |
--- /dev/null |
319 |
+++ b/games-util/slade/files/slade-3.1.12a-wxGLCanvas.patch |
320 |
@@ -0,0 +1,112 @@ |
321 |
+From a934d04b8c49c250e9be27581129c75bc058814a Mon Sep 17 00:00:00 2001 |
322 |
+From: Simon Judd <sirjuddington@×××××.com> |
323 |
+Date: Mon, 9 Dec 2019 12:26:17 +1030 |
324 |
+Subject: [PATCH] Always use wxGLCanvas as a base for OGLCanvas |
325 |
+ |
326 |
+Even if using SFML - this fixes the depth buffer not being created on linux |
327 |
+--- |
328 |
+ |
329 |
+diff --git a/src/OpenGL/OpenGL.cpp b/src/OpenGL/OpenGL.cpp |
330 |
+index 7e506550..0a8d4236 100644 |
331 |
+--- a/src/OpenGL/OpenGL.cpp |
332 |
++++ b/src/OpenGL/OpenGL.cpp |
333 |
+@@ -38,14 +38,14 @@ CVAR(Bool, gl_tex_enable_np2, true, CVAR_SAVE) |
334 |
+ CVAR(Bool, gl_point_sprite, true, CVAR_SAVE) |
335 |
+ CVAR(Bool, gl_tweak_accuracy, true, CVAR_SAVE) |
336 |
+ CVAR(Bool, gl_vbo, true, CVAR_SAVE) |
337 |
+-CVAR(Int, gl_depth_buffer_size, 16, CVAR_SAVE) |
338 |
++CVAR(Int, gl_depth_buffer_size, 24, CVAR_SAVE) |
339 |
+ |
340 |
+ namespace OpenGL |
341 |
+ { |
342 |
+ #ifndef USE_SFML_RENDERWINDOW |
343 |
+ wxGLContext* context = NULL; |
344 |
+- int wx_gl_attrib[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, WX_GL_DEPTH_SIZE, 16, WX_GL_STENCIL_SIZE, 8, 0 }; |
345 |
+ #endif |
346 |
++ int wx_gl_attrib[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, WX_GL_DEPTH_SIZE, 16, WX_GL_STENCIL_SIZE, 8, 0 }; |
347 |
+ bool initialised = false; |
348 |
+ double version = 0; |
349 |
+ unsigned max_tex_size = 128; |
350 |
+@@ -224,7 +224,6 @@ bool OpenGL::accuracyTweak() |
351 |
+ return gl_tweak_accuracy; |
352 |
+ } |
353 |
+ |
354 |
+-#ifndef USE_SFML_RENDERWINDOW |
355 |
+ /* OpenGL::getWxGLAttribs |
356 |
+ * Returns the GL attributes array for use with wxGLCanvas |
357 |
+ *******************************************************************/ |
358 |
+@@ -235,7 +234,6 @@ int* OpenGL::getWxGLAttribs() |
359 |
+ |
360 |
+ return wx_gl_attrib; |
361 |
+ } |
362 |
+-#endif |
363 |
+ |
364 |
+ /* OpenGL::setColour |
365 |
+ * Sets the colour to [col], and changes the colour blend mode if |
366 |
+diff --git a/src/OpenGL/OpenGL.h b/src/OpenGL/OpenGL.h |
367 |
+index 1d5c9b9a..9082687c 100644 |
368 |
+--- a/src/OpenGL/OpenGL.h |
369 |
++++ b/src/OpenGL/OpenGL.h |
370 |
+@@ -20,10 +20,8 @@ |
371 |
+ #include <GL/glu.h> |
372 |
+ #endif |
373 |
+ |
374 |
+-#ifndef USE_SFML_RENDERWINDOW |
375 |
+ #include <wx/glcanvas.h> |
376 |
+ #undef None // Why does <X11/X.h> #define this? Idiotic |
377 |
+-#endif |
378 |
+ |
379 |
+ #define BLEND_NORMAL 0 |
380 |
+ #define BLEND_ADDITIVE 1 |
381 |
+@@ -56,9 +54,7 @@ namespace OpenGL |
382 |
+ unsigned maxTextureSize(); |
383 |
+ bool isInitialised(); |
384 |
+ bool accuracyTweak(); |
385 |
+-#ifndef USE_SFML_RENDERWINDOW |
386 |
+ int* getWxGLAttribs(); |
387 |
+-#endif |
388 |
+ void setColour(rgba_t col, bool set_blend = true); |
389 |
+ void setColour(uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255, int8_t blend = BLEND_IGNORE); |
390 |
+ void setBlend(int blend); |
391 |
+diff --git a/src/UI/Canvas/OGLCanvas.cpp b/src/UI/Canvas/OGLCanvas.cpp |
392 |
+index 4bba9f98..a48d9ac6 100644 |
393 |
+--- a/src/UI/Canvas/OGLCanvas.cpp |
394 |
++++ b/src/UI/Canvas/OGLCanvas.cpp |
395 |
+@@ -55,8 +55,9 @@ EXTERN_CVAR(Int, gl_depth_buffer_size) |
396 |
+ /* OGLCanvas::OGLCanvas |
397 |
+ * OGLCanvas class constructor, SFML implementation |
398 |
+ *******************************************************************/ |
399 |
+-OGLCanvas::OGLCanvas(wxWindow* parent, int id, bool handle_timer, int timer_interval) |
400 |
+- : wxControl(parent, id, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE|wxWANTS_CHARS), timer(this) |
401 |
++OGLCanvas::OGLCanvas(wxWindow* parent, int id, bool handle_timer, int timer_interval) : |
402 |
++ wxGLCanvas(parent, id, OpenGL::getWxGLAttribs(), wxDefaultPosition, wxDefaultSize, wxBORDER_NONE | wxWANTS_CHARS), |
403 |
++ timer(this) |
404 |
+ { |
405 |
+ init_done = false; |
406 |
+ recreate = false; |
407 |
+diff --git a/src/UI/Canvas/OGLCanvas.h b/src/UI/Canvas/OGLCanvas.h |
408 |
+index 9b9b07db..128cb633 100644 |
409 |
+--- a/src/UI/Canvas/OGLCanvas.h |
410 |
++++ b/src/UI/Canvas/OGLCanvas.h |
411 |
+@@ -8,7 +8,7 @@ |
412 |
+ |
413 |
+ class wxWindow; |
414 |
+ #ifdef USE_SFML_RENDERWINDOW |
415 |
+-class OGLCanvas : public wxControl, public sf::RenderWindow |
416 |
++class OGLCanvas : public wxGLCanvas, public sf::RenderWindow |
417 |
+ { |
418 |
+ #else |
419 |
+ class OGLCanvas : public wxGLCanvas |
420 |
+@@ -38,7 +38,11 @@ public: |
421 |
+ void setup2D(); |
422 |
+ |
423 |
+ #ifdef USE_SFML_RENDERWINDOW |
424 |
+- void SwapBuffers() { display(); } |
425 |
++ bool SwapBuffers() override |
426 |
++ { |
427 |
++ display(); |
428 |
++ return true; |
429 |
++ } |
430 |
+ #endif |
431 |
+ |
432 |
+ void onPaint(wxPaintEvent& e); |
433 |
|
434 |
diff --git a/games-util/slade/metadata.xml b/games-util/slade/metadata.xml |
435 |
new file mode 100644 |
436 |
index 00000000000..9312c313b00 |
437 |
--- /dev/null |
438 |
+++ b/games-util/slade/metadata.xml |
439 |
@@ -0,0 +1,14 @@ |
440 |
+<?xml version="1.0" encoding="UTF-8"?> |
441 |
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
442 |
+<pkgmetadata> |
443 |
+ <maintainer type="project"> |
444 |
+ <email>games@g.o</email> |
445 |
+ <name>Gentoo Games Project</name> |
446 |
+ </maintainer> |
447 |
+ <upstream> |
448 |
+ <remote-id type="github">sirjuddington/SLADE</remote-id> |
449 |
+ </upstream> |
450 |
+ <use> |
451 |
+ <flag name="fluidsynth">Enable MIDI software synthesis using <pkg>media-sound/fluidsynth</pkg></flag> |
452 |
+ </use> |
453 |
+</pkgmetadata> |
454 |
|
455 |
diff --git a/games-util/slade/slade-3.1.12a.ebuild b/games-util/slade/slade-3.1.12a.ebuild |
456 |
new file mode 100644 |
457 |
index 00000000000..b204c6c7870 |
458 |
--- /dev/null |
459 |
+++ b/games-util/slade/slade-3.1.12a.ebuild |
460 |
@@ -0,0 +1,67 @@ |
461 |
+# Copyright 1999-2020 Gentoo Authors |
462 |
+# Distributed under the terms of the GNU General Public License v2 |
463 |
+ |
464 |
+EAPI=7 |
465 |
+ |
466 |
+WX_GTK_VER="3.0-gtk3" |
467 |
+inherit cmake wxwidgets |
468 |
+ |
469 |
+DESCRIPTION="Modern editor for Doom-engine based games and source ports" |
470 |
+HOMEPAGE="https://slade.mancubus.net/" |
471 |
+SRC_URI="https://github.com/sirjuddington/${PN^^}/archive/${PV}.tar.gz -> ${P}.tar.gz" |
472 |
+LICENSE="GPL-2 MIT" |
473 |
+SLOT="0" |
474 |
+KEYWORDS="~amd64" |
475 |
+IUSE="fluidsynth timidity webkit" |
476 |
+ |
477 |
+DEPEND=" |
478 |
+ app-arch/bzip2:= |
479 |
+ dev-lang/lua:0 |
480 |
+ >=media-libs/dumb-2:= |
481 |
+ media-libs/freeimage[jpeg,png,tiff] |
482 |
+ media-libs/glew:0= |
483 |
+ media-libs/libsfml:= |
484 |
+ net-misc/curl |
485 |
+ sys-libs/zlib |
486 |
+ x11-libs/wxGTK:${WX_GTK_VER}[webkit?] |
487 |
+ fluidsynth? ( media-sound/fluidsynth:= ) |
488 |
+" |
489 |
+ |
490 |
+RDEPEND=" |
491 |
+ ${DEPEND} |
492 |
+ timidity? ( media-sound/timidity++ ) |
493 |
+" |
494 |
+ |
495 |
+BDEPEND=" |
496 |
+ app-arch/p7zip |
497 |
+ virtual/pkgconfig |
498 |
+" |
499 |
+ |
500 |
+S="${WORKDIR}/${PN^^}-${PV}" |
501 |
+ |
502 |
+PATCHES=( |
503 |
+ "${FILESDIR}"/${P}-bundled-libs.patch |
504 |
+ "${FILESDIR}"/${P}-sfml-gtk3.patch |
505 |
+ "${FILESDIR}"/${P}-wxGLCanvas.patch |
506 |
+ "${FILESDIR}"/${P}-freetype-deps.patch |
507 |
+ "${FILESDIR}"/${P}-fluidsynth-driver.patch |
508 |
+) |
509 |
+ |
510 |
+src_prepare() { |
511 |
+ cmake_src_prepare |
512 |
+ |
513 |
+ # Delete bundled libraries just in case. |
514 |
+ rm -r src/External/{dumb,glew,lua}/ || die |
515 |
+ |
516 |
+} |
517 |
+ |
518 |
+src_configure() { |
519 |
+ local mycmakeargs=( |
520 |
+ -DNO_FLUIDSYNTH=$(usex fluidsynth OFF ON) |
521 |
+ -DNO_WEBVIEW=$(usex webkit OFF ON) |
522 |
+ -DUSE_SFML_RENDERWINDOW=ON |
523 |
+ -DWX_GTK3=ON |
524 |
+ ) |
525 |
+ setup-wxwidgets |
526 |
+ cmake_src_configure |
527 |
+} |