[packages/vsxu] - updated to 0.6.3 (note: some library names changed, .pc name changed) - updated glfw3,desktop,icon

qboosh qboosh at pld-linux.org
Sun Apr 5 16:31:00 CEST 2020


commit 55560e99ca64b75f80b68004edd41c7cb63f0dec
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Apr 5 16:29:25 2020 +0200

    - updated to 0.6.3 (note: some library names changed, .pc name changed)
    - updated glfw3,desktop,icons,system-ftgl patches
    - added system-lodepng patch, use system lodepng library
    - added system-lzham-lzma patch, use system lzham and lzma SDK libraries
    - added system-cal3d patch, use system cal3d library
    - added format64 patch (fix 64-bit format strings on x32)
    - added pc patch (fix libraries and included in .pc file)

 vsxu-desktop.patch           |   24 +-
 vsxu-format64.patch          |   20 +
 vsxu-glfw3.patch             | 1075 +-----------------------------------------
 vsxu-icons.patch             |    6 +-
 vsxu-pc.patch                |   22 +
 vsxu-system-cal3d.patch      |  112 +++++
 vsxu-system-ftgl.patch       |  240 ++++++----
 vsxu-system-lodepng.patch    |   36 ++
 vsxu-system-lzham-lzma.patch |   84 ++++
 vsxu.spec                    |   33 +-
 10 files changed, 462 insertions(+), 1190 deletions(-)
---
diff --git a/vsxu.spec b/vsxu.spec
index 251243a..0a73b22 100644
--- a/vsxu.spec
+++ b/vsxu.spec
@@ -6,21 +6,27 @@
 Summary:	VSXu Music Visualizer
 Summary(pl.UTF-8):	VSXu - wizualizacja muzyki
 Name:		vsxu
-Version:	0.5.1
-Release:	3
+Version:	0.6.3
+Release:	1
 License:	GPL v3
 Group:		Libraries
 #Source0Download: https://github.com/vovoid/vsxu/releases
 Source0:	https://github.com/vovoid/vsxu/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5:	b4c31f1b0e9def4fa4920341cda3708f
+# Source0-md5:	96c8eb7049f8365b58c5049feb52ae29
 Patch0:		%{name}-glfw3.patch
 Patch1:		%{name}-icons.patch
 Patch2:		%{name}-desktop.patch
 Patch3:		%{name}-system-ftgl.patch
+Patch4:		%{name}-system-lodepng.patch
+Patch5:		%{name}-system-lzham-lzma.patch
+Patch6:		%{name}-system-cal3d.patch
+Patch7:		%{name}-format64.patch
+Patch8:		%{name}-pc.patch
 URL:		http://www.vsxu.com/
 BuildRequires:	OpenGL-devel
 BuildRequires:	OpenGL-GLU-devel
 BuildRequires:	alsa-lib-devel
+BuildRequires:	cal3d-devel
 BuildRequires:	cmake >= 2.8
 BuildRequires:	ftgl-devel
 BuildRequires:	glew-devel >= 1.6.0
@@ -29,6 +35,9 @@ BuildRequires:	jack-audio-connection-kit-devel
 BuildRequires:	libpng-devel >= 2:1.2.46
 BuildRequires:	libjpeg-devel >= 6b
 BuildRequires:	libstdc++-devel
+BuildRequires:	lodepng-devel
+BuildRequires:	lzham-devel
+BuildRequires:	lzma-sdk-devel
 BuildRequires:	opencv-devel
 BuildRequires:	pkgconfig
 BuildRequires:	pulseaudio-devel
@@ -90,6 +99,11 @@ Pliki nagłówkowe bibliotek VSXu.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 %build
 install -d build
@@ -115,8 +129,11 @@ rm -rf $RPM_BUILD_ROOT
 # COPYING contains copyright notes, not only GPL text
 %doc AUTHORS CHANGELOG COPYING README.md
 %attr(755,root,root) %{_bindir}/obj2vxm
+%attr(755,root,root) %{_bindir}/raw2wav
+%attr(755,root,root) %{_bindir}/vsxbt
 %attr(755,root,root) %{_bindir}/vsxl
 %attr(755,root,root) %{_bindir}/vsxu_artiste
+%attr(755,root,root) %{_bindir}/vsxu_launcher
 %attr(755,root,root) %{_bindir}/vsxu_player
 %attr(755,root,root) %{_bindir}/vsxu_profiler
 %attr(755,root,root) %{_bindir}/vsxu_server
@@ -136,12 +153,14 @@ rm -rf $RPM_BUILD_ROOT
 
 %files libs
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libvsxu_engine.so
-%attr(755,root,root) %{_libdir}/libvsxu_engine_audiovisual.so
-%attr(755,root,root) %{_libdir}/libvsxu_engine_graphics.so
+%attr(755,root,root) %{_libdir}/libvsx_application.so
+%attr(755,root,root) %{_libdir}/libvsx_common.so
+%attr(755,root,root) %{_libdir}/libvsx_compression.so
+%attr(755,root,root) %{_libdir}/libvsx_engine.so
+%attr(755,root,root) %{_libdir}/libvsx_engine_graphics.so
 %attr(755,root,root) %{_libdir}/libvsx_widget.so
 
 %files devel
 %defattr(644,root,root,755)
 %{_includedir}/vsxu
-%{_pkgconfigdir}/libvsxu.pc
+%{_pkgconfigdir}/libvsx.pc
diff --git a/vsxu-desktop.patch b/vsxu-desktop.patch
index 8a74ee8..6288141 100644
--- a/vsxu-desktop.patch
+++ b/vsxu-desktop.patch
@@ -1,5 +1,5 @@
---- vsxu-0.4.2/artiste/vsxu-artiste.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/artiste/vsxu-artiste.desktop.in	2014-01-04 21:48:33.094109544 +0100
+--- vsxu-0.6.3/programs/artiste/vsxu-artiste.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/programs/artiste/vsxu-artiste.desktop.in	2014-01-04 21:48:33.094109544 +0100
 @@ -1,8 +1,10 @@
  [Desktop Entry]
  Name=VSXu Artiste [windowed]
@@ -12,8 +12,8 @@
  Icon=vsxu
  Type=Application
  Categories=Graphics;
---- vsxu-0.4.2/artiste/vsxu-artiste-fullscreen.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/artiste/vsxu-artiste-fullscreen.desktop.in	2014-01-04 21:49:23.687440702 +0100
+--- vsxu-0.6.3/programs/artiste/vsxu-artiste-fullscreen.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/programs/artiste/vsxu-artiste-fullscreen.desktop.in	2014-01-04 21:49:23.687440702 +0100
 @@ -1,8 +1,10 @@
  [Desktop Entry]
  Name=VSXu Artiste [fullscreen]
@@ -26,8 +26,8 @@
  Icon=vsxu
  Type=Application
  Categories=Graphics;
---- vsxu-0.4.2/player/vsxu-player.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/player/vsxu-player.desktop.in	2014-01-04 21:50:22.114104932 +0100
+--- vsxu-0.6.3/programs/player/vsxu-player.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/programs/player/vsxu-player.desktop.in	2014-01-04 21:50:22.114104932 +0100
 @@ -1,8 +1,9 @@
  [Desktop Entry]
  Name=VSXu Player [windowed]
@@ -39,8 +39,8 @@
  Icon=vsxu
  Type=Application
  Categories=AudioVideo;Audio;Player;
---- vsxu-0.4.2/player/vsxu-player-fullscreen.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/player/vsxu-player-fullscreen.desktop.in	2014-01-04 21:50:43.957437407 +0100
+--- vsxu-0.6.3/programs/player/vsxu-player-fullscreen.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/programs/player/vsxu-player-fullscreen.desktop.in	2014-01-04 21:50:43.957437407 +0100
 @@ -1,8 +1,9 @@
  [Desktop Entry]
  Name=VSXu Player [fullscreen]
@@ -52,8 +52,8 @@
  Icon=vsxu
  Type=Application
  Categories=AudioVideo;Audio;Player;
---- vsxu-0.4.2/server/vsxu-server.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/server/vsxu-server.desktop.in	2014-01-04 21:51:22.134102443 +0100
+--- vsxu-0.6.3/programs/server/vsxu-server.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/programs/server/vsxu-server.desktop.in	2014-01-04 21:51:22.134102443 +0100
 @@ -1,8 +1,10 @@
  [Desktop Entry]
  Name=VSXu server [windowed]
@@ -66,8 +66,8 @@
  Icon=vsxu
  Type=Application
  Categories=Graphics;
---- vsxu-0.4.2/server/vsxu-server-fullscreen.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/server/vsxu-server-fullscreen.desktop.in	2014-01-04 21:51:53.657434467 +0100
+--- vsxu-0.6.3/programs/server/vsxu-server-fullscreen.desktop.in.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/programs/server/vsxu-server-fullscreen.desktop.in	2014-01-04 21:51:53.657434467 +0100
 @@ -1,8 +1,10 @@
  [Desktop Entry]
  Name=VSXu server [fullscreen]
