[packages/vsxu] - new - added glfw3 patch (initial port to GLFW 3.x) - added icons patch (install themed icons to pr

qboosh qboosh at pld-linux.org
Sat Jan 4 22:18:58 CET 2014


commit bf7a50d9062a5973e043c2a99fecc0f9519fda57
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Jan 4 22:19:25 2014 +0100

    - new
    - added glfw3 patch (initial port to GLFW 3.x)
    - added icons patch (install themed icons to proper directories)
    - added desktop patch (remove unnecessary environment altering, add some pl translations)

 vsxu-desktop.patch |  82 ++++++
 vsxu-glfw3.patch   | 827 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 vsxu-icons.patch   |  35 +++
 vsxu.spec          | 137 +++++++++
 4 files changed, 1081 insertions(+)
---
diff --git a/vsxu.spec b/vsxu.spec
new file mode 100644
index 0000000..8356d01
--- /dev/null
+++ b/vsxu.spec
@@ -0,0 +1,137 @@
+# TODO: VSXU_TM? (vsx_tmi.h, libtm64 / libtm64c)
+#
+# Conditional build:
+%bcond_without	static_libs	# don't build static libraries
+#
+Summary:	VSXu Music Visualizer
+Summary(pl.UTF-8):	VSXu - wizualizacja muzyki
+Name:		vsxu
+Version:	0.4.2
+Release:	1
+License:	GPL v2
+Group:		Libraries
+Source0:	https://github.com/vovoid/vsxu/archive/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	bbd73438386aa3eede5c3b104d706104
+Patch0:		%{name}-glfw3.patch
+Patch1:		%{name}-icons.patch
+Patch2:		%{name}-desktop.patch
+URL:		http://www.vsxu.com/
+BuildRequires:	OpenGL-devel
+BuildRequires:	alsa-lib-devel
+BuildRequires:	cmake >= 2.8
+BuildRequires:	glew-devel >= 1.6.0
+BuildRequires:	glfw-devel >= 3
+BuildRequires:	jack-audio-connection-kit-devel
+BuildRequires:	libpng-devel >= 2:1.2.46
+BuildRequires:	libjpeg-devel >= 6b
+BuildRequires:	libstdc++-devel
+BuildRequires:	opencv-devel
+BuildRequires:	pkgconfig
+BuildRequires:	xorg-lib-libXrandr >= 1.3.0
+Requires:	OpenGL >= 2.1
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+VSXu (VSX Ultra) is an OpenGL-based (hardware-accelerated), modular
+programming environment with its main purpose to visualize music and
+create real time graphic effects.
+
+%description -l pl.UTF-8
+VSXu (VSX Ultra) to oparte na OpenGL-u (sprzętowo akcelerowane),
+modularne środowisko programistyczne, którego głównym celem jest
+wizualizacja muzyki i tworzenie efektów graficznych w czasie
+rzeczywistym.
+
+%package libs
+Summary:	Shared VSXu engine libraries
+Summary(pl.UTF-8):	Biblioteki współdzielone silnika VSXu
+Group:		Libraries
+Requires:	glew >= 1.6.0
+Requires:	libpng >= 2:1.2.46
+
+%description libs
+VSXu (VSX Ultra) is an OpenGL-based (hardware-accelerated), modular
+programming environment with its main purpose to visualize music and
+create real time graphic effects.
+
+This package contains shared libraries.
+
+%description libs -l pl.UTF-8
+VSXu (VSX Ultra) to oparte na OpenGL-u (sprzętowo akcelerowane),
+modularne środowisko programistyczne, którego głównym celem jest
+wizualizacja muzyki i tworzenie efektów graficznych w czasie
+rzeczywistym.
+
+Ten pakiet zawiera biblioteki współdzielone.
+
+%package devel
+Summary:	Header files for VSXu libraries
+Summary(pl.UTF-8):	Pliki nagłówkowe bibliotek VSXu
+Group:		Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+Requires:	glew-devel >= 1.6.0
+Requires:	libpng-devel >= 2:1.2.46
+Requires:	libstdc++-devel
+
+%description devel
+Header files for VSXu libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek VSXu.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+%build
+install -d build
+cd build
+%cmake ..
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	libs -p /sbin/ldconfig
+%postun	libs -p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+# COPYING contains copyright notes, not only GPL text
+%doc CHANGELOG COPYING README.md TODO 
+%attr(755,root,root) %{_bindir}/vsxu_artiste
+%attr(755,root,root) %{_bindir}/vsxu_player
+%attr(755,root,root) %{_bindir}/vsxu_server
+%attr(755,root,root) %{_bindir}/vsxz
+%dir %{_libdir}/vsxu
+%dir %{_libdir}/vsxu/plugins
+%attr(755,root,root) %{_libdir}/vsxu/plugins/*.so
+%{_datadir}/vsxu
+%{_desktopdir}/vsxu-artiste.desktop
+%{_desktopdir}/vsxu-artiste-fullscreen.desktop
+%{_desktopdir}/vsxu-player.desktop
+%{_desktopdir}/vsxu-player-fullscreen.desktop
+%{_desktopdir}/vsxu-server.desktop
+%{_desktopdir}/vsxu-server-fullscreen.desktop
+%{_pixmapsdir}/vsxu.xpm
+%{_iconsdir}/hicolor/*x*/apps/vsxu.png
+
+%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
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/vsxu
+%{_pkgconfigdir}/libvsxu.pc
diff --git a/vsxu-desktop.patch b/vsxu-desktop.patch
new file mode 100644
index 0000000..8a74ee8
--- /dev/null
+++ b/vsxu-desktop.patch
@@ -0,0 +1,82 @@
+--- 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
+@@ -1,8 +1,10 @@
+ [Desktop Entry]
+ Name=VSXu Artiste [windowed]
++Name[pl]=VSXu Artiste [w oknie]
+ GenericName=Real Time OpenGL Graphics Editor
+ Comment=VSXu Artiste - Create Real Time Graphics
+-Exec=/usr/bin/env LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib @CMAKE_INSTALL_PREFIX@/bin/vsxu_artiste
++Comment[pl]=VSXu Artiste - tworzenie grafiki w czasie rzeczywistym
++Exec=@CMAKE_INSTALL_PREFIX@/bin/vsxu_artiste
+ 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
+@@ -1,8 +1,10 @@
+ [Desktop Entry]
+ Name=VSXu Artiste [fullscreen]
++Name[pl]=VSXu Artiste [pełny ekran]
+ GenericName=Real Time OpenGL Graphics Editor
+ Comment=VSXu Artiste - Create Real Time Graphics
+-Exec=/usr/bin/env LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib @CMAKE_INSTALL_PREFIX@/bin/vsxu_artiste -f
++Comment[pl]=VSXu Artiste - tworzenie grafiki w czasie rzeczywistym
++Exec=@CMAKE_INSTALL_PREFIX@/bin/vsxu_artiste -f
+ 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
+@@ -1,8 +1,9 @@
+ [Desktop Entry]
+ Name=VSXu Player [windowed]
++Name[pl]=VSXu Player [w oknie]
+ GenericName=Music Visualizer
+ Comment=VSXu Player
+-Exec=/usr/bin/env LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib @CMAKE_INSTALL_PREFIX@/bin/vsxu_player
++Exec=@CMAKE_INSTALL_PREFIX@/bin/vsxu_player
+ 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
+@@ -1,8 +1,9 @@
+ [Desktop Entry]
+ Name=VSXu Player [fullscreen]
++Name[pl]=VSXu Player [pełny ekran]
+ GenericName=Music Visualizer
+ Comment=VSXu Player
+-Exec=/usr/bin/env LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib @CMAKE_INSTALL_PREFIX@/bin/vsxu_player -f
++Exec=@CMAKE_INSTALL_PREFIX@/bin/vsxu_player -f
+ 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
+@@ -1,8 +1,10 @@
+ [Desktop Entry]
+ Name=VSXu server [windowed]
++Name[pl]=VSXu server [w oknie]
+ GenericName=Real Time OpenGL Graphics Server
+ Comment=VSXu Server - Perform Real Time Graphics
+-Exec=/usr/bin/env LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib @CMAKE_INSTALL_PREFIX@/bin/vsxu_server
++Comment[pl]=VSXu Server - wykonywanie grafiki w czasie rzeczywistym
++Exec=@CMAKE_INSTALL_PREFIX@/bin/vsxu_server
+ 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
+@@ -1,8 +1,10 @@
+ [Desktop Entry]
+ Name=VSXu server [fullscreen]
++Name[pl]=VSXu server [pełny ekran]
+ GenericName=Real Time OpenGL Graphics Server
+ Comment=VSXu Server - Perform Real Time Graphics
+-Exec=/usr/bin/env LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib @CMAKE_INSTALL_PREFIX@/bin/vsxu_server -f
++Comment[pl]=VSXu Server - wykonywanie grafiki w czasie rzeczywistym
++Exec=@CMAKE_INSTALL_PREFIX@/bin/vsxu_server -f
+ Icon=vsxu
+ Type=Application
+ Categories=Graphics;
diff --git a/vsxu-glfw3.patch b/vsxu-glfw3.patch
new file mode 100644
index 0000000..cf9eff5
--- /dev/null
+++ b/vsxu-glfw3.patch
@@ -0,0 +1,827 @@
+--- 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
+@@ -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.
+@@ -46,4 +46,4 @@
+ )
+ 
+ INCLUDE(FindPackageHandleStandardArgs)
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW DEFAULT_MSG GLFW_LIBRARY GLFW_INCLUDE_PATH)
+\ Brak znaku nowej linii na ko�cu pliku
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW DEFAULT_MSG GLFW_LIBRARY GLFW_INCLUDE_PATH)
+--- vsxu-0.4.2/artiste/src/vsx_widget/server/vsx_widget_comp.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/artiste/src/vsx_widget/server/vsx_widget_comp.cpp	2014-01-01 18:11:47.472199591 +0100
+@@ -47,7 +47,7 @@
+ #include "controllers/vsx_widget_base_controller.h"
+ #include "controllers/vsx_widget_editor.h"
+ 
+-#include <GL/glfw.h>
++#include <GLFW/glfw3.h>
+ 
+ using namespace std;
+ // VSX_WIDGET_COMPONENT **************************************************************************************************>
+@@ -1677,7 +1677,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.4.2/artiste/src/vsx_widget/lib/vsx_widget_base_edit.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/artiste/src/vsx_widget/lib/vsx_widget_base_edit.cpp	2014-01-01 18:57:50.892083624 +0100
+@@ -35,7 +35,7 @@
+ #include "vsx_widget_panel.h"
+ #include "vsx_widget_base_edit.h"
+ #include <stdlib.h>
+-#include "GL/glfw.h"
++#include <GLFW/glfw3.h>
+ 
+ 
+ vsx_widget_base_edit::vsx_widget_base_edit() {
+@@ -663,7 +663,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);
+@@ -684,7 +684,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);
+@@ -741,7 +741,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);
+@@ -779,7 +779,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.4.2/artiste/src/vsx_widget/vsx_widget_desktop.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/artiste/src/vsx_widget/vsx_widget_desktop.cpp	2014-01-01 19:43:16.708635899 +0100
+@@ -60,7 +60,7 @@
+ #include "lib/vsx_widget_base_edit.h"
+ 
+ #include "vsx_widget_desktop.h"
+-#include "GL/glfw.h"
++#include <GLFW/glfw3.h>
+ 
+ // VSX_WIDGET_DESKTOP **************************************************************************************************
+ // VSX_WIDGET_DESKTOP **************************************************************************************************
+@@ -192,8 +192,8 @@
+         case -GLFW_KEY_DOWN: case -'D': case -'d':{ interpolating = false;ypd=-1.0;} break;
+         case -GLFW_KEY_LEFT: case -'s': case -'S':{ interpolating = false;xpd=-1.0;} break;
+         case -GLFW_KEY_RIGHT: case -'F': case -'f':{ interpolating = false;xpd=1.0;} break;
+-        case -GLFW_KEY_PAGEUP: case -'R': case -'r':{ interpolating = false;zpd=-1.0;} break;
+-        case -GLFW_KEY_PAGEDOWN: case -'W': case -'w':{ interpolating = false;zpd=1.0;} break;
++        case -GLFW_KEY_PAGE_UP: case -'R': case -'r':{ interpolating = false;zpd=-1.0;} break;
++        case -GLFW_KEY_PAGE_DOWN: case -'W': case -'w':{ interpolating = false;zpd=1.0;} break;
+       } // switch
+     } else {
+       return true;
+@@ -213,8 +213,8 @@
+         case GLFW_KEY_DOWN:  case 'D': case 'd': ypd=0.0; break;
+         case GLFW_KEY_LEFT:  case 'S': case 's': xpd=0.0; break;
+         case GLFW_KEY_RIGHT: case 'F': case 'f': xpd=0.0; break;
+-        case GLFW_KEY_PAGEUP: case 'R': case 'r': zpd=0.0; break;
+-        case GLFW_KEY_PAGEDOWN: case 'W': case 'w': zpd=0.0; break;
++        case GLFW_KEY_PAGE_UP: case 'R': case 'r': zpd=0.0; break;
++        case GLFW_KEY_PAGE_DOWN: case 'W': case 'w': zpd=0.0; break;
+         case GLFW_KEY_TAB: ((vsxu_assistant*)assistant)->toggle_size(); break;
+       }
+     } else {
+--- vsxu-0.4.2/artiste/src/artiste_main.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/artiste/src/artiste_main.cpp	2014-01-01 19:53:05.085277871 +0100
+@@ -26,7 +26,7 @@
+ #include "vsx_string.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"
+@@ -73,9 +73,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;
+@@ -84,18 +84,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)
+@@ -110,12 +110,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)
+@@ -141,12 +137,12 @@
+ 
+ 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;
+ }
+@@ -153,14 +149,14 @@
+ 
+ int 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_printf("change viewport %d %d\n", width, height);
+   gl_state.viewport_change(0,0,width, height);
+@@ -207,7 +207,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 ];
+@@ -256,35 +257,33 @@
+   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 (app_argv.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 ) ) // GLFW_FULLSCREEN
+   {
+     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
+     glfwTerminate();
+     return 0;
+   }
+ 
+-  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];
+@@ -296,20 +295,20 @@
+         vsx_avector<vsx_string> parts;
+         vsx_string deli = ",";
+         explode(arg2, deli, parts);
+-        glfwSetWindowPos(s2i(parts[0]), s2i(parts[1]));
++        glfwSetWindowPos(glfwGetCurrentContext(), s2i(parts[0]), 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
+@@ -358,7 +357,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;
+@@ -412,7 +411,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)
+@@ -438,7 +437,7 @@
+ 
+     tm->e("window_management");
+       // Get window size (may be different than the requested size)
+-      glfwGetWindowSize( &width, &height );
++      glfwGetWindowSize( glfwGetCurrentContext(), &width, &height );
+       height = height > 0 ? height : 1;
+ 
+       tm->e("viewport");
+@@ -464,7 +463,7 @@
+     tm->l();
+ 
+     tm->e("swapbuffers");
+-    glfwSwapBuffers();
++    glfwSwapBuffers(glfwGetCurrentContext());
+     tm->l();
+ 
+ #if (PLATFORM != PLATFORM_WINDOWS)
+@@ -490,8 +490,8 @@
+     tm->t();
+ 
+     // 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/artiste/src/vsx_mouse.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/artiste/src/vsx_mouse.cpp	2014-01-02 19:07:25.615100306 +0100
+@@ -22,7 +22,7 @@
+ */
+ 
+ #include "vsx_mouse.h"
+-#include "GL/glfw.h"
++#include <GLFW/glfw3.h>
+ 
+ #ifdef _WIN32
+ #include <windows.h>
+@@ -136,7 +136,7 @@
+ 	//SetCursorPos((int)position.x + window_pos.left, (int)position.y + window_pos.top);
+ 	//glutWarpPointer((int)position.x,(int)position.y);
+ 	//printf("set mouse pos: %f, %f\n",x,y);
+-	glfwSetMousePos((int)(position.x), (int)(position.y));
++	glfwSetCursorPos(glfwGetCurrentContext(), (int)(position.x), (int)(position.y));
+ 	#endif
+ }
+ 
+--- vsxu-0.4.2/player/src/main.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/player/src/main.cpp	2014-01-02 19:52:50.664985946 +0100
+@@ -24,7 +24,7 @@
+ #include <stdio.h>
+ #include "application.h"
+ #include <GL/glew.h>
+-#include <GL/glfw.h>
++#include <GLFW/glfw3.h>
+ #include <vsx_avector.h>
+ #include <vsx_string.h>
+ #include <vsxfst.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_printf("change viewport %d %d\n", width, height);
+   gl_state.viewport_change(0,0,width, height);
+@@ -150,7 +147,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 ];
+ 
+@@ -221,25 +219,23 @@
+   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 ) ) // GLFW_FULLSCREEN
+   {
+     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
+     glfwTerminate();
+     return 0;
+   }
+-  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];
+     if (arg1 == "-p") {
+@@ -250,21 +246,21 @@
+         vsx_avector<vsx_string> parts;
+         vsx_string deli = ",";
+         explode(arg2, deli, parts);
+-        glfwSetWindowPos(s2i(parts[0]), s2i(parts[1]));
++        glfwSetWindowPos(glfwGetCurrentContext(), s2i(parts[0]), 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
+@@ -277,7 +273,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 )
+@@ -293,7 +289,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)
+@@ -317,7 +313,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
+@@ -333,11 +329,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.4.2/server/src/main/linux-opengl/main.cpp.orig	2013-11-24 11:00:51.000000000 +0100
++++ vsxu-0.4.2/server/src/main/linux-opengl/main.cpp	2014-01-02 20:28:20.244896567 +0100
+@@ -26,7 +26,7 @@
+ #include "vsx_string.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"
+@@ -73,9 +73,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;
+@@ -84,18 +84,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)
+@@ -114,12 +110,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)
+@@ -141,26 +137,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_printf("change viewport %d %d\n", width, height);
+   gl_state.viewport_change(0,0,width, height);
+@@ -211,7 +207,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 ];
+@@ -260,35 +257,33 @@
+   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 (app_argv.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 ) ) // GLFW_FULLSCREEN
+   {
+     printf("Error! Could not create an OpenGL context. Please check your GPU drivers...\n");
+     glfwTerminate();
+     return 0;
+   }
+ 
+-  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];
+@@ -300,20 +295,20 @@
+         vsx_avector<vsx_string> parts;
+         vsx_string deli = ",";
+         explode(arg2, deli, parts);
+-        glfwSetWindowPos(s2i(parts[0]), s2i(parts[1]));
++        glfwSetWindowPos(glfwGetCurrentContext(), s2i(parts[0]), 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
+@@ -362,7 +357,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;
+@@ -416,7 +411,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)
+@@ -442,7 +437,7 @@
+ 
+     tm->e("window_management");
+       // Get window size (may be different than the requested size)
+-      glfwGetWindowSize( &width, &height );
++      glfwGetWindowSize( glfwGetCurrentContext(), &width, &height );
+       height = height > 0 ? height : 1;
+ 
+       tm->e("viewport");
+@@ -468,7 +463,7 @@
+     tm->l();
+ 
+     tm->e("swapbuffers");
+-    glfwSwapBuffers();
++    glfwSwapBuffers(glfwGetCurrentContext());
+     tm->l();
+ 
+     if (!vsync)
+@@ -488,8 +483,8 @@
+     tm->t();
+ 
+     // 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
diff --git a/vsxu-icons.patch b/vsxu-icons.patch
new file mode 100644
index 0000000..f0a7d1b
--- /dev/null
+++ b/vsxu-icons.patch
@@ -0,0 +1,35 @@
+--- 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
+@@ -79,19 +79,19 @@
+   file(GLOB HEADERS "include/*.h")
+   install (FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/${VSXU_INSTALL_INCLUDE_DIR}/engine_graphics COMPONENT Devel)
+   install(FILES ${CMAKE_SOURCE_DIR}/share/icons/vsxu.xpm DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/16x16/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/16x16)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/22x22/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/22x22)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/24x24/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/24x24)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/32x32/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/32x32)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/36x36/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/36x36)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/48x48/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/48x48)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/64x64/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/64x64)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/72x72/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/72x72)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/96x96/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/96x96)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/128x128/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/128x128)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/192x192/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/192x192)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/256x256/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/256x256)
+-  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/512x512/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps/hicolor/apps/512x512)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/16x16/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/16x16/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/22x22/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/22x22/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/24x24/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/24x24/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/32x32/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/32x32/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/36x36/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/36x36/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/48x48/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/64x64/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/64x64/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/72x72/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/72x72/apps)
++  install(FILES ${CMAKE_SOURCE_DIR}/share/icons/hicolor/96x96/apps/vsxu.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/96x96/apps)
++  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)
+ endif()
+ ################################################################################
+ 
================================================================

---- gitweb:

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




More information about the pld-cvs-commit mailing list