diff --git a/vsxu-format64.patch b/vsxu-format64.patch
new file mode 100644
index 0000000..5bcb9ea
--- /dev/null
+++ b/vsxu-format64.patch
@@ -0,0 +1,20 @@
+--- vsxu-0.6.3/lib/common/include/string/vsx_string_helper.h.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/lib/common/include/string/vsx_string_helper.h	2020-04-02 06:24:31.508349532 +0200
+@@ -39,7 +39,7 @@
+   inline vsx_string<>ui642s(const uint64_t &in)
+   {
+     char string_res[256] = "";
+-    #if COMPILER == COMPILER_VISUAL_STUDIO
++    #if (COMPILER == COMPILER_VISUAL_STUDIO) || !defined(_LP64)
+     sprintf(string_res,"%llu",in);
+     #else
+     sprintf(string_res,"%lu",in);
+@@ -67,7 +67,7 @@
+   inline vsx_string<>i2x(const uint64_t &in)
+   {
+     char string_res[256] = "";
+-    #if COMPILER == COMPILER_VISUAL_STUDIO
++    #if (COMPILER == COMPILER_VISUAL_STUDIO) || !defined(_LP64)
+       sprintf(string_res,"%llx",in);
+     #else
+       sprintf(string_res,"%lx",in);
diff --git a/vsxu-glfw3.patch b/vsxu-glfw3.patch
index 3da5811..bfad125 100644
--- a/vsxu-glfw3.patch
+++ b/vsxu-glfw3.patch
@@ -1,782 +1,16 @@
---- vsxu-0.4.2/cmake/modules/FindGLFW.cmake.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/cmake/modules/FindGLFW.cmake	2014-01-01 17:59:46.528896515 +0100
+--- vsxu-0.6.3/cmake/modules/FindGLFW.cmake.orig	2020-03-20 06:19:07.835811451 +0100
++++ vsxu-0.6.3/cmake/modules/FindGLFW.cmake	2020-03-20 06:22:59.794554823 +0100
 @@ -20,7 +20,7 @@
  # Allow the user to select to link to a shared library or to a static library.
  
  #Search for the include file...
 -FIND_PATH(GLFW_INCLUDE_PATH GL/glfw.h DOC "Path to GLFW include directory."
 +FIND_PATH(GLFW_INCLUDE_PATH GLFW/glfw3.h DOC "Path to GLFW include directory."
-   HINTS
-   $ENV{GLFW_ROOT}
-   PATH_SUFFIX include #For finding the include file under the root of the glfw expanded archive, typically on Windows.
---- vsxu-0.5.1/artiste/src/vsx_widget/server/vsx_widget_comp.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/artiste/src/vsx_widget/server/vsx_widget_comp.cpp	2016-03-02 17:54:59.490833843 +0100
-@@ -45,7 +45,7 @@
- #include "widgets/vsx_widget_popup_menu.h"
- #include "vsx_data_path.h"
- #include <gl_helper.h>
--#include <GL/glfw.h>
-+#include <GLFW/glfw3.h>
- 
- // widget
- #include <dialogs/dialog_query_string.h>
-@@ -1680,7 +1680,7 @@
-   VSX_UNUSED(alt);
-   VSX_UNUSED(ctrl);
-   VSX_UNUSED(shift);
--  if (abs(key) == GLFW_KEY_DEL)
-+  if (abs(key) == GLFW_KEY_DELETE)
-   {
-     if (((vsx_widget_server*)(this->server))->selected_list.size())
-     for (std::list<vsx_widget*>::iterator itx = ((vsx_widget_server*)server)->selected_list.begin(); itx != ((vsx_widget_server*)server)->selected_list.end(); ++itx) {
---- vsxu-0.5.1/artiste/src/artiste_main.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/artiste/src/artiste_main.cpp	2016-03-02 18:31:13.680742600 +0100
-@@ -27,7 +27,7 @@
- #include <vsx_string_helper.h>
- #include <vsx_argvector.h>
- #include <GL/glew.h>
--#include "GL/glfw.h"
-+#include <GLFW/glfw3.h>
- #include "artiste_application.h"
- #include "vsxfst.h"
- #include "vsx_version.h"
-@@ -70,9 +70,9 @@
- 
- void set_modifiers()
- {
--  app_ctrl = (bool)glfwGetKey(GLFW_KEY_LCTRL);
--  app_shift = (bool)glfwGetKey(GLFW_KEY_LSHIFT);
--  app_alt = (bool)glfwGetKey(GLFW_KEY_LALT);
-+  app_ctrl = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_CONTROL);
-+  app_shift = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_SHIFT);
-+  app_alt = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_ALT);
- }
- 
- long key_pressed = -1;
-@@ -81,14 +81,10 @@
- float key_repeat_time;
- float initial_key_delay = 0.04f;
- 
--void GLFWCALL key_char_event( int character, int action )
-+void key_char_event(GLFWwindow *window, unsigned int character)
- {
--  if (action == GLFW_PRESS)
--  {
-     app_char(character);
-     key_character = character;
--
--  }
- }
- 
- void app_close_window()
-@@ -93,10 +89,10 @@
- 
- void app_close_window()
- {
--  glfwCloseWindow();
-+  glfwDestroyWindow(glfwGetCurrentContext());
- }
- 
--void GLFWCALL key_event(int key, int action)
-+void key_event(GLFWwindow *window, int key, int scancode, int action, int mods)
- {
-   set_modifiers();
-   if (action == GLFW_PRESS)
-@@ -115,12 +111,12 @@
-   }
- }
- 
--int last_x = 0, last_y = 0;
-+double last_x = 0, last_y = 0;
- int mouse_state = 0;
- 
--void GLFWCALL mouse_button_event(int button, int action)
-+void mouse_button_event(GLFWwindow *window, int button, int action, int mods)
- {
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   set_modifiers();
-   unsigned long i_but = 0;
-   switch (button)
-@@ -142,26 +138,26 @@
- 
- int mouse_pos_type = 0;
- 
--void GLFWCALL mouse_pos_event(int x, int y)
-+void mouse_pos_event(GLFWwindow *window, double x, double y)
- {
-   VSX_UNUSED(x);
-   VSX_UNUSED(y);
-   set_modifiers();
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   if (mouse_state) mouse_pos_type = 1;
-   else mouse_pos_type = 2;
- }
- 
--int mousewheel_prev_pos = 0;
-+double mousewheel_prev_pos = 0;
- 
--void GLFWCALL mouse_wheel(int pos)
-+void mouse_wheel(GLFWwindow *window, double xoffset, double yoffset)
- {
-   set_modifiers();
--  app_mousewheel((float)(pos-mousewheel_prev_pos),last_x,last_y);
--  mousewheel_prev_pos = pos;
-+  app_mousewheel((float)(yoffset-mousewheel_prev_pos),last_x,last_y);
-+  mousewheel_prev_pos = yoffset;
- }
- 
--void GLFWCALL window_size( int width, int height )
-+void window_size( GLFWwindow *window, int width, int height )
- {
-   vsx_gl_state::get_instance()->viewport_change(0,0,width, height);
- }
-@@ -206,7 +202,8 @@
-   glfwInit();
-   set_modifiers();
- 
--  int     width, height, running, frames, x, y;
-+  int     width, height, running, frames;
-+  double  x, y;
-   double  t, t1;
-   char    titlestr[ 200 ];
- 
-@@ -249,24 +246,24 @@
-   if (start_fullscreen && !manual_resolution_set)
-   {
-     // try to get the resolution from the desktop for fullscreen
--    GLFWvidmode video_mode;
--    glfwGetDesktopMode(&video_mode);
--    x_res = video_mode.Height;
--    y_res = video_mode.Width;
-+    GLFWvidmode video_mode = * glfwGetVideoMode(glfwGetPrimaryMonitor());
-+    x_res = video_mode.height;
-+    y_res = video_mode.width;
-   }
- 
- 
-   if (vsx_argvector::get_instance()->has_param("gl_debug"))
-   {
-     printf("enabling GL DEBUG\n");
--    glfwOpenWindowHint( GLFW_OPENGL_DEBUG_CONTEXT , GL_TRUE );
-+    glfwWindowHint( GLFW_OPENGL_DEBUG_CONTEXT , GL_TRUE );
-   }
- 
-   // OpenGL version
--  glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 2);
--  glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 1);
-+  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
-+  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
-+  glfwWindowHint(GLFW_DEPTH_BITS, 16);
- 
--  if( !glfwOpenWindow( x_res, y_res, 0,0,0,0,16,0, start_fullscreen?GLFW_FULLSCREEN:GLFW_WINDOW ) ) // GLFW_FULLSCREEN
-+  if( !glfwCreateWindow( x_res, y_res, "", start_fullscreen ? glfwGetPrimaryMonitor() : NULL, NULL ) )
-   {
-     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
-     glfwTerminate();
-@@ -277,12 +274,10 @@
- 
- 
-   if (start_fullscreen)
--    glfwEnable( GLFW_MOUSE_CURSOR );
-+    glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_NORMAL);
- 
-   app_load(0);
- 
--  glfwEnable(GLFW_AUTO_POLL_EVENTS);
--
-   for (int i = 1; i < argc; i++)
-   {
-     vsx_string arg1 = argv[i];
-@@ -294,20 +289,20 @@
-         vsx_avector<vsx_string> parts;
-         vsx_string deli = ",";
-         explode(arg2, deli, parts);
--        glfwSetWindowPos( vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]) );
-+        glfwSetWindowPos(glfwGetCurrentContext(), vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]));
-       }
-     }
-   }
- 
--  glfwSetKeyCallback(&key_event);
--  glfwSetMouseButtonCallback(&mouse_button_event);
--  glfwSetMousePosCallback(&mouse_pos_event);
--  glfwSetCharCallback(&key_char_event);
--  glfwSetMouseWheelCallback(&mouse_wheel);
-+  glfwSetKeyCallback(glfwGetCurrentContext(), &key_event);
-+  glfwSetMouseButtonCallback(glfwGetCurrentContext(), &mouse_button_event);
-+  glfwSetCursorPosCallback(glfwGetCurrentContext(), &mouse_pos_event);
-+  glfwSetCharCallback(glfwGetCurrentContext(), &key_char_event);
-+  glfwSetScrollCallback(glfwGetCurrentContext(), &mouse_wheel);
-   // set window size callback function
--  glfwSetWindowSizeCallback(window_size);
-+  glfwSetWindowSizeCallback(glfwGetCurrentContext(), &window_size);
-   // Enable sticky keys
--  glfwEnable( GLFW_STICKY_KEYS );
-+  glfwSetInputMode(glfwGetCurrentContext(), GLFW_STICKY_KEYS, GL_TRUE);
- 
- 
-   // vsync handling
-@@ -356,7 +351,7 @@
-   #if PLATFORM_FAMILY == PLATFORM_FAMILY_WINDOWS
-   sprintf( titlestr, "Vovoid VSXu Artiste %s [Windows %d-bit]", vsxu_ver, PLATFORM_BITS);
-   #endif
--  glfwSetWindowTitle( titlestr );
-+  glfwSetWindowTitle( glfwGetCurrentContext(), titlestr );
- 
- 
-   vsx_timer frame_delay;
-@@ -409,7 +404,7 @@
- 
-     // Get time and mouse position
-     t = glfwGetTime();
--    glfwGetMousePos( &x, &y );
-+    glfwGetCursorPos(glfwGetCurrentContext(), &x, &y );
-     float delta = t-t1;
-     t1 = t;
-     if (key_pressed != -1)
-@@ -435,7 +430,7 @@
-     frames ++;
- 
-       // Get window size (may be different than the requested size)
--      glfwGetWindowSize( &width, &height );
-+      glfwGetWindowSize( glfwGetCurrentContext(), &width, &height );
-       height = height > 0 ? height : 1;
- 
-       // Set viewport
-@@ -451,7 +446,7 @@
- 
-     app_draw(0);
- 
--    glfwSwapBuffers();
-+    glfwSwapBuffers(glfwGetCurrentContext());
- 
- //#if (PLATFORM != PLATFORM_WINDOWS)
- //    if (!vsync)
-@@ -467,7 +462,7 @@
- //#endif
- 
- 
--    running = glfwGetWindowParam( GLFW_OPENED );
-+    running = !glfwWindowShouldClose(glfwGetCurrentContext());
-   }
- 
-   app_unload();
---- vsxu-0.5.1/player/src/main.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/player/src/main.cpp	2016-03-02 18:37:43.074059591 +0100
-@@ -24,7 +24,7 @@
- #include <stdio.h>
- #include "application.h"
- #include <GL/glew.h>
--#include <GL/glfw.h>
-+#include <GLFW/glfw3.h>
- #include <container/vsx_avector.h>
- #include <vsx_string.h>
- #include <vsx_string_helper.h>
-@@ -48,9 +48,9 @@
- 
- void set_modifiers()
- {
--  app_ctrl = (bool)glfwGetKey(GLFW_KEY_LCTRL);
--  app_shift = (bool)glfwGetKey(GLFW_KEY_LSHIFT);
--  app_alt = (bool)glfwGetKey(GLFW_KEY_LALT);
-+  app_ctrl = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_CONTROL);
-+  app_shift = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_SHIFT);
-+  app_alt = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_ALT);
- }
- 
- long key_pressed = -1;
-@@ -59,18 +59,15 @@
- float key_repeat_time;
- float initial_key_delay = 0.04f;
- 
--void GLFWCALL key_char_event( int character, int action )
-+void key_char_event( GLFWwindow *window, unsigned int character )
- {
--  if (action == GLFW_PRESS)
--  {
-     //printf("got key: %d\n",character);
-     app_char(character);
-     key_character = character;
--  }
- }
- 
- 
--void GLFWCALL key_event(int key, int action)
-+void key_event(GLFWwindow *window, int key, int scancode, int action, int mods)
- {
-   set_modifiers();
-   if (action == GLFW_PRESS)
-@@ -91,12 +88,12 @@
-   }
- }
- 
--int last_x = 0, last_y = 0;
-+double last_x = 0, last_y = 0;
- int mouse_state = 0;
- 
--void GLFWCALL mouse_button_event(int button, int action)
-+void mouse_button_event(GLFWwindow *window, int button, int action, int mods)
- {
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   set_modifiers();
-   unsigned long i_but = 0;
-   switch (button)
-@@ -118,25 +115,25 @@
- 
- int mouse_pos_type = 0;
- 
--void GLFWCALL mouse_pos_event(int x, int y)
-+void mouse_pos_event(GLFWwindow *window, double x, double y)
- {
-   VSX_UNUSED(x);
-   VSX_UNUSED(y);
-   set_modifiers();
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   if (mouse_state) mouse_pos_type = 1;
-   else mouse_pos_type = 2;
- }
- 
--int mousewheel_prev_pos = 0;
-+double mousewheel_prev_pos = 0;
- 
--void GLFWCALL mouse_wheel(int pos)
-+void mouse_wheel(GLFWwindow *window, double xoffset, double yoffset)
- {
--  app_mousewheel((float)(pos-mousewheel_prev_pos),last_x,last_y);
--  mousewheel_prev_pos = pos;
-+  app_mousewheel((float)(yoffset-mousewheel_prev_pos),last_x,last_y);
-+  mousewheel_prev_pos = yoffset;
- }
- 
--void GLFWCALL window_size( int width, int height )
-+void window_size( GLFWwindow *window, int width, int height )
- {
-   vsx_gl_state::get_instance()->viewport_change(0,0,width, height);
- }
-@@ -149,7 +146,8 @@
- {
-   app_argc = argc;
-   app_argv = argv;
--  int     width, height, running, frames, x, y;
-+  int     width, height, running, frames;
-+  double  x, y;
-   double  t, t1;
-   char    titlestr[ 200 ];
- 
-@@ -220,15 +218,15 @@
-   if (start_fullscreen && !manual_resolution_set)
-   {
-     // try to get the resolution from the desktop for fullscreen
--    GLFWvidmode video_mode;
--    glfwGetDesktopMode(&video_mode);
--    x_res = video_mode.Height;
--    y_res = video_mode.Width;
-+    GLFWvidmode video_mode = * glfwGetVideoMode(glfwGetPrimaryMonitor());
-+    x_res = video_mode.height;
-+    y_res = video_mode.width;
-   }
-   
-   // Open OpenGL window
--  glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
--  if( !glfwOpenWindow( x_res, y_res, 0,0,0,0,16,0, start_fullscreen?GLFW_FULLSCREEN:GLFW_WINDOW ) ) // GLFW_FULLSCREEN
-+  glfwWindowHint(GLFW_SAMPLES, 4);
-+  glfwWindowHint(GLFW_DEPTH_BITS, 16);
-+  if( !glfwCreateWindow( x_res, y_res, "", start_fullscreen ? glfwGetPrimaryMonitor() : NULL, NULL ) )
-   {
-     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
-     glfwTerminate();
-@@ -237,14 +235,12 @@
- 
-   glewInit();
- 
--  if (start_fullscreen) glfwEnable( GLFW_MOUSE_CURSOR );
-+  if (start_fullscreen) glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_NORMAL);
- 
-   printf("INFO: app_init\n");
-   app_init(0);
-   printf("INFO: app_init done\n");
- 
--  glfwEnable(GLFW_AUTO_POLL_EVENTS);
--
-   for (int i = 1; i < argc; i++) {
-     vsx_string arg1 = argv[i];
-     if (arg1 == "-p") {
-@@ -255,21 +251,21 @@
-         vsx_avector<vsx_string> parts;
-         vsx_string deli = ",";
-         explode(arg2, deli, parts);
--        glfwSetWindowPos( vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]) );
-+        glfwSetWindowPos(glfwGetCurrentContext(), vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]));
-       }
-     }
-   }
- 
--  glfwSetKeyCallback(&key_event);
--  glfwSetMouseButtonCallback(&mouse_button_event);
--  glfwSetMousePosCallback(&mouse_pos_event);
--  glfwSetCharCallback(&key_char_event);
--  glfwSetMouseWheelCallback(&mouse_wheel);
-+  glfwSetKeyCallback(glfwGetCurrentContext(), &key_event);
-+  glfwSetMouseButtonCallback(glfwGetCurrentContext(), &mouse_button_event);
-+  glfwSetCursorPosCallback(glfwGetCurrentContext(), &mouse_pos_event);
-+  glfwSetCharCallback(glfwGetCurrentContext(), &key_char_event);
-+  glfwSetScrollCallback(glfwGetCurrentContext(), &mouse_wheel);
-   // set window size callback function
--  glfwSetWindowSizeCallback(window_size);
-+  glfwSetWindowSizeCallback(glfwGetCurrentContext(), &window_size);
- 
-   // Enable sticky keys
--  glfwEnable( GLFW_STICKY_KEYS );
-+  glfwSetInputMode(glfwGetCurrentContext(), GLFW_STICKY_KEYS, GL_TRUE);
-   glfwSwapInterval(1);
- 
-   // Main loop
-@@ -282,7 +278,7 @@
-   #if PLATFORM_FAMILY == PLATFORM_FAMILY_WINDOWS
-     sprintf( titlestr, "Vovoid VSXu Player %s [Windows %d-bit]", vsxu_ver, PLATFORM_BITS);
-   #endif
--  glfwSetWindowTitle( titlestr );
-+  glfwSetWindowTitle( glfwGetCurrentContext(), titlestr );
- 
- 
-   while( running )
-@@ -299,7 +295,7 @@
- 
-     // Get time and mouse position
-     t = glfwGetTime();
--    glfwGetMousePos( &x, &y );
-+    glfwGetCursorPos( glfwGetCurrentContext(), &x, &y );
-     float delta = t-t1;
-     t1 = t;
-     if (key_pressed != -1)
-@@ -323,7 +319,7 @@
-     frames ++;
- 
-     // Get window size (may be different than the requested size)
--    glfwGetWindowSize( &width, &height );
-+    glfwGetWindowSize( glfwGetCurrentContext(), &width, &height );
-     height = height > 0 ? height : 1;
- 
-     // Set viewport
-@@ -339,11 +335,11 @@
- 
-     app_draw(0);
- 
--    glfwSwapBuffers();
-+    glfwSwapBuffers(glfwGetCurrentContext());
- 
-     // Check if the ESC key was pressed or the window was closed
--    running = /*!glfwGetKey( GLFW_KEY_ESC ) &&*/
--    glfwGetWindowParam( GLFW_OPENED );
-+    running = /*!glfwGetKey( glfwGetCurrentContext(), GLFW_KEY_ESCAPE ) &&*/
-+    	!glfwWindowShouldClose( glfwGetCurrentContext() );
-   }
- 
-   // Close OpenGL window and terminate GLFW
---- vsxu-0.4.2/player/src/application.cpp.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/player/src/application.cpp	2014-01-02 19:53:33.364984154 +0100
-@@ -36,7 +36,7 @@
- // you might want to remove this.
- #include "vsx_overlay.h"
- 
--#include <GL/glfw.h>
-+#include <GLFW/glfw3.h>
- 
- vsx_manager_abs* manager;
- 
-@@ -105,13 +105,13 @@
- {
-   switch (key)
-   {
--    case GLFW_KEY_ESC:
-+    case GLFW_KEY_ESCAPE:
-       if (manager) manager_destroy(manager);
-       exit(0);
--    case GLFW_KEY_PAGEUP:
-+    case GLFW_KEY_PAGE_UP:
-       manager->inc_speed();
-       break;
--    case GLFW_KEY_PAGEDOWN:
-+    case GLFW_KEY_PAGE_DOWN:
-       manager->dec_speed();
-       break;
-     case GLFW_KEY_UP:
---- vsxu-0.5.1/server/src/main/linux-opengl/main.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/server/src/main/linux-opengl/main.cpp	2016-03-02 20:21:33.300464802 +0100
-@@ -27,7 +27,7 @@
- #include <vsx_string_helper.h>
- #include <vsx_argvector.h>
- #include <GL/glew.h>
--#include "GL/glfw.h"
-+#include <GLFW/glfw3.h>
- #include "application.h"
- #include "vsxfst.h"
- #include "vsx_version.h"
-@@ -67,9 +67,9 @@
- 
- void set_modifiers()
- {
--  app_ctrl = (bool)glfwGetKey(GLFW_KEY_LCTRL);
--  app_shift = (bool)glfwGetKey(GLFW_KEY_LSHIFT);
--  app_alt = (bool)glfwGetKey(GLFW_KEY_LALT);
-+  app_ctrl = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_CONTROL);
-+  app_shift = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_SHIFT);
-+  app_alt = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_ALT);
- }
- 
- long key_pressed = -1;
-@@ -78,18 +78,14 @@
- float key_repeat_time;
- float initial_key_delay = 0.04f;
- 
--void GLFWCALL key_char_event( int character, int action )
-+void key_char_event( GLFWwindow *window, unsigned int character )
- {
--  if (action == GLFW_PRESS)
--  {
-     app_char(character);
-     key_character = character;
--
--  }
- }
- 
- 
--void GLFWCALL key_event(int key, int action)
-+void key_event(GLFWwindow *window, int key, int scancode, int action, int mods)
- {
-   set_modifiers();
-   if (action == GLFW_PRESS)
-@@ -108,12 +104,12 @@
-   }
- }
- 
--int last_x = 0, last_y = 0;
-+double last_x = 0, last_y = 0;
- int mouse_state = 0;
- 
--void GLFWCALL mouse_button_event(int button, int action)
-+void mouse_button_event(GLFWwindow *window, int button, int action, int mods)
- {
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   set_modifiers();
-   unsigned long i_but = 0;
-   switch (button)
-@@ -135,26 +131,26 @@
- 
- int mouse_pos_type = 0;
- 
--void GLFWCALL mouse_pos_event(int x, int y)
-+void mouse_pos_event(GLFWwindow *window, double x, double y)
- {
-   VSX_UNUSED(x);
-   VSX_UNUSED(y);
-   set_modifiers();
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   if (mouse_state) mouse_pos_type = 1;
-   else mouse_pos_type = 2;
- }
- 
--int mousewheel_prev_pos = 0;
-+double mousewheel_prev_pos = 0;
- 
--void GLFWCALL mouse_wheel(int pos)
-+void mouse_wheel(GLFWwindow *window, double xoffset, double yoffset)
- {
-   set_modifiers();
--  app_mousewheel((float)(pos-mousewheel_prev_pos),last_x,last_y);
--  mousewheel_prev_pos = pos;
-+  app_mousewheel((float)(yoffset-mousewheel_prev_pos),last_x,last_y);
-+  mousewheel_prev_pos = yoffset;
- }
- 
--void GLFWCALL window_size( int width, int height )
-+void window_size( GLFWwindow *window, int width, int height )
- {
-   vsx_gl_state::get_instance()->viewport_change(0,0,width, height);
- }
-@@ -203,7 +199,8 @@
-   set_modifiers();
- 
- 
--  int     width, height, running, frames, x, y;
-+  int     width, height, running, frames;
-+  double  x, y;
-   double  t, t1;
- //  unsigned long usleep_framelimit;
-   char    titlestr[ 200 ];
-@@ -252,24 +249,24 @@
-   if (start_fullscreen && !manual_resolution_set)
-   {
-     // try to get the resolution from the desktop for fullscreen
--    GLFWvidmode video_mode;
--    glfwGetDesktopMode(&video_mode);
--    x_res = video_mode.Height;
--    y_res = video_mode.Width;
-+    GLFWvidmode video_mode = * glfwGetVideoMode(glfwGetPrimaryMonitor());
-+    x_res = video_mode.height;
-+    y_res = video_mode.width;
-   }
- 
- 
-   if (vsx_argvector::get_instance()->has_param("gl_debug"))
-   {
-     printf("enabling GL DEBUG\n");
--    glfwOpenWindowHint( GLFW_OPENGL_DEBUG_CONTEXT , GL_TRUE );
-+    glfwWindowHint( GLFW_OPENGL_DEBUG_CONTEXT , GL_TRUE );
-   }
- 
-   // OpenGL version
--  glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 2);
--  glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 1);
-+  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
-+  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
-+  glfwWindowHint(GLFW_DEPTH_BITS, 16);
- 
--  if( !glfwOpenWindow( x_res, y_res, 0,0,0,0,16,0, start_fullscreen?GLFW_FULLSCREEN:GLFW_WINDOW ) ) // GLFW_FULLSCREEN
-+  if( !glfwCreateWindow( x_res, y_res, "", start_fullscreen ? glfwGetPrimaryMonitor() : NULL, NULL ) )
-   {
-     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
-     glfwTerminate();
-@@ -278,11 +275,9 @@
- 
-   glewInit();
- 
--  if (start_fullscreen) glfwEnable( GLFW_MOUSE_CURSOR );
-+  if (start_fullscreen) glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_NORMAL);
-   app_init(0);
- 
--  glfwEnable(GLFW_AUTO_POLL_EVENTS);
--
-   for (int i = 1; i < argc; i++)
-   {
-     vsx_string arg1 = argv[i];
-@@ -294,20 +289,20 @@
-         vsx_avector<vsx_string> parts;
-         vsx_string deli = ",";
-         explode(arg2, deli, parts);
--        glfwSetWindowPos( vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]) );
-+        glfwSetWindowPos(glfwGetCurrentContext(), vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]));
-       }
-     }
-   }
- 
--  glfwSetKeyCallback(&key_event);
--  glfwSetMouseButtonCallback(&mouse_button_event);
--  glfwSetMousePosCallback(&mouse_pos_event);
--  glfwSetCharCallback(&key_char_event);
--  glfwSetMouseWheelCallback(&mouse_wheel);
-+  glfwSetKeyCallback(glfwGetCurrentContext(), &key_event);
-+  glfwSetMouseButtonCallback(glfwGetCurrentContext(), &mouse_button_event);
-+  glfwSetCursorPosCallback(glfwGetCurrentContext(), &mouse_pos_event);
-+  glfwSetCharCallback(glfwGetCurrentContext(), &key_char_event);
-+  glfwSetScrollCallback(glfwGetCurrentContext(), &mouse_wheel);
-   // set window size callback function
--  glfwSetWindowSizeCallback(window_size);
-+  glfwSetWindowSizeCallback(glfwGetCurrentContext(), &window_size);
-   // Enable sticky keys
--  glfwEnable( GLFW_STICKY_KEYS );
-+  glfwSetInputMode( glfwGetCurrentContext(), GLFW_STICKY_KEYS, GL_TRUE );
- 
- 
-   // vsync handling
-@@ -356,7 +351,7 @@
-   #if PLATFORM_FAMILY == PLATFORM_FAMILY_WINDOWS
-   sprintf( titlestr, "Vovoid VSXu Artiste %s [Windows %d-bit]", vsxu_ver, PLATFORM_BITS);
-   #endif
--  glfwSetWindowTitle( titlestr );
-+  glfwSetWindowTitle( glfwGetCurrentContext(), titlestr );
- 
- 
-   int initial_vram_free = 0;
-@@ -403,7 +398,7 @@
- 
-     // Get time and mouse position
-     t = glfwGetTime();
--    glfwGetMousePos( &x, &y );
-+    glfwGetCursorPos( glfwGetCurrentContext(), &x, &y );
-     float delta = t-t1;
-     t1 = t;
-     if (key_pressed != -1)
-@@ -428,7 +423,7 @@
-     frames ++;
- 
-       // Get window size (may be different than the requested size)
--      glfwGetWindowSize( &width, &height );
-+      glfwGetWindowSize( glfwGetCurrentContext(), &width, &height );
-       height = height > 0 ? height : 1;
- 
-       // Set viewport
-@@ -439,12 +434,12 @@
- 
-     app_draw(0);
- 
--    glfwSwapBuffers();
-+    glfwSwapBuffers(glfwGetCurrentContext());
- 
- 
-     // Check if the ESC key was pressed or the window was closed
--    running = /*!glfwGetKey( GLFW_KEY_ESC ) &&*/
--    glfwGetWindowParam( GLFW_OPENED );
-+    running = /*!glfwGetKey( glfwGetCurrentContext(), GLFW_KEY_ESCAPE ) &&*/
-+    	!glfwWindowShouldClose( glfwGetCurrentContext() );
-   }
- 
-   // Close OpenGL window and terminate GLFW
---- vsxu-0.5.1/widget/src/widgets/vsx_widget_base_edit.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/widget/src/widgets/vsx_widget_base_edit.cpp	2016-03-02 17:57:55.150826469 +0100
-@@ -36,7 +36,7 @@
- #include "vsx_widget_popup_menu.h"
- #include <stdlib.h>
- #include "vsx_widget_button.h"
--#include "GL/glfw.h"
-+#include <GLFW/glfw3.h>
- #include <gl_helper.h>
- 
- vsx_widget_base_edit::vsx_widget_base_edit() {
-@@ -679,7 +679,7 @@
-         }
-       break;
-     // page up
--    case -GLFW_KEY_PAGEUP:
-+    case -GLFW_KEY_PAGE_UP:
-       if (!single_row) {
-         for (int zz = 0; zz < characters_height*0.95; ++zz) {
-         event_key_down(-GLFW_KEY_UP);
-@@ -700,7 +700,7 @@
-       }
-       break;
-     // page down
--    case -GLFW_KEY_PAGEDOWN:
-+    case -GLFW_KEY_PAGE_DOWN:
-       if (!single_row) {
-         for (int zz = 0; zz < characters_height*0.95; ++zz) {
-         event_key_down(-GLFW_KEY_DOWN,false,false,false);
-@@ -757,7 +757,7 @@
-       if (mirror_keystrokes_object) mirror_keystrokes_object->event_key_down(key, alt, ctrl, shift);
-     break;
-     // delete
--    case -GLFW_KEY_DEL:
-+    case -GLFW_KEY_DELETE:
-       event_key_down(-GLFW_KEY_RIGHT,false,false,false);
-       event_key_down(-GLFW_KEY_BACKSPACE,false,false,false);
-       process_line(carety+(int)scroll_y);
-@@ -795,7 +795,7 @@
-       if (mirror_keystrokes_object) mirror_keystrokes_object->event_key_down(key, alt, ctrl, shift);
-     break;
-     // esc
--    case -GLFW_KEY_ESC:
-+    case -GLFW_KEY_ESCAPE:
-     // da rest:
-       if (single_row) {
-         command_q_b.add_raw("cancel");
---- vsxu-0.5.1/widget/src/vsx_mouse.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/widget/src/vsx_mouse.cpp	2016-03-02 18:33:29.197403578 +0100
+   PATHS
+     $ENV{DEPINSTALL}/include
+     /usr/include/
+--- vsxu-0.6.3/lib/application/src/glfw/vsx_mouse.cpp.orig	2014-12-14 14:01:04.000000000 +0100
++++ vsxu-0.6.3/lib/application/src/glfw/vsx_mouse.cpp	2016-03-02 18:33:29.197403578 +0100
 @@ -22,7 +22,7 @@
  */
  
@@ -804,298 +38,3 @@
  }
  
  vsx_mouse::vsx_mouse()
---- vsxu-0.5.1/artiste/src/artiste_desktop.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/artiste/src/artiste_desktop.cpp	2016-03-02 22:09:12.080193754 +0100
-@@ -50,7 +50,7 @@
- #include "widgets/vsx_widget_base_edit.h"
- 
- #include "artiste_desktop.h"
--#include "GL/glfw.h"
-+#include <GLFW/glfw3.h>
- 
- // VSX_WIDGET_DESKTOP **************************************************************************************************
- // VSX_WIDGET_DESKTOP **************************************************************************************************
-@@ -202,10 +202,10 @@
-     case -GLFW_KEY_RIGHT: case -'F': case -'f':
-       camera.set_movement_x( 1.0 );
-     break;
--    case -GLFW_KEY_PAGEUP: case -'R': case -'r':
-+    case -GLFW_KEY_PAGE_UP: case -'R': case -'r':
-       camera.set_movement_z( -1.0 );
-     break;
--    case -GLFW_KEY_PAGEDOWN: case -'W': case -'w':
-+    case -GLFW_KEY_PAGE_DOWN: case -'W': case -'w':
-       camera.set_movement_z( 1.0 );
-     break;
-   } // switch
-@@ -235,8 +235,8 @@
-       camera.set_movement_x( 0.0 );
-     break;
- 
--    case GLFW_KEY_PAGEUP: case 'R': case 'r':
--    case GLFW_KEY_PAGEDOWN: case 'W': case 'w':
-+    case GLFW_KEY_PAGE_UP: case 'R': case 'r':
-+    case GLFW_KEY_PAGE_DOWN: case 'W': case 'w':
-       camera.set_movement_z( 0.0 );
-     break;
- 
---- vsxu-0.5.1/profiler/src/profiler_main.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/profiler/src/profiler_main.cpp	2016-03-04 16:55:06.153732911 +0100
-@@ -27,7 +27,7 @@
- #include <vsx_string_helper.h>
- #include <vsx_argvector.h>
- #include <GL/glew.h>
--#include "GL/glfw.h"
-+#include <GLFW/glfw3.h>
- #include "profiler_application.h"
- #include "vsxfst.h"
- #include "vsx_version.h"
-@@ -69,9 +69,9 @@
- 
- void set_modifiers()
- {
--  app_ctrl = (bool)glfwGetKey(GLFW_KEY_LCTRL);
--  app_shift = (bool)glfwGetKey(GLFW_KEY_LSHIFT);
--  app_alt = (bool)glfwGetKey(GLFW_KEY_LALT);
-+  app_ctrl = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_CONTROL);
-+  app_shift = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_SHIFT);
-+  app_alt = (bool)glfwGetKey(glfwGetCurrentContext(), GLFW_KEY_LEFT_ALT);
- }
- 
- long key_pressed = -1;
-@@ -80,18 +80,14 @@
- float key_repeat_time;
- float initial_key_delay = 0.04f;
- 
--void GLFWCALL key_char_event( int character, int action )
-+void key_char_event(GLFWwindow *window, int character)
- {
--  if (action == GLFW_PRESS)
--  {
-     app_char(character);
-     key_character = character;
--
--  }
- }
- 
- 
--void GLFWCALL key_event(int key, int action)
-+void key_event(GLFWwindow *window, int key, int scancode, int action, int mods)
- {
-   set_modifiers();
-   if (action == GLFW_PRESS)
-@@ -110,12 +106,12 @@
-   }
- }
- 
--int last_x = 0, last_y = 0;
-+double last_x = 0, last_y = 0;
- int mouse_state = 0;
- 
--void GLFWCALL mouse_button_event(int button, int action)
-+void mouse_button_event(GLFWwindow *window, int button, int action, int mods)
- {
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   set_modifiers();
-   unsigned long i_but = 0;
-   switch (button)
-@@ -137,26 +133,26 @@
- 
- int mouse_pos_type = 0;
- 
--void GLFWCALL mouse_pos_event(int x, int y)
-+void mouse_pos_event(GLFWwindow *window, double x, double y)
- {
-   VSX_UNUSED(x);
-   VSX_UNUSED(y);
-   set_modifiers();
--  glfwGetMousePos(&last_x, &last_y);
-+  glfwGetCursorPos(glfwGetCurrentContext(), &last_x, &last_y);
-   if (mouse_state) mouse_pos_type = 1;
-   else mouse_pos_type = 2;
- }
- 
--int mousewheel_prev_pos = 0;
-+double mousewheel_prev_pos = 0;
- 
--void GLFWCALL mouse_wheel(int pos)
-+void mouse_wheel(GLFWwindow *window, double xoffset, double yoffset)
- {
-   set_modifiers();
--  app_mousewheel((float)(pos-mousewheel_prev_pos),last_x,last_y);
--  mousewheel_prev_pos = pos;
-+  app_mousewheel((float)(yoffset-mousewheel_prev_pos),last_x,last_y);
-+  mousewheel_prev_pos = yoffset;
- }
- 
--void GLFWCALL window_size( int width, int height )
-+void window_size(GLFWwindow *window, int width, int height)
- {
-   vsx_gl_state::get_instance()->viewport_change(0,0,width, height);
- }
-@@ -210,7 +206,8 @@
-   glfwInit();
-   set_modifiers();
- 
--  int     width, height, running, frames, x, y;
-+  int     width, height, running, frames;
-+  double  x, y;
-   double  t, t1;
-   char    titlestr[ 200 ];
- 
-@@ -253,24 +250,24 @@
-   if (start_fullscreen && !manual_resolution_set)
-   {
-     // try to get the resolution from the desktop for fullscreen
--    GLFWvidmode video_mode;
--    glfwGetDesktopMode(&video_mode);
--    x_res = video_mode.Height;
--    y_res = video_mode.Width;
-+    GLFWvidmode video_mode = * glfwGetVideoMode(glfwGetPrimaryMonitor());
-+    x_res = video_mode.height;
-+    y_res = video_mode.width;
-   }
- 
- 
-   if (vsx_argvector::get_instance()->has_param("gl_debug"))
-   {
-     printf("enabling GL DEBUG\n");
--    glfwOpenWindowHint( GLFW_OPENGL_DEBUG_CONTEXT , GL_TRUE );
-+    glfwWindowHint( GLFW_OPENGL_DEBUG_CONTEXT , GL_TRUE );
-   }
- 
-   // OpenGL version
--  glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 2);
--  glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 1);
-+  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
-+  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
-+  glfwWindowHint(GLFW_DEPTH_BITS, 16);
- 
--  if( !glfwOpenWindow( x_res, y_res, 0,0,0,0,16,0, start_fullscreen?GLFW_FULLSCREEN:GLFW_WINDOW ) ) // GLFW_FULLSCREEN
-+  if( !glfwCreateWindow( x_res, y_res, "", start_fullscreen ? glfwGetPrimaryMonitor() : NULL, NULL ) )
-   {
-     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
-     glfwTerminate();
-@@ -280,11 +277,9 @@
-   glewInit();
- 
- 
--  if (start_fullscreen) glfwEnable( GLFW_MOUSE_CURSOR );
-+  if (start_fullscreen) glfwSetInputMode(glfwGetCurrentContext(), GLFW_CURSOR, GLFW_CURSOR_NORMAL);
-   app_init();
- 
--  glfwEnable(GLFW_AUTO_POLL_EVENTS);
--
-   for (int i = 1; i < argc; i++)
-   {
-     vsx_string arg1 = argv[i];
-@@ -296,20 +291,20 @@
-         vsx_avector<vsx_string> parts;
-         vsx_string deli = ",";
-         explode(arg2, deli, parts);
--        glfwSetWindowPos( vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]) );
-+        glfwSetWindowPos(glfwGetCurrentContext(), vsx_string_helper::s2i(parts[0]), vsx_string_helper::s2i(parts[1]));
-       }
-     }
-   }
- 
--  glfwSetKeyCallback(&key_event);
--  glfwSetMouseButtonCallback(&mouse_button_event);
--  glfwSetMousePosCallback(&mouse_pos_event);
--  glfwSetCharCallback(&key_char_event);
--  glfwSetMouseWheelCallback(&mouse_wheel);
-+  glfwSetKeyCallback(glfwGetCurrentContext(), &key_event);
-+  glfwSetMouseButtonCallback(glfwGetCurrentContext(), &mouse_button_event);
-+  glfwSetCursorPosCallback(glfwGetCurrentContext(), &mouse_pos_event);
-+  glfwSetCharCallback(glfwGetCurrentContext(), &key_char_event);
-+  glfwSetScrollCallback(glfwGetCurrentContext(), &mouse_wheel);
-   // set window size callback function
--  glfwSetWindowSizeCallback(window_size);
-+  glfwSetWindowSizeCallback(glfwGetCurrentContext(), &window_size);
-   // Enable sticky keys
--  glfwEnable( GLFW_STICKY_KEYS );
-+  glfwSetInputMode(glfwGetCurrentContext(), GLFW_STICKY_KEYS, GL_TRUE);
- 
- 
-   // vsync handling
-@@ -354,7 +349,7 @@
- 
-   sprintf( titlestr, "Vovoid VSXu Profiler %s [GNU/Linux %d-bit]", vsxu_ver, PLATFORM_BITS);
- 
--  glfwSetWindowTitle( titlestr );
-+  glfwSetWindowTitle(glfwGetCurrentContext(), titlestr);
- 
- 
-   vsx_timer frame_delay;
-@@ -376,7 +371,7 @@
- 
-     // Get time and mouse position
-     t = glfwGetTime();
--    glfwGetMousePos( &x, &y );
-+    glfwGetCursorPos(glfwGetCurrentContext(), &x, &y);
-     float delta = t-t1;
-     t1 = t;
-     if (key_pressed != -1)
-@@ -401,7 +396,7 @@
-     frames ++;
- 
-       // Get window size (may be different than the requested size)
--      glfwGetWindowSize( &width, &height );
-+      glfwGetWindowSize(glfwGetCurrentContext(), &width, &height);
-       height = height > 0 ? height : 1;
- 
-       // Set viewport
-@@ -419,7 +414,7 @@
- 
-     profiler->sub_begin("swapbuffers");
- 
--    glfwSwapBuffers();
-+    glfwSwapBuffers(glfwGetCurrentContext());
-     profiler->sub_end();
- 
- 
-@@ -440,7 +435,7 @@
- 
-     // Check if the ESC key was pressed or the window was closed
-     running = /*!glfwGetKey( GLFW_KEY_ESC ) &&*/
--    glfwGetWindowParam( GLFW_OPENED );
-+    	!glfwWindowShouldClose(glfwGetCurrentContext());
-     profiler->maj_end();
- 
-   }
---- vsxu-0.5.1/profiler/src/profiler_desktop.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/profiler/src/profiler_desktop.cpp	2016-03-04 16:59:50.213720990 +0100
-@@ -30,7 +30,7 @@
- #include "profiler_desktop.h"
- 
- #include <vsx_gl_global.h>
--#include <GL/glfw.h>
-+#include <GLFW/glfw3.h>
- 
- void vsx_widget_desktop::init()
- {
-@@ -116,10 +116,10 @@
-     case -GLFW_KEY_RIGHT: case -'F': case -'f':
-       camera.set_movement_x( 1.0 );
-     break;
--    case -GLFW_KEY_PAGEUP: case -'R': case -'r':
-+    case -GLFW_KEY_PAGE_UP: case -'R': case -'r':
-       camera.set_movement_z( -1.0 );
-     break;
--    case -GLFW_KEY_PAGEDOWN: case -'W': case -'w':
-+    case -GLFW_KEY_PAGE_DOWN: case -'W': case -'w':
-       camera.set_movement_z( 1.0 );
-     break;
-   } // switch
-@@ -149,8 +149,8 @@
-       camera.set_movement_x( 0.0 );
-     break;
- 
--    case GLFW_KEY_PAGEUP: case 'R': case 'r':
--    case GLFW_KEY_PAGEDOWN: case 'W': case 'w':
-+    case GLFW_KEY_PAGE_UP: case 'R': case 'r':
-+    case GLFW_KEY_PAGE_DOWN: case 'W': case 'w':
-       camera.set_movement_z( 0.0 );
-     break;
-   }
diff --git a/vsxu-icons.patch b/vsxu-icons.patch
index f0a7d1b..45b495c 100644
--- a/vsxu-icons.patch
+++ b/vsxu-icons.patch
@@ -1,5 +1,5 @@
---- vsxu-0.4.2/engine_graphics/CMakeLists.txt.orig	2013-11-24 11:00:51.000000000 +0100
-+++ vsxu-0.4.2/engine_graphics/CMakeLists.txt	2014-01-04 21:46:30.230781413 +0100
+--- vsxu-0.6.3/lib/engine_graphics/CMakeLists.txt.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.6.3/lib/engine_graphics/CMakeLists.txt	2014-01-04 21:46:30.230781413 +0100
 @@ -79,19 +79,19 @@
    file(GLOB HEADERS "include/*.h")
    install (FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/${VSXU_INSTALL_INCLUDE_DIR}/engine_graphics COMPONENT Devel)
@@ -29,7 +29,7 @@
 +  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/128x128/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/128x128/apps)
 +  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/192x192/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/192x192/apps)
 +  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/256x256/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/256x256/apps)
-+# install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/512x512/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/512x512/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/512x512/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/512x512/apps)
  endif()
  ################################################################################
  
diff --git a/vsxu-pc.patch b/vsxu-pc.patch
new file mode 100644
index 0000000..e2a5aed
--- /dev/null
+++ b/vsxu-pc.patch
@@ -0,0 +1,22 @@
+vsx_engine_audiovisual is now header-only library, so no linking possible
+--- vsxu-0.6.3/libvsx.pc.in.dynamic.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/libvsx.pc.in.dynamic	2020-04-02 18:11:25.565239537 +0200
+@@ -7,5 +7,5 @@
+ Description: VSXu is an OpenGL-based modular programming environment, mainly to visualize music and create graphic effects in real-time.
+ Version: @VSXU_VERSION@
+ Requires: glew libpng
+-Libs: -L${prefix}/${libdir} -lvsx_application -lvsx_common -lvsx_compression -lvsx_engine_audiovisual -lvsx_engine_graphics -lvsx_engine -lvsx_widget
+-Cflags: -I${prefix}/${includedir}/ -I${prefix}/${includedir}/application -I${prefix}/${includedir}/common -I${prefix}/${includedir}/compression -I${prefix}/${includedir}/engine -I${prefix}/${includedir}/engine_audiovisual -I${prefix}/${includedir}/engine_graphics -I${prefix}/${includedir}/widget
++Libs: -L${prefix}/${libdir} -lvsx_application -lvsx_common -lvsx_compression -lvsx_engine_graphics -lvsx_engine -lvsx_widget
++Cflags: -I${prefix}/${includedir}/ -I${prefix}/${includedir}/application -I${prefix}/${includedir}/common -I${prefix}/${includedir}/compression -I${prefix}/${includedir}/engine -I${prefix}/${includedir}/engine/audiovisual -I${prefix}/${includedir}/engine_graphics -I${prefix}/${includedir}/widget
+--- vsxu-0.6.3/libvsx.pc.in.static.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/libvsx.pc.in.static	2020-04-02 18:11:53.328422464 +0200
+@@ -8,6 +8,6 @@
+ Description: VSXu is an OpenGL-based modular programming environment, mainly to visualize music and create graphic effects in real-time.
+ Version: @VSXU_VERSION@
+ Requires:
+-Libs: -L${prefix}/${libdir} -lvsxu_engine -lvsxu_engine_graphics -lvsxu_engine_audiovisual -L${prefix}/${libdir_plugins} @VSXU_PLUGIN_PKGCONFIG_LIBS@
+-Cflags: -I${prefix}/${includedir}/ -I${prefix}/${includedir}/application -I${prefix}/${includedir}/common -I${prefix}/${includedir}/compression -I${prefix}/${includedir}/engine -I${prefix}/${includedir}/engine_audiovisual -I${prefix}/${includedir}/engine_graphics -I${prefix}/${includedir}/widget
++Libs: -L${prefix}/${libdir} -lvsxu_engine -lvsxu_engine_graphics -L${prefix}/${libdir_plugins} @VSXU_PLUGIN_PKGCONFIG_LIBS@
++Cflags: -I${prefix}/${includedir}/ -I${prefix}/${includedir}/application -I${prefix}/${includedir}/common -I${prefix}/${includedir}/compression -I${prefix}/${includedir}/engine -I${prefix}/${includedir}/engine/audiovisual -I${prefix}/${includedir}/engine_graphics -I${prefix}/${includedir}/widget
+ 
diff --git a/vsxu-system-cal3d.patch b/vsxu-system-cal3d.patch
new file mode 100644
index 0000000..45e5a61
--- /dev/null
+++ b/vsxu-system-cal3d.patch
@@ -0,0 +1,112 @@
+--- vsxu-0.6.3/plugins/src/mesh.importers/CMakeLists.txt.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/plugins/src/mesh.importers/CMakeLists.txt	2020-03-29 21:23:58.368261811 +0200
+@@ -13,10 +13,6 @@
+   add_definitions( -fPIC -fpermissive )
+ endif(UNIX)
+ 
+-set(DEFINITIONS
+-  -DCAL3D_EXPORTS
+-)
+-
+ if(NOT MSVC)
+   set(DEFINITIONS ${DEFINITIONS}
+     -Wno-narrowing
+@@ -26,64 +22,9 @@
+   )
+ endif()
+ 
+-set(INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src)
+-
+-add_definitions(${DEFINITIONS})
+-
+-include_directories(${INCLUDE_DIRS})
+-
+ # find the local source files
+ file(GLOB LOCAL_SOURCES "*.cpp")
+ 
+-set(SOURCES
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/animation_action.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/animation.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/animation_cycle.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/bone.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/buffersource.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/cal3d_wrapper.cpp
+-#${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/calxmlbindings.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coreanimatedmorph.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coreanimation.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/corebone.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/corekeyframe.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/corematerial.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coremesh.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coremodel.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coremorphkeyframe.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coremorphtrack.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coreskeleton.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coresubmesh.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coresubmorphtarget.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/coretrack.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/dualquaternion.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/error.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/global.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/hardwaremodel.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/loader.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/matrix.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/mesh.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/mixer.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/model.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/morphtargetmixer.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/physique.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/physiquedualquaternion.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/platform.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/quaternion.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/renderer.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/saver.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/skeleton.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/springsystem.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/streamsource.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/submesh.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/tinybind.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/tinyxml.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/tinyxmlerror.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/tinyxmlparser.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/vector.cpp
+-${CMAKE_CURRENT_LIST_DIR}/cal3d/cal3d/src/cal3d/xmlformat.cpp
+-)
+-
+ file(GLOB_RECURSE HEADER_FILES *.h)
+ 
+ # include common
+@@ -91,6 +32,7 @@
+ 
+ # actual compilation target
+ CREATE_MODULE(${module_id})
++target_link_libraries(${module_id} cal3d)
+ 
+ # include common
+ include(../cmake_suffix.txt)
+--- vsxu-0.6.3/plugins/src/mesh.importers/module_mesh_cal3d_loader_threaded.h.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/plugins/src/mesh.importers/module_mesh_cal3d_loader_threaded.h	2020-04-01 22:15:34.317282729 +0200
+@@ -367,10 +367,7 @@
+               if (h) {
+                 resources.push_back(file_path+parts[1]);
+                 char* a = engine_state->filesystem->f_gets_entire(h);
+-                TiXmlDocument doc;
+-                doc.Parse(a);
+-                free(a);
+-                CalCoreSkeletonPtr skeleton = CalLoader::loadXmlCoreSkeleton(doc);
++                CalCoreSkeletonPtr skeleton = CalLoader::loadXmlCoreSkeleton(a);
+                 if (skeleton)
+                   c_model->setCoreSkeleton( skeleton.get() );
+                 engine_state->filesystem->f_close(h);
+@@ -381,10 +378,7 @@
+               if (h) {
+                 resources.push_back(file_path+parts[1]);
+                 char* a = engine_state->filesystem->f_gets_entire(h);
+-                TiXmlDocument doc;
+-                doc.Parse(a);
+-                free(a);
+-                CalCoreMeshPtr mesh = CalLoader::loadXmlCoreMesh( doc );
++                CalCoreMeshPtr mesh = CalLoader::loadXmlCoreMesh( a );
+                 c_model->addCoreMesh( mesh.get() );
+                 if (mesh_id > -1)
+                   mesh_parts.push_back(mesh_id);
diff --git a/vsxu-system-ftgl.patch b/vsxu-system-ftgl.patch
index 1a9a74a..ddf2de5 100644
--- a/vsxu-system-ftgl.patch
+++ b/vsxu-system-ftgl.patch
@@ -1,116 +1,156 @@
---- vsxu-0.5.1/plugins/src/render.text/render_text.cpp.orig	2016-03-02 21:11:01.120340252 +0100
-+++ vsxu-0.5.1/plugins/src/render.text/render_text.cpp	2016-03-02 21:12:44.310335922 +0100
-@@ -26,10 +26,7 @@
- #include "vsx_param.h"
- #include "vsx_module.h"
- #include <vsx_font.h>
--#include "ftgl/FTGLPolygonFont.h"
--#include "ftgl/FTGLBitmapFont.h"
--#include "ftgl/FTGLOutlineFont.h"
--#include "ftgl/FTGLTextureFont.h"
-+#include <FTGL/ftgl.h>
+--- vsxu-0.6.3/plugins/src/render.text/CMakeLists.txt.orig	2020-03-20 18:32:45.297348400 +0100
++++ vsxu-0.6.3/plugins/src/render.text/CMakeLists.txt	2020-03-20 18:54:37.366906976 +0100
+@@ -8,22 +8,13 @@
  
- typedef struct
- {
---- vsxu-0.5.1/plugins/src/render.text/CMakeLists.txt.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/plugins/src/render.text/CMakeLists.txt	2016-03-02 21:07:10.127016617 +0100
-@@ -12,7 +12,7 @@
+ message("configuring vsxu module            " ${module_id})
+ 
+-include_directories( ${CMAKE_CURRENT_LIST_DIR}/../../../lib/engine_graphics/thirdparty/freetype2/include )
+-include_directories( ${CMAKE_CURRENT_LIST_DIR}/../../../lib/engine_graphics/thirdparty/freetype2/include/freetype )
+-include_directories( ${CMAKE_CURRENT_LIST_DIR}/../../../lib/engine_graphics/thirdparty/freetype2/include/freetype/config )
+-include_directories( ${CMAKE_CURRENT_LIST_DIR}/../../../lib/engine_graphics/thirdparty/ftgl)
+-include_directories( ${CMAKE_CURRENT_LIST_DIR}/../../../lib/engine_graphics/thirdparty/ftgl/src)
+-add_definitions( -DFTGL_LIBRARY_STATIC -DFT2_BUILD_LIBRARY)
+-
+ # set defines for MOD_CM, MOD_DM, MOD_NM
  CREATE_STATIC_GLUE(${module_id})
  
  # find the local source files
 -file(GLOB SOURCES "*.cpp" "ftgl/*.cpp")
 +file(GLOB SOURCES "*.cpp")
+ file(GLOB_RECURSE HEADER_FILES *.h)
  
- if(WIN32)
-   include_directories(lib/win32/include)
---- vsxu-0.5.1/engine_graphics/CMakeLists.txt.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/engine_graphics/CMakeLists.txt	2016-03-02 21:10:07.443675839 +0100
-@@ -14,6 +14,7 @@
- find_package(PNG REQUIRED)
- find_package(JPEG REQUIRED)
- find_package(Freetype REQUIRED)
-+find_package(FTGL REQUIRED)
- 
+-include_directories(${CMAKE_CURRENT_LIST_DIR}/../../../lib/engine_graphics/thirdparty/ftgl/src)
+-
+ # include common
+ include(../cmake_globals.txt)
  
+--- vsxu-0.6.3/lib/engine_graphics/CMakeLists.txt.orig	2020-03-20 18:32:44.830684262 +0100
++++ vsxu-0.6.3/lib/engine_graphics/CMakeLists.txt	2020-03-20 19:12:45.314346393 +0100
+@@ -12,6 +12,8 @@
  ################################################################################
-@@ -26,12 +27,11 @@
-   ${JPEG_INCLUDE_DIR}
-   ${CMAKE_SOURCE_DIR}/
-   ${CMAKE_SOURCE_DIR}/engine_graphics/include
--  ${CMAKE_SOURCE_DIR}/engine_graphics/include/ftgl
-   ${CMAKE_SOURCE_DIR}/engine/include
-   ${CMAKE_SOURCE_DIR}/profiler/include
- )
- 
--include_directories(${FREETYPE_INCLUDE_DIRS})
-+include_directories(${FREETYPE_INCLUDE_DIRS} ${FTGL_INCLUDE_DIR})
- 
- if(WIN32)
-   include_directories(lib/win32/include)
-@@ -72,30 +72,6 @@
-   src/vsx_texture.cpp
-   src/vsx_gl_state.cpp
-   src/gl_helper.cpp
--  src/ftgl/FTBitmapGlyph.cpp
--  src/ftgl/FTBufferGlyph.cpp
--  src/ftgl/FTCharmap.cpp
--  src/ftgl/FTContour.cpp
--  src/ftgl/FTExtrdGlyph.cpp
--  src/ftgl/FTFace.cpp
--  src/ftgl/FTFont.cpp
--  src/ftgl/FTGLBitmapFont.cpp
--  src/ftgl/FTGLBufferFont.cpp
--  src/ftgl/FTGLExtrdFont.cpp
--  src/ftgl/FTGLGlyph.cpp
--  src/ftgl/FTGLOutlineFont.cpp
--  src/ftgl/FTGLPixmapFont.cpp
--  src/ftgl/FTGLPolygonFont.cpp
--  src/ftgl/FTGLTextureFont.cpp
--  src/ftgl/FTGlyphContainer.cpp
--  src/ftgl/FTLibrary.cpp
--  src/ftgl/FTOutlineGlyph.cpp
--  src/ftgl/FTPixmapGlyph.cpp
--  src/ftgl/FTPoint.cpp
--  src/ftgl/FTPolyGlyph.cpp
--  src/ftgl/FTSize.cpp
--  src/ftgl/FTTextureGlyph.cpp
--  src/ftgl/FTVectoriser.cpp
- )
+ find_package(Threads REQUIRED)
+ find_package(OpenGL REQUIRED)
++find_package(Freetype REQUIRED)
++find_package(FTGL REQUIRED)
  
- if (VSXU_OPENGL_ES_2_0 EQUAL 1)
-@@ -159,6 +135,7 @@
-   ${OPENGL_LIBRARIES}
-   ${CMAKE_THREAD_LIBS_INIT}
-   ${GLEW_LIBRARY}
-+  ${FTGL_LIBRARY}
-   vsxu_engine
- )
  
---- vsxu-0.5.1/engine_graphics/src/vsx_font.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/engine_graphics/src/vsx_font.cpp	2016-03-03 22:15:32.323218595 +0100
-@@ -30,10 +30,7 @@
- #include "vsx_font.h"
+ ################################################################################
+@@ -20,6 +22,8 @@
  
- #ifndef VSX_FONT_NO_FT
--#include "ftgl/FTGLPolygonFont.h"
--#include "ftgl/FTGLBitmapFont.h"
--#include "ftgl/FTGLOutlineFont.h"
--#include "ftgl/FTGLTextureFont.h"
-+#include <FTGL/ftgl.h>
- #endif
+ include_directories(
+   ${OPENGL_INCLUDE_DIR}
++  ${FREETYPE_INCLUDE_DIR}
++  ${FTGL_INCLUDE_DIR}
+   ${CMAKE_SOURCE_DIR}/
+   ${CMAKE_SOURCE_DIR}/lib/common/include
+   ${CMAKE_SOURCE_DIR}/lib/engine_graphics/include
+@@ -56,97 +60,6 @@
+ file(GLOB_RECURSE SOURCES_CPP src/*.cpp)
+ set(SOURCES ${SOURCES} ${SOURCES_CPP})
  
+-#ftgl
+-include_directories(
+-thirdparty/ftgl
+-thirdparty/ftgl/src
+-)
+-
+-
+-set( SOURCES_FREETYPE
+-    thirdparty/freetype2/src/autofit/autofit.c
+-    thirdparty/freetype2/src/base/ftbase.c
+-    thirdparty/freetype2/src/base/ftbbox.c
+-    thirdparty/freetype2/src/base/ftbdf.c
+-    thirdparty/freetype2/src/base/ftbitmap.c
+-    thirdparty/freetype2/src/base/ftcid.c
+-    thirdparty/freetype2/src/base/ftdebug.c
+-    thirdparty/freetype2/src/base/ftfstype.c
+-    thirdparty/freetype2/src/base/ftgasp.c
+-    thirdparty/freetype2/src/base/ftglyph.c
+-    thirdparty/freetype2/src/base/ftgxval.c
+-    thirdparty/freetype2/src/base/ftinit.c
+-    thirdparty/freetype2/src/base/ftlcdfil.c
+-    thirdparty/freetype2/src/base/ftmm.c
+-    thirdparty/freetype2/src/base/ftotval.c
+-    thirdparty/freetype2/src/base/ftpatent.c
+-    thirdparty/freetype2/src/base/ftpfr.c
+-    thirdparty/freetype2/src/base/ftstroke.c
+-    thirdparty/freetype2/src/base/ftsynth.c
+-    thirdparty/freetype2/src/base/ftsystem.c
+-    thirdparty/freetype2/src/base/fttype1.c
+-    thirdparty/freetype2/src/base/ftwinfnt.c
+-    thirdparty/freetype2/src/bdf/bdf.c
+-    thirdparty/freetype2/src/cff/cff.c
+-    thirdparty/freetype2/src/cid/type1cid.c
+-    thirdparty/freetype2/src/pcf/pcf.c
+-    thirdparty/freetype2/src/pfr/pfr.c
+-    thirdparty/freetype2/src/psaux/psaux.c
+-    thirdparty/freetype2/src/pshinter/pshinter.c
+-    thirdparty/freetype2/src/psnames/psnames.c
+-    thirdparty/freetype2/src/raster/raster.c
+-    thirdparty/freetype2/src/sfnt/sfnt.c
+-    thirdparty/freetype2/src/smooth/smooth.c
+-    thirdparty/freetype2/src/truetype/truetype.c
+-    thirdparty/freetype2/src/type1/type1.c
+-    thirdparty/freetype2/src/type42/type42.c
+-    thirdparty/freetype2/src/winfonts/winfnt.c
+-)
+-
+-set(SOURCES_FTGL
+-    thirdparty/ftgl/src/FTBuffer.cpp
+-    thirdparty/ftgl/src/FTCharmap.cpp
+-    thirdparty/ftgl/src/FTCleanup.cpp
+-    thirdparty/ftgl/src/FTContour.cpp
+-    thirdparty/ftgl/src/FTFace.cpp
+-    thirdparty/ftgl/src/FTFont/FTBitmapFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTBufferFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTExtrudeFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTFontGlue.cpp
+-    thirdparty/ftgl/src/FTFont/FTOutlineFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTPixmapFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTPolygonFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTTextureFont.cpp
+-    thirdparty/ftgl/src/FTFont/FTTriangleExtractorFont.cpp
+-    thirdparty/ftgl/src/FTGL.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTBitmapGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTBufferGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTExtrudeGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTGLGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTGlyphGlue.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTOutlineGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTPixmapGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTPolygonGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTTextureGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyph/FTTriangleExtractorGlyph.cpp
+-    thirdparty/ftgl/src/FTGlyphContainer.cpp
+-    thirdparty/ftgl/src/FTLayout/FTLayout.cpp
+-    thirdparty/ftgl/src/FTLayout/FTLayoutGlue.cpp
+-    thirdparty/ftgl/src/FTLayout/FTSimpleLayout.cpp
+-    thirdparty/ftgl/src/FTLibrary.cpp
+-    thirdparty/ftgl/src/FTPoint.cpp
+-    thirdparty/ftgl/src/FTSize.cpp
+-    thirdparty/ftgl/src/FTVectoriser.cpp
+-)
+-
+-if (WIN32)
+-  include_directories( thirdparty/freetype2/include )
+-  include_directories( thirdparty/freetype2/include/freetype )
+-  include_directories( thirdparty/freetype2/include/freetype/config )
+-  add_definitions( -DFTGL_LIBRARY_STATIC -DFT2_BUILD_LIBRARY)
+-  set(SOURCES ${SOURCES} ${SOURCES_FREETYPE} thirdparty/glew-1.7.0/src/glew.c)
+-endif()
  
---- vsxu-0.5.1/engine_graphics/src/vsx_font_outline.cpp.orig	2014-12-14 14:01:04.000000000 +0100
-+++ vsxu-0.5.1/engine_graphics/src/vsx_font_outline.cpp	2016-03-03 22:15:52.329884424 +0100
-@@ -1,10 +1,7 @@
- #include "vsx_gl_global.h"
- #include "vsx_gl_state.h"
- #include "vsx_font_outline.h"
--#include "ftgl/FTGLPolygonFont.h"
--#include "ftgl/FTGLBitmapFont.h"
--#include "ftgl/FTGLOutlineFont.h"
--#include "ftgl/FTGLTextureFont.h"
-+#include <FTGL/ftgl.h>
+ #perlin
+ include_directories(
+@@ -175,9 +88,9 @@
  
+ if (VSXU_STATIC EQUAL 1)
+   #static build
+-  add_library(${module_id} STATIC ${SOURCES} ${SOURCES_FTGL} ${SOURCES_PERLIN} ${HEADER_FILES} ${SOURCES_LODEPNG})
++  add_library(${module_id} STATIC ${SOURCES} ${SOURCES_PERLIN} ${HEADER_FILES} ${SOURCES_LODEPNG})
+ else ()
+-  add_library(${module_id} SHARED ${SOURCES} ${SOURCES_FTGL} ${SOURCES_PERLIN} ${HEADER_FILES} ${SOURCES_LODEPNG})
++  add_library(${module_id} SHARED ${SOURCES} ${SOURCES_PERLIN} ${HEADER_FILES} ${SOURCES_LODEPNG})
+ endif()
  
- class font_outline_holder
+ if (UNIX)
diff --git a/vsxu-system-lodepng.patch b/vsxu-system-lodepng.patch
new file mode 100644
index 0000000..3bbf26d
--- /dev/null
+++ b/vsxu-system-lodepng.patch
@@ -0,0 +1,36 @@
+--- vsxu-0.6.3/lib/engine_graphics/CMakeLists.txt.orig	2020-03-20 20:23:17.661417801 +0100
++++ vsxu-0.6.3/lib/engine_graphics/CMakeLists.txt	2020-03-23 21:20:06.305411371 +0100
+@@ -69,13 +69,6 @@
+ thirdparty/perlin/perlin.cpp
+ )
+ 
+-#lodepng
+-include_directories(
+-    thirdparty/lodepng
+-)
+-set(SOURCES_LODEPNG
+-    thirdparty/lodepng/lodepng.cpp
+-)
+ 
+ #jpeg
+ include_directories(
+@@ -88,9 +81,9 @@
+ 
+ if (VSXU_STATIC EQUAL 1)
+   #static build
+-  add_library(${module_id} STATIC ${SOURCES} ${SOURCES_PERLIN} ${HEADER_FILES} ${SOURCES_LODEPNG})
++  add_library(${module_id} STATIC ${SOURCES} ${SOURCES_PERLIN} ${HEADER_FILES})
+ else ()
+-  add_library(${module_id} SHARED ${SOURCES} ${SOURCES_PERLIN} ${HEADER_FILES} ${SOURCES_LODEPNG})
++  add_library(${module_id} SHARED ${SOURCES} ${SOURCES_PERLIN} ${HEADER_FILES})
+ endif()
+ 
+ if (UNIX)
+@@ -128,6 +121,7 @@
+ target_link_libraries(
+   ${module_id}
+   vsx_engine
++  lodepng
+   ${GLEW_LIBRARIES}
+   ${FTGL_LIBRARY}
+   ${FREETYPE_LIBRARIES}
diff --git a/vsxu-system-lzham-lzma.patch b/vsxu-system-lzham-lzma.patch
new file mode 100644
index 0000000..bc9c911
--- /dev/null
+++ b/vsxu-system-lzham-lzma.patch
@@ -0,0 +1,84 @@
+--- vsxu-0.6.3/lib/compression/CMakeLists.txt.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/lib/compression/CMakeLists.txt	2020-03-29 20:39:11.956148687 +0200
+@@ -50,46 +50,10 @@
+   src/vsx_compression_lzham.cpp
+ )
+ 
+-
+-add_definitions(-D_7ZIP_ST)
+-set(SOURCES_LZMA
+-  thirdparty/lzma-sdk/C/Alloc.c
+-  thirdparty/lzma-sdk/C/LzmaLib.c
+-  thirdparty/lzma-sdk/C/LzmaEnc.c
+-  thirdparty/lzma-sdk/C/LzmaDec.c
+-  thirdparty/lzma-sdk/C/LzFind.c
+-)
+-
+-
+-add_definitions(
+-  -DLZHAM_NO_THREADING=1
+-  -fno-strict-aliasing
+-)
+ include_directories(
+-  ${CMAKE_SOURCE_DIR}/lib/compression/thirdparty/lzham-sdk/include
+-  ${CMAKE_SOURCE_DIR}/lib/compression/thirdparty/lzham-sdk/lzhamcomp
+-  ${CMAKE_SOURCE_DIR}/lib/compression/thirdparty/lzham-sdk/lzhamdecomp
+-)
+-set(SOURCES_LZHAM
+-  thirdparty/lzham-sdk/lzhamlib/lzham_lib.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_assert.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_checksum.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_huffman_codes.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_lzdecompbase.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_lzdecomp.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_mem.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_platform.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_prefix_coding.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_symbol_codec.cpp
+-  #thirdparty/lzham-sdk/lzhamdecomp/lzham_timer.cpp
+-  thirdparty/lzham-sdk/lzhamdecomp/lzham_vector.cpp
+-  thirdparty/lzham-sdk/lzhamcomp/lzham_lzbase.cpp
+-  thirdparty/lzham-sdk/lzhamcomp/lzham_lzcomp.cpp
+-  thirdparty/lzham-sdk/lzhamcomp/lzham_lzcomp_internal.cpp
+-  thirdparty/lzham-sdk/lzhamcomp/lzham_lzcomp_state.cpp
+-  thirdparty/lzham-sdk/lzhamcomp/lzham_match_accel.cpp
++  /usr/include/lzham
++  /usr/include/lzma-sdk
+ )
+-
+ if (WIN32)
+     set(SOURCES_LZMA_OLD
+         thirdparty/lzma-old/7zip/Common/InBuffer.cpp
+@@ -141,10 +105,11 @@
+ ################################################################################
+ 
+ if (VSXU_STATIC EQUAL 1)
+-  add_library(${module_id} STATIC ${SOURCES} ${SOURCES_LZMA} ${SOURCES_LZHAM} ${SOURCES_LZMA_OLD} ${HEADER_FILES})
++  add_library(${module_id} STATIC ${SOURCES} ${SOURCES_LZMA_OLD} ${HEADER_FILES})
+ else ()
+-  add_library(${module_id} SHARED ${SOURCES} ${SOURCES_LZMA} ${SOURCES_LZHAM} ${SOURCES_LZMA_OLD} ${HEADER_FILES})
++  add_library(${module_id} SHARED ${SOURCES} ${SOURCES_LZMA_OLD} ${HEADER_FILES})
+ endif ()
++target_link_libraries(${module_id} lzhamdll lzmasdk)
+ 
+ install(TARGETS ${module_id} DESTINATION ${VSXU_INSTALL_LIB_DIR} COMPONENT common)
+ 
+--- vsxu-0.6.3/lib/compression/src/vsx_compression_lzham.cpp.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/lib/compression/src/vsx_compression_lzham.cpp	2020-03-29 20:39:36.759347650 +0200
+@@ -1,7 +1,7 @@
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <vsx_compression_lzham.h>
+-#include <lib/compression/thirdparty/lzham-sdk/include/lzham.h>
++#include <lzham.h>
+ #include <string/vsx_string.h>
+ 
+ namespace vsx
+--- vsxu-0.6.3/lib/compression/src/vsx_compression_lzma.cpp.orig	2018-11-11 12:44:03.000000000 +0100
++++ vsxu-0.6.3/lib/compression/src/vsx_compression_lzma.cpp	2020-03-29 20:39:48.219285567 +0200
+@@ -1,4 +1,4 @@
+-#include <lib/compression/thirdparty/lzma-sdk/C/LzmaLib.h>
++#include <LzmaLib.h>
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <vsx_compression_lzma.h>
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/vsxu.git/commitdiff/55560e99ca64b75f80b68004edd41c7cb63f0dec



More information about the pld-cvs-commit mailing list