summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta2016-02-26 09:16:29 +0100
committerJan Cholasta2016-03-03 07:59:29 +0100
commit4ff6d240de5b549b72605917cf1ac8641bc9fda1 (patch)
tree6f0878abde7a1e283ed7ddf59d3b8d7c707e9fa0
parent8cf59e3fe0cfc3e74c98f2f50e2abaa8acd9394b (diff)
downloadaur-4ff6d240de5b549b72605917cf1ac8641bc9fda1.tar.gz
Update to match the gzdoom1 package
-rw-r--r--.SRCINFO53
-rw-r--r--0001-Mark-stack-as-not-executable-in-assembler-sources.patch116
-rw-r--r--0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch24
-rw-r--r--PKGBUILD214
-rw-r--r--config-update-fix.patch12
-rw-r--r--desktop.template (renamed from gzdoom.desktop)8
-rw-r--r--doom-share-dir.patch11
-rw-r--r--git-37321d1.patch182
-rw-r--r--git-c915049.patch1119
-rw-r--r--git-cab509c.patch143
-rw-r--r--git-fb3bf0e.patch25
-rw-r--r--install16
-rw-r--r--stack-noexec.patch93
13 files changed, 332 insertions, 1684 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3d34ad560f89..ca916c16c5e3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,23 +1,32 @@
pkgbase = gzdoom1-git
- pkgdesc = Doom source port based on ZDoom with an OpenGL renderer (git legacy version).
- pkgver = 1.9pre.r1275.g1db064b
+ pkgdesc = Advanced Doom source port with OpenGL support (git legacy version)
+ pkgver = 1.10pre.710.gb7d58f8
pkgrel = 1
- url = http://www.osnanet.de/c.oelckers/gzdoom/
+ url = http://www.zdoom.org/
+ install = install
arch = i686
arch = x86_64
- license = custom
- makedepends = nasm
+ license = BSD
+ license = custom:BUILD
+ license = custom:doom
+ license = custom:dumb
+ license = LGPL
makedepends = cmake
+ makedepends = desktop-file-utils
makedepends = git
makedepends = imagemagick
- makedepends = mesa
+ makedepends = xdg-utils
depends = fluidsynth
- depends = fmodex4.26.36
- depends = glew
+ depends = fmodex=4.26.36
depends = gtk2
depends = gxmessage
+ depends = libgl
+ depends = libgme
+ depends = libsndfile
+ depends = mpg123
+ depends = openal
depends = sdl2
- optdepends = blasphemer: Blasphemer (free Heretic) game data
+ optdepends = blasphemer-wad: Blasphemer (free Heretic) game data
optdepends = chexquest3-wad: Chex Quest 3 game data
optdepends = doom1-wad: Doom shareware game data
optdepends = freedoom: FreeDoom game data
@@ -26,27 +35,19 @@ pkgbase = gzdoom1-git
optdepends = heretic1-wad: Heretic shareware game data
optdepends = hexen1-wad: Hexen demo game data
optdepends = strife0-wad: Strife shareware game data
+ optdepends = square1-wad: The Adventures of Square, Episode 1 game data
optdepends = urbanbrawl-wad: Urban Brawl: Action Doom 2 game data
provides = gzdoom
conflicts = gzdoom
- source = gzdoom::git://github.com/coelckers/gzdoom.git#branch=Branch_g1.8.07
- source = git-c915049.patch
- source = git-37321d1.patch
- source = git-cab509c.patch
- source = git-fb3bf0e.patch
- source = config-update-fix.patch
- source = doom-share-dir.patch
- source = stack-noexec.patch
- source = gzdoom.desktop
+ source = gzdoom::git://github.com/coelckers/gzdoom.git#branch=g1.x
+ source = desktop.template
+ source = 0001-Mark-stack-as-not-executable-in-assembler-sources.patch
+ source = 0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch
sha256sums = SKIP
- sha256sums = 7bbe5aee7e66780f92d29e8b44417b6165828a610471811a3adae9085234cd12
- sha256sums = 48562c7a6110b19cdd4d795b5d28b5445243831533269f8bb25cc19ba67333ff
- sha256sums = 5150353839bc653282720b8e434b09930b2747d91115afdb1eda32daa6162f59
- sha256sums = acb5a37bff36f866345c68b8b512bc3bb4c549d347020ea8e1f0c52b271049bc
- sha256sums = 4bc40d323e0b0d3f8a43f8cff8cd2ebe2963394069245de19e95ca25067ed933
- sha256sums = 7fa660bdff8dd0aa9151173c2ddc9122e639d3b0a2c6f98573d37b92765bab7d
- sha256sums = a23277cc90ef8bd720417b097609ede6f5054b252843742209f794e0d1306205
- sha256sums = 2a0b837ddc423d3a6be50f60735c55ee27cd26f58c42540b44aab395030b9cc4
+ sha256sums = f2c58925238fe0d01e630527c8c4431681ccaec2d763ba075429b747d1a98a8c
+ sha256sums = 927465d3afcb32e3027ce3570880237b7ce6ea6e5454779db3e72891688f8cf2
+ sha256sums = cd3bf650cb6595c683506d973d1de80ddc50a4c96122f64bfce0d8c558020621
+ makedepends_i686 = nasm
pkgname = gzdoom1-git
diff --git a/0001-Mark-stack-as-not-executable-in-assembler-sources.patch b/0001-Mark-stack-as-not-executable-in-assembler-sources.patch
new file mode 100644
index 000000000000..38e97ee0ff09
--- /dev/null
+++ b/0001-Mark-stack-as-not-executable-in-assembler-sources.patch
@@ -0,0 +1,116 @@
+From b88655776cd955810f9b32440e656708c566a291 Mon Sep 17 00:00:00 2001
+From: Jan Cholasta <grubber@grubber.cz>
+Date: Thu, 18 Feb 2016 10:56:03 +0100
+Subject: [PATCH 1/2] Mark stack as not executable in assembler sources
+
+---
+ src/asm_ia32/a.asm | 10 ++++++++++
+ src/asm_ia32/misc.asm | 10 ++++++++++
+ src/asm_ia32/tmap.asm | 10 ++++++++++
+ src/asm_ia32/tmap2.asm | 10 ++++++++++
+ src/asm_ia32/tmap3.asm | 10 ++++++++++
+ src/asm_x86_64/tmap3.s | 1 +
+ 6 files changed, 51 insertions(+)
+
+diff --git a/src/asm_ia32/a.asm b/src/asm_ia32/a.asm
+index 786396d..9530e4c 100644
+--- a/src/asm_ia32/a.asm
++++ b/src/asm_ia32/a.asm
+@@ -810,3 +810,13 @@ align 16
+ GLOBAL _rtext_a_end
+ _rtext_a_end:
+ %endif
++
++%ifidn __OUTPUT_FORMAT__,elf
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf32
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf64
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
+diff --git a/src/asm_ia32/misc.asm b/src/asm_ia32/misc.asm
+index b825a4d..c694124 100644
+--- a/src/asm_ia32/misc.asm
++++ b/src/asm_ia32/misc.asm
+@@ -198,3 +198,13 @@ BestColor_MMX:
+ pop ebx
+ emms
+ ret
++
++%ifidn __OUTPUT_FORMAT__,elf
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf32
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf64
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
+diff --git a/src/asm_ia32/tmap.asm b/src/asm_ia32/tmap.asm
+index fb372d4..05c90fd 100644
+--- a/src/asm_ia32/tmap.asm
++++ b/src/asm_ia32/tmap.asm
+@@ -1891,3 +1891,13 @@ _ASM_PatchPitch:
+ selfmod rtext_start, rtext_end
+ call setpitch3
+ jmp setvlinebpl_
++
++%ifidn __OUTPUT_FORMAT__,elf
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf32
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf64
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
+diff --git a/src/asm_ia32/tmap2.asm b/src/asm_ia32/tmap2.asm
+index 8fa141e..81d92be 100644
+--- a/src/asm_ia32/tmap2.asm
++++ b/src/asm_ia32/tmap2.asm
+@@ -638,3 +638,13 @@ rtext_end:
+ GLOBAL _rtext_tmap2_end
+ _rtext_tmap2_end:
+ %endif
++
++%ifidn __OUTPUT_FORMAT__,elf
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf32
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf64
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
+diff --git a/src/asm_ia32/tmap3.asm b/src/asm_ia32/tmap3.asm
+index bafc336..7379cb7 100644
+--- a/src/asm_ia32/tmap3.asm
++++ b/src/asm_ia32/tmap3.asm
+@@ -342,3 +342,13 @@ shift12: shr ecx,16
+ GLOBAL _rtext_tmap3_end
+ _rtext_tmap3_end:
+ %endif
++
++%ifidn __OUTPUT_FORMAT__,elf
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf32
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
++%ifidn __OUTPUT_FORMAT__,elf64
++section .note.GNU-stack noalloc noexec nowrite progbits
++%endif
+diff --git a/src/asm_x86_64/tmap3.s b/src/asm_x86_64/tmap3.s
+index 867d11c..e27f05f 100644
+--- a/src/asm_x86_64/tmap3.s
++++ b/src/asm_x86_64/tmap3.s
+@@ -139,3 +139,4 @@ vltepilog:
+ .align 16
+
+
++ .section .note.GNU-stack,"",@progbits
+--
+2.7.2
+
diff --git a/0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch b/0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch
new file mode 100644
index 000000000000..2d5684d0b6f7
--- /dev/null
+++ b/0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch
@@ -0,0 +1,24 @@
+From 89ba7c1745d6e6ec3e6383d0bb417948c0522e0a Mon Sep 17 00:00:00 2001
+From: Jan Cholasta <grubber@grubber.cz>
+Date: Thu, 18 Feb 2016 13:34:59 +0100
+Subject: [PATCH 2/2] Include SHARE_DIR in IWADSearch.Directories
+
+---
+ src/gameconfigfile.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/gameconfigfile.cpp b/src/gameconfigfile.cpp
+index f162e93..91f7308 100644
+--- a/src/gameconfigfile.cpp
++++ b/src/gameconfigfile.cpp
+@@ -133,6 +133,7 @@ FGameConfigFile::FGameConfigFile ()
+ SetValueForKey ("Path", "$PROGDIR", true);
+ #else
+ SetValueForKey ("Path", "~/" GAME_DIR, true);
++ SetValueForKey ("Path", SHARE_DIR, true);
+ // Arch Linux likes them in /usr/share/doom
+ // Debian likes them in /usr/share/games/doom
+ // I assume other distributions don't do anything radically different
+--
+2.7.2
+
diff --git a/PKGBUILD b/PKGBUILD
index f3d550342801..27b5da0e9244 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,15 +1,44 @@
# Maintainer: Jan Cholasta <grubber at grubber cz>
-pkgname=gzdoom1-git
-pkgver=1.9pre.r1275.g1db064b
+# Build with the recommended fmodex version:
+_fmodex=4.26.36
+# Build with the currently installed fmodex version:
+#_fmodex=$(LC_ALL=C pacman -Q fmodex | grep -Po '(?<= ).+(?=-)')
+# Build without fmodex:
+#_fmodex=
+
+# Build with OpenAL:
+_openal=1
+# Build without OpenAL:
+#_openal=
+
+_name=gzdoom
+pkgname=${_name}1-git
+pkgver=1.10pre.710.gb7d58f8
pkgrel=1
-pkgdesc="Doom source port based on ZDoom with an OpenGL renderer (git legacy version)."
+_label='GZDoom'
+_desc='Advanced Doom source port with OpenGL support'
+pkgdesc="${_desc} (git legacy version)"
arch=('i686' 'x86_64')
-url="http://www.osnanet.de/c.oelckers/gzdoom/"
-license=('custom')
-depends=('fluidsynth' 'fmodex4.26.36' 'glew' 'gtk2' 'gxmessage' 'sdl2')
-makedepends=('nasm' 'cmake' 'git' 'imagemagick' 'mesa')
-optdepends=('blasphemer: Blasphemer (free Heretic) game data'
+url='http://www.zdoom.org/'
+license=('BSD' 'custom:BUILD' 'custom:doom' 'custom:dumb' 'LGPL')
+depends=('fluidsynth'
+ ${_fmodex:+"fmodex=$_fmodex"}
+ 'gtk2'
+ 'gxmessage'
+ 'libgl'
+ 'libgme'
+ ${_openal:+'libsndfile'}
+ ${_openal:+'mpg123'}
+ ${_openal:+'openal'}
+ 'sdl2')
+makedepends=('cmake'
+ 'desktop-file-utils'
+ 'git'
+ 'imagemagick'
+ 'xdg-utils')
+makedepends_i686=('nasm')
+optdepends=('blasphemer-wad: Blasphemer (free Heretic) game data'
'chexquest3-wad: Chex Quest 3 game data'
'doom1-wad: Doom shareware game data'
'freedoom: FreeDoom game data'
@@ -18,80 +47,131 @@ optdepends=('blasphemer: Blasphemer (free Heretic) game data'
'heretic1-wad: Heretic shareware game data'
'hexen1-wad: Hexen demo game data'
'strife0-wad: Strife shareware game data'
+ 'square1-wad: The Adventures of Square, Episode 1 game data'
'urbanbrawl-wad: Urban Brawl: Action Doom 2 game data')
-provides=('gzdoom')
-conflicts=('gzdoom')
-source=(gzdoom::git://github.com/coelckers/gzdoom.git#branch=Branch_g1.8.07
- git-c915049.patch
- git-37321d1.patch
- git-cab509c.patch
- git-fb3bf0e.patch
- config-update-fix.patch
- doom-share-dir.patch
- stack-noexec.patch
- gzdoom.desktop)
+provides=("${_name}")
+conflicts=("${_name}")
+install=install
+source=("${_name}::git://github.com/coelckers/${_name}.git#branch=g1.x"
+ 'desktop.template'
+ '0001-Mark-stack-as-not-executable-in-assembler-sources.patch'
+ '0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch')
+_srcsubdir="${_name}"
sha256sums=('SKIP'
- '7bbe5aee7e66780f92d29e8b44417b6165828a610471811a3adae9085234cd12'
- '48562c7a6110b19cdd4d795b5d28b5445243831533269f8bb25cc19ba67333ff'
- '5150353839bc653282720b8e434b09930b2747d91115afdb1eda32daa6162f59'
- 'acb5a37bff36f866345c68b8b512bc3bb4c549d347020ea8e1f0c52b271049bc'
- '4bc40d323e0b0d3f8a43f8cff8cd2ebe2963394069245de19e95ca25067ed933'
- '7fa660bdff8dd0aa9151173c2ddc9122e639d3b0a2c6f98573d37b92765bab7d'
- 'a23277cc90ef8bd720417b097609ede6f5054b252843742209f794e0d1306205'
- '2a0b837ddc423d3a6be50f60735c55ee27cd26f58c42540b44aab395030b9cc4')
-
-_fmodver=4.26.36
-_libdir=/usr/lib/gzdoom
-_sharedir=/usr/share/games/gzdoom
+ 'f2c58925238fe0d01e630527c8c4431681ccaec2d763ba075429b747d1a98a8c'
+ '927465d3afcb32e3027ce3570880237b7ce6ea6e5454779db3e72891688f8cf2'
+ 'cd3bf650cb6595c683506d973d1de80ddc50a4c96122f64bfce0d8c558020621')
pkgver() {
- cd gzdoom
+ cd "${_srcsubdir}"
- git describe --long --tags --match 'G*' | sed -r 's/^G//;s/([^-]*-g)/r\1/;s/-/./g'
+ git describe --long --tags --match '[Gg]*' | sed -r 's/^[Gg]//;s/([^-]*-g)/\1/;s/-/./g'
}
prepare() {
- cd gzdoom
-
- patch -p1 <"$srcdir"/git-c915049.patch
- patch -p1 <"$srcdir"/git-37321d1.patch
- patch -p1 <"$srcdir"/git-cab509c.patch
- patch -p1 <"$srcdir"/git-fb3bf0e.patch
+ cd "${_srcsubdir}"
- patch -p1 <"$srcdir/config-update-fix.patch"
- patch -p1 <"$srcdir/doom-share-dir.patch"
- patch -p1 <"$srcdir/stack-noexec.patch"
-
- sed -i "s|setPluginPath(progdir)|setPluginPath(\"$_libdir\")|" src/sound/fmodsound.cpp
+ local _file
+ for _file in "${source[@]}"; do
+ if [[ "${_file}" == *.patch ]]; then
+ patch -p1 <"${srcdir}/${_file}"
+ fi
+ done
}
build() {
- cd gzdoom
+ cd "${_srcsubdir}"
+
+ cat >"${_name}.sh" <<EOF
+#!/bin/sh
+exec /usr/lib/${_name}/${_name} "\$@"
+EOF
+
+ local _nofmod _noopenal _fmodincdir
+
+ if [[ -n "${_fmodex}" ]]; then
+ _nofmod=OFF
+
+ _fmodincdir="/usr/include/fmodex-${_fmodex}"
+ if [[ ! -e "${_fmodincdir}" ]]; then
+ _fmodincdir='/usr/include/fmodex'
+ fi
+ else
+ _nofmod=ON
+ fi
+
+ if [[ -n "${_openal}" ]]; then
+ _noopenal=OFF
+ else
+ _noopenal=ON
+ fi
- cmake -DFMOD_INCLUDE_DIR=/usr/include/fmodex-$_fmodver \
- -DFMOD_LIBRARY=/usr/lib/libfmodex-$_fmodver.so \
- -DCMAKE_C_FLAGS="$CFLAGS -DSHARE_DIR=\\\"$_sharedir\\\"" \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS -DSHARE_DIR=\\\"$_sharedir\\\"" \
- .
- make
+ cmake -DNO_FMOD=${_nofmod} \
+ -DNO_OPENAL=${_noopenal} \
+ -DGME_INCLUDE_DIR='/usr/include/gme' \
+ -DFMOD_INCLUDE_DIR="${_fmodincdir}" \
+ -DFMOD_LIBRARY="/usr/lib/libfmodex-${_fmodex}.so" \
+ -DFORCE_INTERNAL_GME=OFF \
+ -DCMAKE_C_FLAGS="$CFLAGS -DSHARE_DIR=\\\"/usr/share/${_name}\\\"" \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -DSHARE_DIR=\\\"/usr/share/${_name}\\\"" \
+ .
+ make
- convert "src/win32/icon1.ico[2]" gzdoom.png
+ sed -n '/\*\*-/,/\*\*-/p' 'src/version.h' >'bsd.txt'
+
+ cp "${srcdir}/desktop.template" "${_name}.desktop"
+ desktop-file-edit --set-name="${_label}" \
+ --set-generic-name="${_desc}" \
+ --set-icon="${_name}" \
+ --set-key=Exec --set-value="${_name} %F" \
+ "${_name}.desktop"
+
+ mkdir 'icons'
+ convert 'src/win32/icon1.ico[2]' 'icons/48.png'
+ convert 'src/win32/icon1.ico[3]' 'icons/32.png'
+ convert 'src/win32/icon1.ico[4]' 'icons/16.png'
}
package() {
- cd gzdoom
-
- install -Dm755 gzdoom "$pkgdir/usr/bin/gzdoom"
- install -Dm755 liboutput_sdl.so "$pkgdir/$_libdir/liboutput_sdl.so"
- install -Dm644 gzdoom.pk3 "$pkgdir/$_sharedir/gzdoom.pk3"
- install -Dm644 brightmaps.pk3 "$pkgdir/$_sharedir/brightmaps.pk3"
- install -Dm644 lights.pk3 "$pkgdir/$_sharedir/lights.pk3"
- ln -s /usr/share/doom/doom.wad "$pkgdir/$_sharedir/freedoomu.wad"
- ln -s /usr/share/doom/doom2.wad "$pkgdir/$_sharedir/freedoom.wad"
- ln -s /usr/share/doom/hexen.wad "$pkgdir/$_sharedir/hexendemo.wad"
-
- install -Dm644 gzdoom.png "$pkgdir/usr/share/pixmaps/gzdoom.png"
- install -Dm644 "$srcdir/gzdoom.desktop" "$pkgdir/usr/share/applications/gzdoom.desktop"
- install -Dm644 docs/BUILDLIC.TXT "$pkgdir/usr/share/licenses/$pkgname/buildlic.txt"
- install -Dm644 docs/doomlic.txt "$pkgdir/usr/share/licenses/$pkgname/doomlic.txt"
+ cd "${_srcsubdir}"
+
+ install -D "${_name}.sh" "${pkgdir}/usr/bin/${_name}"
+
+ mkdir -p "${pkgdir}/usr/lib/${_name}"
+ install "${_name}" "${pkgdir}/usr/lib/${_name}/"
+ install -m644 "${_name}.pk3" "${pkgdir}/usr/lib/${_name}/"
+ if [[ -n "${_fmodex}" ]]; then
+ install 'liboutput_sdl.so' "${pkgdir}/usr/lib/${_name}/"
+ fi
+
+ mkdir -p "${pkgdir}/usr/share/${_name}"
+ install -m644 'brightmaps.pk3' "${pkgdir}/usr/share/${_name}/"
+ install -m644 'lights.pk3' "${pkgdir}/usr/share/${_name}/"
+ ln -s '/usr/share/doom/doom.wad' "${pkgdir}/usr/share/${_name}/freedoomu.wad"
+ ln -s '/usr/share/doom/doom2.wad' "${pkgdir}/usr/share/${_name}/freedoom.wad"
+ ln -s '/usr/share/doom/heretic.wad' "${pkgdir}/usr/share/${_name}/blasphemer.wad"
+ ln -s '/usr/share/doom/hexen.wad' "${pkgdir}/usr/share/${_name}/hexendemo.wad"
+
+ mkdir -p "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 'bsd.txt' "${pkgdir}/usr/share/licenses/${pkgname}/bsd.txt"
+ install -m644 'docs/BUILDLIC.TXT' "${pkgdir}/usr/share/licenses/${pkgname}/buildlic.txt"
+ install -m644 'docs/doomlic.txt' "${pkgdir}/usr/share/licenses/${pkgname}/doomlic.txt"
+ install -m644 'dumb/licence.txt' "${pkgdir}/usr/share/licenses/${pkgname}/dumb.txt"
+
+ desktop-file-install --dir="${pkgdir}/usr/share/applications" "${_name}.desktop"
+
+ mkdir -p "${pkgdir}/usr/share/icons/hicolor"
+ (
+ cd 'icons'
+ export XDG_DATA_DIRS="${pkgdir}/usr/share"
+
+ local _file
+ for _file in *.png; do
+ xdg-icon-resource install --noupdate \
+ --novendor \
+ --size "${_file%.png}" \
+ "${_file}" \
+ "${_name}"
+ done
+ )
}
diff --git a/config-update-fix.patch b/config-update-fix.patch
deleted file mode 100644
index b8d95d170b79..000000000000
--- a/config-update-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur gzdoom.orig/src/m_specialpaths.cpp gzdoom/src/m_specialpaths.cpp
---- gzdoom.orig/src/m_specialpaths.cpp 2014-05-14 11:14:18.348734942 +0200
-+++ gzdoom/src/m_specialpaths.cpp 2014-05-14 11:21:04.005405244 +0200
-@@ -497,7 +497,7 @@
- // This can be removed after a release or two
- // Transfer the old zdoom directory to the new location
- bool moved = false;
-- FString oldpath = NicePath("~/.zdoom/");
-+ FString oldpath = NicePath("~/.gzdoom/");
- if (stat (oldpath, &extrainfo) != -1)
- {
- if (rename(oldpath, path) == -1)
diff --git a/gzdoom.desktop b/desktop.template
index 41c576528b02..172a5d7cae83 100644
--- a/gzdoom.desktop
+++ b/desktop.template
@@ -1,10 +1,6 @@
[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
Type=Application
-Name=GZDoom
-GenericName=Enhanced Doom Engine
-Icon=gzdoom
-Exec=gzdoom %F
+Version=1.0
Terminal=false
+MimeType=application/x-doom-wad;
Categories=Game;ActionGame;
diff --git a/doom-share-dir.patch b/doom-share-dir.patch
deleted file mode 100644
index 8675694bf81a..000000000000
--- a/doom-share-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur gzdoom-1.6.00.orig/src/gameconfigfile.cpp gzdoom-1.6.00/src/gameconfigfile.cpp
---- gzdoom-1.6.00.orig/src/gameconfigfile.cpp 2012-11-06 15:17:16.674596717 +0100
-+++ gzdoom-1.6.00/src/gameconfigfile.cpp 2012-11-06 15:22:53.667933990 +0100
-@@ -140,6 +140,7 @@
- #else
- SetValueForKey ("Path", "~/" GAME_DIR, true);
- SetValueForKey ("Path", SHARE_DIR, true);
-+ SetValueForKey ("Path", "/usr/share/doom", true);
- #endif
- }
-
diff --git a/git-37321d1.patch b/git-37321d1.patch
deleted file mode 100644
index f2f878f770b8..000000000000
--- a/git-37321d1.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 37321d1d483cee0c01285774921fb861bd6f9c1e Mon Sep 17 00:00:00 2001
-From: Edoardo Prezioso <edo88@email.it>
-Date: Thu, 8 Jan 2015 00:23:14 +0100
-Subject: [PATCH] - Implement SDL2 into GZDoom (needs improvements).
-
-Make also minor fixes.
-Now it compiles and runs fine for me, except for the invisible cursor in the menu (no idea why).
----
- src/posix/sdl/sdlglvideo.cpp | 67 ++++++++++++++++++++++++++------------------
- src/posix/sdl/sdlglvideo.h | 9 +++---
- 2 files changed, 44 insertions(+), 32 deletions(-)
-
-diff --git a/src/posix/sdl/sdlglvideo.cpp b/src/posix/sdl/sdlglvideo.cpp
-index 649989e..9331c0f 100644
---- a/src/posix/sdl/sdlglvideo.cpp
-+++ b/src/posix/sdl/sdlglvideo.cpp
-@@ -1,8 +1,6 @@
-
- // HEADER FILES ------------------------------------------------------------
-
--#include <iostream>
--
- #include "doomtype.h"
-
- #include "templates.h"
-@@ -48,6 +46,7 @@ extern IVideo *Video;
- // extern int vid_renderer;
-
- EXTERN_CVAR (Float, Gamma)
-+EXTERN_CVAR (Int, vid_adapter)
- EXTERN_CVAR (Int, vid_displaybits)
- EXTERN_CVAR (Int, vid_renderer)
-
-@@ -156,14 +155,19 @@ bool SDLGLVideo::NextMode (int *width, int *height, bool *letterbox)
- }
- else
- {
-- SDL_Rect **modes = SDL_ListModes (NULL, SDL_FULLSCREEN|SDL_HWSURFACE);
-- if (modes != NULL && modes[IteratorMode] != NULL)
-+ SDL_DisplayMode mode = {}, oldmode = {};
-+ if(IteratorMode != 0)
-+ SDL_GetDisplayMode(vid_adapter, IteratorMode-1, &oldmode);
-+ do
- {
-- *width = modes[IteratorMode]->w;
-- *height = modes[IteratorMode]->h;
-+ if (SDL_GetDisplayMode(vid_adapter, IteratorMode, &mode) != 0)
-+ return false;
- ++IteratorMode;
-- return true;
-- }
-+ } while(mode.w == oldmode.w && mode.h == oldmode.h);
-+
-+ *width = mode.w;
-+ *height = mode.h;
-+ return true;
- }
- return false;
- }
-@@ -182,11 +186,11 @@ DFrameBuffer *SDLGLVideo::CreateFrameBuffer (int width, int height, bool fullscr
- if (fb->Width == width &&
- fb->Height == height)
- {
-- bool fsnow = (fb->Screen->flags & SDL_FULLSCREEN) != 0;
-+ bool fsnow = (SDL_GetWindowFlags (fb->Screen) & SDL_WINDOW_FULLSCREEN_DESKTOP) != 0;
-
- if (fsnow != fullscreen)
- {
-- SDL_WM_ToggleFullScreen (fb->Screen);
-+ SDL_SetWindowFullscreen (fb->Screen, fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
- }
- return old;
- }
-@@ -336,30 +340,37 @@ SDLGLFB::SDLGLFB (void *, int width, int height, int, int, bool fullscreen)
- return;
- }
-
--
-- Screen = SDL_SetVideoMode (width, height,
-- 32,
-- SDL_HWSURFACE|SDL_HWPALETTE|SDL_OPENGL | SDL_GL_DOUBLEBUFFER|SDL_ANYFORMAT|
-- (fullscreen ? SDL_FULLSCREEN : 0));
-+ FString caption;
-+ caption.Format(GAMESIG " %s (%s)", GetVersionString(), GetGitTime());
-+ Screen = SDL_CreateWindow (caption,
-+ SDL_WINDOWPOS_UNDEFINED_DISPLAY(vid_adapter), SDL_WINDOWPOS_UNDEFINED_DISPLAY(vid_adapter),
-+ width, height, (fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0)|SDL_WINDOW_OPENGL);
-
- if (Screen == NULL)
- return;
-
-- m_supportsGamma = -1 != SDL_GetGammaRamp(m_origGamma[0], m_origGamma[1], m_origGamma[2]);
--
--#if defined(__APPLE__)
-- // Need to set title here because a window is not created yet when calling the same function from main()
-- char caption[100];
-- mysnprintf(caption, countof(caption), GAMESIG " %s (%s)", GetVersionString(), GetGitTime());
-- SDL_WM_SetCaption(caption, NULL);
--#endif // __APPLE__
-+ GLContext = SDL_GL_CreateContext(Screen);
-+ if (GLContext == NULL)
-+ return;
-+
-+ m_supportsGamma = -1 != SDL_GetWindowGammaRamp(Screen, m_origGamma[0], m_origGamma[1], m_origGamma[2]);
- }
-
- SDLGLFB::~SDLGLFB ()
- {
-- if (m_supportsGamma)
-+ if (Screen)
- {
-- SDL_SetGammaRamp(m_origGamma[0], m_origGamma[1], m_origGamma[2]);
-+ if (m_supportsGamma)
-+ {
-+ SDL_SetWindowGammaRamp(Screen, m_origGamma[0], m_origGamma[1], m_origGamma[2]);
-+ }
-+
-+ if (GLContext)
-+ {
-+ SDL_GL_DeleteContext(GLContext);
-+ }
-+
-+ SDL_DestroyWindow(Screen);
- }
- }
-
-@@ -386,7 +397,7 @@ bool SDLGLFB::CanUpdate ()
-
- void SDLGLFB::SetGammaTable(WORD *tbl)
- {
-- SDL_SetGammaRamp(&tbl[0], &tbl[256], &tbl[512]);
-+ SDL_SetWindowGammaRamp(Screen, &tbl[0], &tbl[256], &tbl[512]);
- }
-
- bool SDLGLFB::Lock(bool buffered)
-@@ -420,7 +431,7 @@ bool SDLGLFB::IsLocked ()
-
- bool SDLGLFB::IsFullscreen ()
- {
-- return (Screen->flags & SDL_FULLSCREEN) != 0;
-+ return (SDL_GetWindowFlags (Screen) & SDL_WINDOW_FULLSCREEN_DESKTOP) != 0;
- }
-
-
-@@ -443,6 +454,6 @@ void SDLGLFB::NewRefreshRate ()
-
- void SDLGLFB::SwapBuffers()
- {
-- SDL_GL_SwapBuffers ();
-+ SDL_GL_SwapWindow (Screen);
- }
-
-diff --git a/src/posix/sdl/sdlglvideo.h b/src/posix/sdl/sdlglvideo.h
-index 205e416..3867be6 100644
---- a/src/posix/sdl/sdlglvideo.h
-+++ b/src/posix/sdl/sdlglvideo.h
-@@ -3,7 +3,6 @@
-
- #include "hardware.h"
- #include "v_video.h"
--#include <SDL.h>
- #include "gl/system/gl_system.h"
-
- EXTERN_CVAR (Float, dimamount)
-@@ -70,9 +69,11 @@ protected:
- SDLGLFB () {}
- BYTE GammaTable[3][256];
- bool UpdatePending;
--
-- SDL_Surface *Screen;
--
-+
-+ SDL_Window *Screen;
-+
-+ SDL_GLContext GLContext;
-+
- void UpdateColors ();
-
- int m_Lock;
---
-2.3.2
-
diff --git a/git-c915049.patch b/git-c915049.patch
deleted file mode 100644
index accd958c5ea1..000000000000
--- a/git-c915049.patch
+++ /dev/null
@@ -1,1119 +0,0 @@
-From c9150497e3472e1057ed8286237fcf07106a075d Mon Sep 17 00:00:00 2001
-From: Edoardo Prezioso <edo88@email.it>
-Date: Wed, 7 Jan 2015 21:07:40 +0100
-Subject: [PATCH] - Move sdlglvideo code from sdl to posix/sdl.
-
-Re-add sdlglvideo.cpp path in CMakeLists.txt . Warning: it won't compile yet.
----
- src/CMakeLists.txt | 6 +-
- src/posix/sdl/sdlglvideo.cpp | 448 +++++++++++++++++++++++++++++++++++++++++++
- src/posix/sdl/sdlglvideo.h | 82 ++++++++
- src/sdl/sdlglvideo.cpp | 448 -------------------------------------------
- src/sdl/sdlglvideo.h | 82 --------
- 5 files changed, 532 insertions(+), 534 deletions(-)
- create mode 100644 src/posix/sdl/sdlglvideo.cpp
- create mode 100644 src/posix/sdl/sdlglvideo.h
- delete mode 100644 src/sdl/sdlglvideo.cpp
- delete mode 100644 src/sdl/sdlglvideo.h
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 4803006..3edcbaf 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -584,7 +584,8 @@ set( PLAT_SDL_SOURCES
- posix/sdl/i_joystick.cpp
- posix/sdl/i_main.cpp
- posix/sdl/i_timer.cpp
-- posix/sdl/sdlvideo.cpp )
-+ posix/sdl/sdlvideo.cpp
-+ posix/sdl/sdlglvideo.cpp )
- set( PLAT_OSX_SOURCES
- posix/osx/iwadpicker_cocoa.mm
- posix/osx/zdoom.icns )
-diff --git a/src/posix/sdl/sdlglvideo.cpp b/src/posix/sdl/sdlglvideo.cpp
-new file mode 100644
-index 0000000..649989e
---- /dev/null
-+++ b/src/posix/sdl/sdlglvideo.cpp
-@@ -0,0 +1,448 @@
-+
-+// HEADER FILES ------------------------------------------------------------
-+
-+#include <iostream>
-+
-+#include "doomtype.h"
-+
-+#include "templates.h"
-+#include "i_system.h"
-+#include "i_video.h"
-+#include "v_video.h"
-+#include "v_pfx.h"
-+#include "stats.h"
-+#include "version.h"
-+#include "c_console.h"
-+
-+#include "sdlglvideo.h"
-+#include "gl/system/gl_system.h"
-+#include "r_defs.h"
-+#include "gl/gl_functions.h"
-+//#include "gl/gl_intern.h"
-+
-+#include "gl/renderer/gl_renderer.h"
-+#include "gl/system/gl_framebuffer.h"
-+#include "gl/shaders/gl_shader.h"
-+#include "gl/utility/gl_templates.h"
-+#include "gl/textures/gl_material.h"
-+#include "gl/system/gl_cvars.h"
-+
-+// MACROS ------------------------------------------------------------------
-+
-+// TYPES -------------------------------------------------------------------
-+
-+IMPLEMENT_ABSTRACT_CLASS(SDLGLFB)
-+
-+struct MiniModeInfo
-+{
-+ WORD Width, Height;
-+};
-+
-+// PUBLIC FUNCTION PROTOTYPES ----------------------------------------------
-+
-+// PRIVATE FUNCTION PROTOTYPES ---------------------------------------------
-+
-+// EXTERNAL DATA DECLARATIONS ----------------------------------------------
-+
-+extern IVideo *Video;
-+// extern int vid_renderer;
-+
-+EXTERN_CVAR (Float, Gamma)
-+EXTERN_CVAR (Int, vid_displaybits)
-+EXTERN_CVAR (Int, vid_renderer)
-+
-+
-+// PUBLIC DATA DEFINITIONS -------------------------------------------------
-+
-+CUSTOM_CVAR(Int, gl_vid_multisample, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL )
-+{
-+ Printf("This won't take effect until " GAMENAME " is restarted.\n");
-+}
-+
-+// PRIVATE DATA DEFINITIONS ------------------------------------------------
-+
-+// Dummy screen sizes to pass when windowed
-+static MiniModeInfo WinModes[] =
-+{
-+ { 320, 200 },
-+ { 320, 240 },
-+ { 400, 225 }, // 16:9
-+ { 400, 300 },
-+ { 480, 270 }, // 16:9
-+ { 480, 360 },
-+ { 512, 288 }, // 16:9
-+ { 512, 384 },
-+ { 640, 360 }, // 16:9
-+ { 640, 400 },
-+ { 640, 480 },
-+ { 720, 480 }, // 16:10
-+ { 720, 540 },
-+ { 800, 450 }, // 16:9
-+ { 800, 500 }, // 16:10
-+ { 800, 600 },
-+ { 848, 480 }, // 16:9
-+ { 960, 600 }, // 16:10
-+ { 960, 720 },
-+ { 1024, 576 }, // 16:9
-+ { 1024, 600 }, // 17:10
-+ { 1024, 640 }, // 16:10
-+ { 1024, 768 },
-+ { 1088, 612 }, // 16:9
-+ { 1152, 648 }, // 16:9
-+ { 1152, 720 }, // 16:10
-+ { 1152, 864 },
-+ { 1280, 720 }, // 16:9
-+ { 1280, 800 }, // 16:10
-+ { 1280, 960 },
-+ { 1344, 756 }, // 16:9
-+ { 1360, 768 }, // 16:9
-+ { 1400, 787 }, // 16:9
-+ { 1400, 875 }, // 16:10
-+ { 1440, 900 },
-+ { 1400, 1050 },
-+ { 1600, 900 }, // 16:9
-+ { 1600, 1000 }, // 16:10
-+ { 1600, 1200 },
-+ { 1680, 1050 }, // 16:10
-+ { 1920, 1080 }, // 16:9
-+ { 1920, 1200 }, // 16:10
-+ { 2054, 1536 },
-+ { 2560, 1440 }, // 16:9
-+ { 2880, 1800 } // 16:10
-+};
-+
-+// CODE --------------------------------------------------------------------
-+
-+SDLGLVideo::SDLGLVideo (int parm)
-+{
-+ IteratorBits = 0;
-+ IteratorFS = false;
-+ if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
-+ fprintf( stderr, "Video initialization failed: %s\n",
-+ SDL_GetError( ) );
-+ }
-+#ifndef _WIN32
-+ // mouse cursor is visible by default on linux systems, we disable it by default
-+ SDL_ShowCursor (0);
-+#endif
-+}
-+
-+SDLGLVideo::~SDLGLVideo ()
-+{
-+ if (GLRenderer != NULL) GLRenderer->FlushTextures();
-+}
-+
-+void SDLGLVideo::StartModeIterator (int bits, bool fs)
-+{
-+ IteratorMode = 0;
-+ IteratorBits = bits;
-+ IteratorFS = fs;
-+}
-+
-+bool SDLGLVideo::NextMode (int *width, int *height, bool *letterbox)
-+{
-+ if (IteratorBits != 8)
-+ return false;
-+
-+ if (!IteratorFS)
-+ {
-+ if ((unsigned)IteratorMode < sizeof(WinModes)/sizeof(WinModes[0]))
-+ {
-+ *width = WinModes[IteratorMode].Width;
-+ *height = WinModes[IteratorMode].Height;
-+ ++IteratorMode;
-+ return true;
-+ }
-+ }
-+ else
-+ {
-+ SDL_Rect **modes = SDL_ListModes (NULL, SDL_FULLSCREEN|SDL_HWSURFACE);
-+ if (modes != NULL && modes[IteratorMode] != NULL)
-+ {
-+ *width = modes[IteratorMode]->w;
-+ *height = modes[IteratorMode]->h;
-+ ++IteratorMode;
-+ return true;
-+ }
-+ }
-+ return false;
-+}
-+
-+DFrameBuffer *SDLGLVideo::CreateFrameBuffer (int width, int height, bool fullscreen, DFrameBuffer *old)
-+{
-+ static int retry = 0;
-+ static int owidth, oheight;
-+
-+ PalEntry flashColor;
-+// int flashAmount;
-+
-+ if (old != NULL)
-+ { // Reuse the old framebuffer if its attributes are the same
-+ SDLGLFB *fb = static_cast<SDLGLFB *> (old);
-+ if (fb->Width == width &&
-+ fb->Height == height)
-+ {
-+ bool fsnow = (fb->Screen->flags & SDL_FULLSCREEN) != 0;
-+
-+ if (fsnow != fullscreen)
-+ {
-+ SDL_WM_ToggleFullScreen (fb->Screen);
-+ }
-+ return old;
-+ }
-+// old->GetFlash (flashColor, flashAmount);
-+ delete old;
-+ }
-+ else
-+ {
-+ flashColor = 0;
-+// flashAmount = 0;
-+ }
-+
-+ SDLGLFB *fb = new OpenGLFrameBuffer (0, width, height, 32, 60, fullscreen);
-+ retry = 0;
-+
-+ // If we could not create the framebuffer, try again with slightly
-+ // different parameters in this order:
-+ // 1. Try with the closest size
-+ // 2. Try in the opposite screen mode with the original size
-+ // 3. Try in the opposite screen mode with the closest size
-+ // This is a somewhat confusing mass of recursion here.
-+
-+ while (fb == NULL || !fb->IsValid ())
-+ {
-+ if (fb != NULL)
-+ {
-+ delete fb;
-+ }
-+
-+ switch (retry)
-+ {
-+ case 0:
-+ owidth = width;
-+ oheight = height;
-+ case 2:
-+ // Try a different resolution. Hopefully that will work.
-+ I_ClosestResolution (&width, &height, 8);
-+ break;
-+
-+ case 1:
-+ // Try changing fullscreen mode. Maybe that will work.
-+ width = owidth;
-+ height = oheight;
-+ fullscreen = !fullscreen;
-+ break;
-+
-+ default:
-+ // I give up!
-+ I_FatalError ("Could not create new screen (%d x %d)", owidth, oheight);
-+
-+ fprintf( stderr, "!!! [SDLGLVideo::CreateFrameBuffer] Got beyond I_FatalError !!!" );
-+ return NULL; //[C] actually this shouldn't be reached; probably should be replaced with an ASSERT
-+ }
-+
-+ ++retry;
-+ fb = static_cast<SDLGLFB *>(CreateFrameBuffer (width, height, fullscreen, NULL));
-+ }
-+
-+// fb->SetFlash (flashColor, flashAmount);
-+ return fb;
-+}
-+
-+void SDLGLVideo::SetWindowedScale (float scale)
-+{
-+}
-+
-+bool SDLGLVideo::SetResolution (int width, int height, int bits)
-+{
-+ // FIXME: Is it possible to do this without completely destroying the old
-+ // interface?
-+#ifndef NO_GL
-+
-+ if (GLRenderer != NULL) GLRenderer->FlushTextures();
-+ I_ShutdownGraphics();
-+
-+ Video = new SDLGLVideo(0);
-+ if (Video == NULL) I_FatalError ("Failed to initialize display");
-+
-+#if (defined(WINDOWS)) || defined(WIN32)
-+ bits=32;
-+#else
-+ bits=24;
-+#endif
-+
-+ V_DoModeSetup(width, height, bits);
-+#endif
-+ return true; // We must return true because the old video context no longer exists.
-+}
-+
-+//==========================================================================
-+//
-+//
-+//
-+//==========================================================================
-+
-+bool SDLGLVideo::SetupPixelFormat(bool allowsoftware, int multisample)
-+{
-+ SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 );
-+ SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 );
-+ SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 );
-+ SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );
-+ SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 24 );
-+ SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
-+// SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
-+ if (multisample > 0) {
-+ SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 );
-+ SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, multisample );
-+ }
-+ return true;
-+}
-+
-+//==========================================================================
-+//
-+//
-+//
-+//==========================================================================
-+
-+bool SDLGLVideo::InitHardware (bool allowsoftware, int multisample)
-+{
-+ if (!SetupPixelFormat(allowsoftware, multisample))
-+ {
-+ Printf ("R_OPENGL: Reverting to software mode...\n");
-+ return false;
-+ }
-+ return true;
-+}
-+
-+
-+// FrameBuffer implementation -----------------------------------------------
-+
-+SDLGLFB::SDLGLFB (void *, int width, int height, int, int, bool fullscreen)
-+ : DFrameBuffer (width, height)
-+{
-+ static int localmultisample=-1;
-+
-+ if (localmultisample<0) localmultisample=gl_vid_multisample;
-+
-+ int i;
-+
-+ m_Lock=0;
-+
-+ UpdatePending = false;
-+
-+ if (!static_cast<SDLGLVideo*>(Video)->InitHardware(false, localmultisample))
-+ {
-+ vid_renderer = 0;
-+ return;
-+ }
-+
-+
-+ Screen = SDL_SetVideoMode (width, height,
-+ 32,
-+ SDL_HWSURFACE|SDL_HWPALETTE|SDL_OPENGL | SDL_GL_DOUBLEBUFFER|SDL_ANYFORMAT|
-+ (fullscreen ? SDL_FULLSCREEN : 0));
-+
-+ if (Screen == NULL)
-+ return;
-+
-+ m_supportsGamma = -1 != SDL_GetGammaRamp(m_origGamma[0], m_origGamma[1], m_origGamma[2]);
-+
-+#if defined(__APPLE__)
-+ // Need to set title here because a window is not created yet when calling the same function from main()
-+ char caption[100];
-+ mysnprintf(caption, countof(caption), GAMESIG " %s (%s)", GetVersionString(), GetGitTime());
-+ SDL_WM_SetCaption(caption, NULL);
-+#endif // __APPLE__
-+}
-+
-+SDLGLFB::~SDLGLFB ()
-+{
-+ if (m_supportsGamma)
-+ {
-+ SDL_SetGammaRamp(m_origGamma[0], m_origGamma[1], m_origGamma[2]);
-+ }
-+}
-+
-+
-+
-+
-+void SDLGLFB::InitializeState()
-+{
-+}
-+
-+bool SDLGLFB::CanUpdate ()
-+{
-+ if (m_Lock != 1)
-+ {
-+ if (m_Lock > 0)
-+ {
-+ UpdatePending = true;
-+ --m_Lock;
-+ }
-+ return false;
-+ }
-+ return true;
-+}
-+
-+void SDLGLFB::SetGammaTable(WORD *tbl)
-+{
-+ SDL_SetGammaRamp(&tbl[0], &tbl[256], &tbl[512]);
-+}
-+
-+bool SDLGLFB::Lock(bool buffered)
-+{
-+ m_Lock++;
-+ Buffer = MemBuffer;
-+ return true;
-+}
-+
-+bool SDLGLFB::Lock ()
-+{
-+ return Lock(false);
-+}
-+
-+void SDLGLFB::Unlock ()
-+{
-+ if (UpdatePending && m_Lock == 1)
-+ {
-+ Update ();
-+ }
-+ else if (--m_Lock <= 0)
-+ {
-+ m_Lock = 0;
-+ }
-+}
-+
-+bool SDLGLFB::IsLocked ()
-+{
-+ return m_Lock>0;// true;
-+}
-+
-+bool SDLGLFB::IsFullscreen ()
-+{
-+ return (Screen->flags & SDL_FULLSCREEN) != 0;
-+}
-+
-+
-+bool SDLGLFB::IsValid ()
-+{
-+ return DFrameBuffer::IsValid() && Screen != NULL;
-+}
-+
-+void SDLGLFB::SetVSync( bool vsync )
-+{
-+#if defined (__APPLE__)
-+ const GLint value = vsync ? 1 : 0;
-+ CGLSetParameter( CGLGetCurrentContext(), kCGLCPSwapInterval, &value );
-+#endif
-+}
-+
-+void SDLGLFB::NewRefreshRate ()
-+{
-+}
-+
-+void SDLGLFB::SwapBuffers()
-+{
-+ SDL_GL_SwapBuffers ();
-+}
-+
-diff --git a/src/posix/sdl/sdlglvideo.h b/src/posix/sdl/sdlglvideo.h
-new file mode 100644
-index 0000000..205e416
---- /dev/null
-+++ b/src/posix/sdl/sdlglvideo.h
-@@ -0,0 +1,82 @@
-+#ifndef __SDLGLVIDEO_H__
-+#define __SDLGLVIDEO_H__
-+
-+#include "hardware.h"
-+#include "v_video.h"
-+#include <SDL.h>
-+#include "gl/system/gl_system.h"
-+
-+EXTERN_CVAR (Float, dimamount)
-+EXTERN_CVAR (Color, dimcolor)
-+
-+struct FRenderer;
-+FRenderer *gl_CreateInterface();
-+
-+class SDLGLVideo : public IVideo
-+{
-+ public:
-+ SDLGLVideo (int parm);
-+ ~SDLGLVideo ();
-+
-+ EDisplayType GetDisplayType () { return DISPLAY_Both; }
-+ void SetWindowedScale (float scale);
-+
-+ DFrameBuffer *CreateFrameBuffer (int width, int height, bool fs, DFrameBuffer *old);
-+
-+ void StartModeIterator (int bits, bool fs);
-+ bool NextMode (int *width, int *height, bool *letterbox);
-+ bool SetResolution (int width, int height, int bits);
-+
-+ bool SetupPixelFormat(bool allowsoftware, int multisample);
-+ bool InitHardware (bool allowsoftware, int multisample);
-+
-+private:
-+ int IteratorMode;
-+ int IteratorBits;
-+ bool IteratorFS;
-+};
-+class SDLGLFB : public DFrameBuffer
-+{
-+ DECLARE_CLASS(SDLGLFB, DFrameBuffer)
-+public:
-+ // this must have the same parameters as the Windows version, even if they are not used!
-+ SDLGLFB (void *hMonitor, int width, int height, int, int, bool fullscreen);
-+ ~SDLGLFB ();
-+
-+ void ForceBuffering (bool force);
-+ bool Lock(bool buffered);
-+ bool Lock ();
-+ void Unlock();
-+ bool IsLocked ();
-+
-+ bool IsValid ();
-+ bool IsFullscreen ();
-+
-+ virtual void SetVSync( bool vsync );
-+ void SwapBuffers();
-+
-+ void NewRefreshRate ();
-+
-+ friend class SDLGLVideo;
-+
-+//[C]
-+ int GetTrueHeight() { return GetHeight();}
-+
-+protected:
-+ bool CanUpdate();
-+ void SetGammaTable(WORD *tbl);
-+ void InitializeState();
-+
-+ SDLGLFB () {}
-+ BYTE GammaTable[3][256];
-+ bool UpdatePending;
-+
-+ SDL_Surface *Screen;
-+
-+ void UpdateColors ();
-+
-+ int m_Lock;
-+ Uint16 m_origGamma[3][256];
-+ bool m_supportsGamma;
-+};
-+#endif
-diff --git a/src/sdl/sdlglvideo.cpp b/src/sdl/sdlglvideo.cpp
-deleted file mode 100644
-index 649989e..0000000
---- a/src/sdl/sdlglvideo.cpp
-+++ /dev/null
-@@ -1,448 +0,0 @@
--
--// HEADER FILES ------------------------------------------------------------
--
--#include <iostream>
--
--#include "doomtype.h"
--
--#include "templates.h"
--#include "i_system.h"
--#include "i_video.h"
--#include "v_video.h"
--#include "v_pfx.h"
--#include "stats.h"
--#include "version.h"
--#include "c_console.h"
--
--#include "sdlglvideo.h"
--#include "gl/system/gl_system.h"
--#include "r_defs.h"
--#include "gl/gl_functions.h"
--//#include "gl/gl_intern.h"
--
--#include "gl/renderer/gl_renderer.h"
--#include "gl/system/gl_framebuffer.h"
--#include "gl/shaders/gl_shader.h"
--#include "gl/utility/gl_templates.h"
--#include "gl/textures/gl_material.h"
--#include "gl/system/gl_cvars.h"
--
--// MACROS ------------------------------------------------------------------
--
--// TYPES -------------------------------------------------------------------
--
--IMPLEMENT_ABSTRACT_CLASS(SDLGLFB)
--
--struct MiniModeInfo
--{
-- WORD Width, Height;
--};
--
--// PUBLIC FUNCTION PROTOTYPES ----------------------------------------------
--
--// PRIVATE FUNCTION PROTOTYPES ---------------------------------------------
--
--// EXTERNAL DATA DECLARATIONS ----------------------------------------------
--
--extern IVideo *Video;
--// extern int vid_renderer;
--
--EXTERN_CVAR (Float, Gamma)
--EXTERN_CVAR (Int, vid_displaybits)
--EXTERN_CVAR (Int, vid_renderer)
--
--
--// PUBLIC DATA DEFINITIONS -------------------------------------------------
--
--CUSTOM_CVAR(Int, gl_vid_multisample, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL )
--{
-- Printf("This won't take effect until " GAMENAME " is restarted.\n");
--}
--
--// PRIVATE DATA DEFINITIONS ------------------------------------------------
--
--// Dummy screen sizes to pass when windowed
--static MiniModeInfo WinModes[] =
--{
-- { 320, 200 },
-- { 320, 240 },
-- { 400, 225 }, // 16:9
-- { 400, 300 },
-- { 480, 270 }, // 16:9
-- { 480, 360 },
-- { 512, 288 }, // 16:9
-- { 512, 384 },
-- { 640, 360 }, // 16:9
-- { 640, 400 },
-- { 640, 480 },
-- { 720, 480 }, // 16:10
-- { 720, 540 },
-- { 800, 450 }, // 16:9
-- { 800, 500 }, // 16:10
-- { 800, 600 },
-- { 848, 480 }, // 16:9
-- { 960, 600 }, // 16:10
-- { 960, 720 },
-- { 1024, 576 }, // 16:9
-- { 1024, 600 }, // 17:10
-- { 1024, 640 }, // 16:10
-- { 1024, 768 },
-- { 1088, 612 }, // 16:9
-- { 1152, 648 }, // 16:9
-- { 1152, 720 }, // 16:10
-- { 1152, 864 },
-- { 1280, 720 }, // 16:9
-- { 1280, 800 }, // 16:10
-- { 1280, 960 },
-- { 1344, 756 }, // 16:9
-- { 1360, 768 }, // 16:9
-- { 1400, 787 }, // 16:9
-- { 1400, 875 }, // 16:10
-- { 1440, 900 },
-- { 1400, 1050 },
-- { 1600, 900 }, // 16:9
-- { 1600, 1000 }, // 16:10
-- { 1600, 1200 },
-- { 1680, 1050 }, // 16:10
-- { 1920, 1080 }, // 16:9
-- { 1920, 1200 }, // 16:10
-- { 2054, 1536 },
-- { 2560, 1440 }, // 16:9
-- { 2880, 1800 } // 16:10
--};
--
--// CODE --------------------------------------------------------------------
--
--SDLGLVideo::SDLGLVideo (int parm)
--{
-- IteratorBits = 0;
-- IteratorFS = false;
-- if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
-- fprintf( stderr, "Video initialization failed: %s\n",
-- SDL_GetError( ) );
-- }
--#ifndef _WIN32
-- // mouse cursor is visible by default on linux systems, we disable it by default
-- SDL_ShowCursor (0);
--#endif
--}
--
--SDLGLVideo::~SDLGLVideo ()
--{
-- if (GLRenderer != NULL) GLRenderer->FlushTextures();
--}
--
--void SDLGLVideo::StartModeIterator (int bits, bool fs)
--{
-- IteratorMode = 0;
-- IteratorBits = bits;
-- IteratorFS = fs;
--}
--
--bool SDLGLVideo::NextMode (int *width, int *height, bool *letterbox)
--{
-- if (IteratorBits != 8)
-- return false;
--
-- if (!IteratorFS)
-- {
-- if ((unsigned)IteratorMode < sizeof(WinModes)/sizeof(WinModes[0]))
-- {
-- *width = WinModes[IteratorMode].Width;
-- *height = WinModes[IteratorMode].Height;
-- ++IteratorMode;
-- return true;
-- }
-- }
-- else
-- {
-- SDL_Rect **modes = SDL_ListModes (NULL, SDL_FULLSCREEN|SDL_HWSURFACE);
-- if (modes != NULL && modes[IteratorMode] != NULL)
-- {
-- *width = modes[IteratorMode]->w;
-- *height = modes[IteratorMode]->h;
-- ++IteratorMode;
-- return true;
-- }
-- }
-- return false;
--}
--
--DFrameBuffer *SDLGLVideo::CreateFrameBuffer (int width, int height, bool fullscreen, DFrameBuffer *old)
--{
-- static int retry = 0;
-- static int owidth, oheight;
--
-- PalEntry flashColor;
--// int flashAmount;
--
-- if (old != NULL)
-- { // Reuse the old framebuffer if its attributes are the same
-- SDLGLFB *fb = static_cast<SDLGLFB *> (old);
-- if (fb->Width == width &&
-- fb->Height == height)
-- {
-- bool fsnow = (fb->Screen->flags & SDL_FULLSCREEN) != 0;
--
-- if (fsnow != fullscreen)
-- {
-- SDL_WM_ToggleFullScreen (fb->Screen);
-- }
-- return old;
-- }
--// old->GetFlash (flashColor, flashAmount);
-- delete old;
-- }
-- else
-- {
-- flashColor = 0;
--// flashAmount = 0;
-- }
--
-- SDLGLFB *fb = new OpenGLFrameBuffer (0, width, height, 32, 60, fullscreen);
-- retry = 0;
--
-- // If we could not create the framebuffer, try again with slightly
-- // different parameters in this order:
-- // 1. Try with the closest size
-- // 2. Try in the opposite screen mode with the original size
-- // 3. Try in the opposite screen mode with the closest size
-- // This is a somewhat confusing mass of recursion here.
--
-- while (fb == NULL || !fb->IsValid ())
-- {
-- if (fb != NULL)
-- {
-- delete fb;
-- }
--
-- switch (retry)
-- {
-- case 0:
-- owidth = width;
-- oheight = height;
-- case 2:
-- // Try a different resolution. Hopefully that will work.
-- I_ClosestResolution (&width, &height, 8);
-- break;
--
-- case 1:
-- // Try changing fullscreen mode. Maybe that will work.
-- width = owidth;
-- height = oheight;
-- fullscreen = !fullscreen;
-- break;
--
-- default:
-- // I give up!
-- I_FatalError ("Could not create new screen (%d x %d)", owidth, oheight);
--
-- fprintf( stderr, "!!! [SDLGLVideo::CreateFrameBuffer] Got beyond I_FatalError !!!" );
-- return NULL; //[C] actually this shouldn't be reached; probably should be replaced with an ASSERT
-- }
--
-- ++retry;
-- fb = static_cast<SDLGLFB *>(CreateFrameBuffer (width, height, fullscreen, NULL));
-- }
--
--// fb->SetFlash (flashColor, flashAmount);
-- return fb;
--}
--
--void SDLGLVideo::SetWindowedScale (float scale)
--{
--}
--
--bool SDLGLVideo::SetResolution (int width, int height, int bits)
--{
-- // FIXME: Is it possible to do this without completely destroying the old
-- // interface?
--#ifndef NO_GL
--
-- if (GLRenderer != NULL) GLRenderer->FlushTextures();
-- I_ShutdownGraphics();
--
-- Video = new SDLGLVideo(0);
-- if (Video == NULL) I_FatalError ("Failed to initialize display");
--
--#if (defined(WINDOWS)) || defined(WIN32)
-- bits=32;
--#else
-- bits=24;
--#endif
--
-- V_DoModeSetup(width, height, bits);
--#endif
-- return true; // We must return true because the old video context no longer exists.
--}
--
--//==========================================================================
--//
--//
--//
--//==========================================================================
--
--bool SDLGLVideo::SetupPixelFormat(bool allowsoftware, int multisample)
--{
-- SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 );
-- SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 );
-- SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 );
-- SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );
-- SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 24 );
-- SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
--// SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
-- if (multisample > 0) {
-- SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 );
-- SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, multisample );
-- }
-- return true;
--}
--
--//==========================================================================
--//
--//
--//
--//==========================================================================
--
--bool SDLGLVideo::InitHardware (bool allowsoftware, int multisample)
--{
-- if (!SetupPixelFormat(allowsoftware, multisample))
-- {
-- Printf ("R_OPENGL: Reverting to software mode...\n");
-- return false;
-- }
-- return true;
--}
--
--
--// FrameBuffer implementation -----------------------------------------------
--
--SDLGLFB::SDLGLFB (void *, int width, int height, int, int, bool fullscreen)
-- : DFrameBuffer (width, height)
--{
-- static int localmultisample=-1;
--
-- if (localmultisample<0) localmultisample=gl_vid_multisample;
--
-- int i;
--
-- m_Lock=0;
--
-- UpdatePending = false;
--
-- if (!static_cast<SDLGLVideo*>(Video)->InitHardware(false, localmultisample))
-- {
-- vid_renderer = 0;
-- return;
-- }
--
--
-- Screen = SDL_SetVideoMode (width, height,
-- 32,
-- SDL_HWSURFACE|SDL_HWPALETTE|SDL_OPENGL | SDL_GL_DOUBLEBUFFER|SDL_ANYFORMAT|
-- (fullscreen ? SDL_FULLSCREEN : 0));
--
-- if (Screen == NULL)
-- return;
--
-- m_supportsGamma = -1 != SDL_GetGammaRamp(m_origGamma[0], m_origGamma[1], m_origGamma[2]);
--
--#if defined(__APPLE__)
-- // Need to set title here because a window is not created yet when calling the same function from main()
-- char caption[100];
-- mysnprintf(caption, countof(caption), GAMESIG " %s (%s)", GetVersionString(), GetGitTime());
-- SDL_WM_SetCaption(caption, NULL);
--#endif // __APPLE__
--}
--
--SDLGLFB::~SDLGLFB ()
--{
-- if (m_supportsGamma)
-- {
-- SDL_SetGammaRamp(m_origGamma[0], m_origGamma[1], m_origGamma[2]);
-- }
--}
--
--
--
--
--void SDLGLFB::InitializeState()
--{
--}
--
--bool SDLGLFB::CanUpdate ()
--{
-- if (m_Lock != 1)
-- {
-- if (m_Lock > 0)
-- {
-- UpdatePending = true;
-- --m_Lock;
-- }
-- return false;
-- }
-- return true;
--}
--
--void SDLGLFB::SetGammaTable(WORD *tbl)
--{
-- SDL_SetGammaRamp(&tbl[0], &tbl[256], &tbl[512]);
--}
--
--bool SDLGLFB::Lock(bool buffered)
--{
-- m_Lock++;
-- Buffer = MemBuffer;
-- return true;
--}
--
--bool SDLGLFB::Lock ()
--{
-- return Lock(false);
--}
--
--void SDLGLFB::Unlock ()
--{
-- if (UpdatePending && m_Lock == 1)
-- {
-- Update ();
-- }
-- else if (--m_Lock <= 0)
-- {
-- m_Lock = 0;
-- }
--}
--
--bool SDLGLFB::IsLocked ()
--{
-- return m_Lock>0;// true;
--}
--
--bool SDLGLFB::IsFullscreen ()
--{
-- return (Screen->flags & SDL_FULLSCREEN) != 0;
--}
--
--
--bool SDLGLFB::IsValid ()
--{
-- return DFrameBuffer::IsValid() && Screen != NULL;
--}
--
--void SDLGLFB::SetVSync( bool vsync )
--{
--#if defined (__APPLE__)
-- const GLint value = vsync ? 1 : 0;
-- CGLSetParameter( CGLGetCurrentContext(), kCGLCPSwapInterval, &value );
--#endif
--}
--
--void SDLGLFB::NewRefreshRate ()
--{
--}
--
--void SDLGLFB::SwapBuffers()
--{
-- SDL_GL_SwapBuffers ();
--}
--
-diff --git a/src/sdl/sdlglvideo.h b/src/sdl/sdlglvideo.h
-deleted file mode 100644
-index 205e416..0000000
---- a/src/sdl/sdlglvideo.h
-+++ /dev/null
-@@ -1,82 +0,0 @@
--#ifndef __SDLGLVIDEO_H__
--#define __SDLGLVIDEO_H__
--
--#include "hardware.h"
--#include "v_video.h"
--#include <SDL.h>
--#include "gl/system/gl_system.h"
--
--EXTERN_CVAR (Float, dimamount)
--EXTERN_CVAR (Color, dimcolor)
--
--struct FRenderer;
--FRenderer *gl_CreateInterface();
--
--class SDLGLVideo : public IVideo
--{
-- public:
-- SDLGLVideo (int parm);
-- ~SDLGLVideo ();
--
-- EDisplayType GetDisplayType () { return DISPLAY_Both; }
-- void SetWindowedScale (float scale);
--
-- DFrameBuffer *CreateFrameBuffer (int width, int height, bool fs, DFrameBuffer *old);
--
-- void StartModeIterator (int bits, bool fs);
-- bool NextMode (int *width, int *height, bool *letterbox);
-- bool SetResolution (int width, int height, int bits);
--
-- bool SetupPixelFormat(bool allowsoftware, int multisample);
-- bool InitHardware (bool allowsoftware, int multisample);
--
--private:
-- int IteratorMode;
-- int IteratorBits;
-- bool IteratorFS;
--};
--class SDLGLFB : public DFrameBuffer
--{
-- DECLARE_CLASS(SDLGLFB, DFrameBuffer)
--public:
-- // this must have the same parameters as the Windows version, even if they are not used!
-- SDLGLFB (void *hMonitor, int width, int height, int, int, bool fullscreen);
-- ~SDLGLFB ();
--
-- void ForceBuffering (bool force);
-- bool Lock(bool buffered);
-- bool Lock ();
-- void Unlock();
-- bool IsLocked ();
--
-- bool IsValid ();
-- bool IsFullscreen ();
--
-- virtual void SetVSync( bool vsync );
-- void SwapBuffers();
--
-- void NewRefreshRate ();
--
-- friend class SDLGLVideo;
--
--//[C]
-- int GetTrueHeight() { return GetHeight();}
--
--protected:
-- bool CanUpdate();
-- void SetGammaTable(WORD *tbl);
-- void InitializeState();
--
-- SDLGLFB () {}
-- BYTE GammaTable[3][256];
-- bool UpdatePending;
--
-- SDL_Surface *Screen;
--
-- void UpdateColors ();
--
-- int m_Lock;
-- Uint16 m_origGamma[3][256];
-- bool m_supportsGamma;
--};
--#endif
---
-2.3.2
-
diff --git a/git-cab509c.patch b/git-cab509c.patch
deleted file mode 100644
index a48416598850..000000000000
--- a/git-cab509c.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From cab509c4d20f0e5e57099d24792a853a7adaa326 Mon Sep 17 00:00:00 2001
-From: Edoardo Prezioso <edo88@email.it>
-Date: Thu, 8 Jan 2015 01:39:29 +0100
-Subject: [PATCH] Various improvements to SDL2 video code.
-
-- Ported the missing resolutions from zdoom.
-- Remove unneeded code which was removed also from zdoom.
-- Uncomment DOUBLEBUFFER GL attribute. It was present in the old SDL_SetVideoMode call code, so why not.
----
- src/posix/sdl/sdlglvideo.cpp | 60 ++++++++++++++++++--------------------------
- src/posix/sdl/sdlglvideo.h | 1 -
- 2 files changed, 25 insertions(+), 36 deletions(-)
-
-diff --git a/src/posix/sdl/sdlglvideo.cpp b/src/posix/sdl/sdlglvideo.cpp
-index 9331c0f..54506b8 100644
---- a/src/posix/sdl/sdlglvideo.cpp
-+++ b/src/posix/sdl/sdlglvideo.cpp
-@@ -77,6 +77,7 @@ static MiniModeInfo WinModes[] =
- { 720, 480 }, // 16:10
- { 720, 540 },
- { 800, 450 }, // 16:9
-+ { 800, 480 },
- { 800, 500 }, // 16:10
- { 800, 600 },
- { 848, 480 }, // 16:9
-@@ -91,23 +92,33 @@ static MiniModeInfo WinModes[] =
- { 1152, 720 }, // 16:10
- { 1152, 864 },
- { 1280, 720 }, // 16:9
-+ { 1280, 854 },
- { 1280, 800 }, // 16:10
- { 1280, 960 },
-- { 1344, 756 }, // 16:9
-+ { 1280, 1024 }, // 5:4
- { 1360, 768 }, // 16:9
-+ { 1366, 768 },
- { 1400, 787 }, // 16:9
- { 1400, 875 }, // 16:10
-- { 1440, 900 },
- { 1400, 1050 },
-+ { 1440, 900 },
-+ { 1440, 960 },
-+ { 1440, 1080 },
- { 1600, 900 }, // 16:9
- { 1600, 1000 }, // 16:10
- { 1600, 1200 },
-- { 1680, 1050 }, // 16:10
-- { 1920, 1080 }, // 16:9
-- { 1920, 1200 }, // 16:10
-- { 2054, 1536 },
-- { 2560, 1440 }, // 16:9
-- { 2880, 1800 } // 16:10
-+ { 1920, 1080 },
-+ { 1920, 1200 },
-+ { 2048, 1536 },
-+ { 2560, 1440 },
-+ { 2560, 1600 },
-+ { 2560, 2048 },
-+ { 2880, 1800 },
-+ { 3200, 1800 },
-+ { 3840, 2160 },
-+ { 3840, 2400 },
-+ { 4096, 2160 },
-+ { 5120, 2880 }
- };
-
- // CODE --------------------------------------------------------------------
-@@ -115,7 +126,6 @@ static MiniModeInfo WinModes[] =
- SDLGLVideo::SDLGLVideo (int parm)
- {
- IteratorBits = 0;
-- IteratorFS = false;
- if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
- fprintf( stderr, "Video initialization failed: %s\n",
- SDL_GetError( ) );
-@@ -135,38 +145,18 @@ void SDLGLVideo::StartModeIterator (int bits, bool fs)
- {
- IteratorMode = 0;
- IteratorBits = bits;
-- IteratorFS = fs;
- }
-
- bool SDLGLVideo::NextMode (int *width, int *height, bool *letterbox)
- {
- if (IteratorBits != 8)
- return false;
--
-- if (!IteratorFS)
-- {
-- if ((unsigned)IteratorMode < sizeof(WinModes)/sizeof(WinModes[0]))
-- {
-- *width = WinModes[IteratorMode].Width;
-- *height = WinModes[IteratorMode].Height;
-- ++IteratorMode;
-- return true;
-- }
-- }
-- else
-- {
-- SDL_DisplayMode mode = {}, oldmode = {};
-- if(IteratorMode != 0)
-- SDL_GetDisplayMode(vid_adapter, IteratorMode-1, &oldmode);
-- do
-- {
-- if (SDL_GetDisplayMode(vid_adapter, IteratorMode, &mode) != 0)
-- return false;
-- ++IteratorMode;
-- } while(mode.w == oldmode.w && mode.h == oldmode.h);
-
-- *width = mode.w;
-- *height = mode.h;
-+ if ((unsigned)IteratorMode < sizeof(WinModes)/sizeof(WinModes[0]))
-+ {
-+ *width = WinModes[IteratorMode].Width;
-+ *height = WinModes[IteratorMode].Height;
-+ ++IteratorMode;
- return true;
- }
- return false;
-@@ -294,7 +284,7 @@ bool SDLGLVideo::SetupPixelFormat(bool allowsoftware, int multisample)
- SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );
- SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 24 );
- SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
--// SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
-+ SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
- if (multisample > 0) {
- SDL_GL_SetAttribute( SDL_GL_MULTISAMPLEBUFFERS, 1 );
- SDL_GL_SetAttribute( SDL_GL_MULTISAMPLESAMPLES, multisample );
-diff --git a/src/posix/sdl/sdlglvideo.h b/src/posix/sdl/sdlglvideo.h
-index 3867be6..c2be3ba 100644
---- a/src/posix/sdl/sdlglvideo.h
-+++ b/src/posix/sdl/sdlglvideo.h
-@@ -32,7 +32,6 @@ class SDLGLVideo : public IVideo
- private:
- int IteratorMode;
- int IteratorBits;
-- bool IteratorFS;
- };
- class SDLGLFB : public DFrameBuffer
- {
---
-2.3.2
-
diff --git a/git-fb3bf0e.patch b/git-fb3bf0e.patch
deleted file mode 100644
index 327126642bfe..000000000000
--- a/git-fb3bf0e.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From fb3bf0eb5868742d1771834588a4bbf3c888ac7d Mon Sep 17 00:00:00 2001
-From: Edoardo Prezioso <edo88@email.it>
-Date: Thu, 8 Jan 2015 13:18:00 +0100
-Subject: [PATCH] - Oops, forgot to reinclude missing SDL header.
-
-Strangely it compiled fine for me, though.
----
- src/posix/sdl/sdlglvideo.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/posix/sdl/sdlglvideo.h b/src/posix/sdl/sdlglvideo.h
-index c2be3ba..19e6a5f 100644
---- a/src/posix/sdl/sdlglvideo.h
-+++ b/src/posix/sdl/sdlglvideo.h
-@@ -3,6 +3,7 @@
-
- #include "hardware.h"
- #include "v_video.h"
-+#include <SDL.h>
- #include "gl/system/gl_system.h"
-
- EXTERN_CVAR (Float, dimamount)
---
-2.3.2
-
diff --git a/install b/install
new file mode 100644
index 000000000000..a3292a2070bc
--- /dev/null
+++ b/install
@@ -0,0 +1,16 @@
+post_install() {
+ if [[ -x usr/bin/xdg-icon-resource ]]; then
+ usr/bin/xdg-icon-resource forceupdate
+ fi
+ if [[ -x usr/bin/update-desktop-database ]]; then
+ usr/bin/update-desktop-database -q
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/stack-noexec.patch b/stack-noexec.patch
deleted file mode 100644
index c903e79dcf5f..000000000000
--- a/stack-noexec.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff -ur gzdoom-1.6.00.orig/src/asm_ia32/a.asm gzdoom-1.6.00/src/asm_ia32/a.asm
---- gzdoom-1.6.00.orig/src/asm_ia32/a.asm 2012-11-06 15:17:27.061263504 +0100
-+++ gzdoom-1.6.00/src/asm_ia32/a.asm 2012-11-06 15:24:25.474601731 +0100
-@@ -810,3 +810,13 @@
- GLOBAL _rtext_a_end
- _rtext_a_end:
- %endif
-+
-+%ifidn __OUTPUT_FORMAT__,elf
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf32
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf64
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-diff -ur gzdoom-1.6.00.orig/src/asm_ia32/misc.asm gzdoom-1.6.00/src/asm_ia32/misc.asm
---- gzdoom-1.6.00.orig/src/asm_ia32/misc.asm 2012-11-06 15:17:27.064596838 +0100
-+++ gzdoom-1.6.00/src/asm_ia32/misc.asm 2012-11-06 15:24:25.474601731 +0100
-@@ -198,3 +198,13 @@
- pop ebx
- emms
- ret
-+
-+%ifidn __OUTPUT_FORMAT__,elf
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf32
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf64
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-diff -ur gzdoom-1.6.00.orig/src/asm_ia32/tmap.asm gzdoom-1.6.00/src/asm_ia32/tmap.asm
---- gzdoom-1.6.00.orig/src/asm_ia32/tmap.asm 2012-11-06 15:17:27.061263504 +0100
-+++ gzdoom-1.6.00/src/asm_ia32/tmap.asm 2012-11-06 15:24:25.474601731 +0100
-@@ -1891,3 +1891,13 @@
- selfmod rtext_start, rtext_end
- call setpitch3
- jmp setvlinebpl_
-+
-+%ifidn __OUTPUT_FORMAT__,elf
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf32
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf64
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-diff -ur gzdoom-1.6.00.orig/src/asm_ia32/tmap2.asm gzdoom-1.6.00/src/asm_ia32/tmap2.asm
---- gzdoom-1.6.00.orig/src/asm_ia32/tmap2.asm 2012-11-06 15:17:27.061263504 +0100
-+++ gzdoom-1.6.00/src/asm_ia32/tmap2.asm 2012-11-06 15:24:25.474601731 +0100
-@@ -638,3 +638,13 @@
- GLOBAL _rtext_tmap2_end
- _rtext_tmap2_end:
- %endif
-+
-+%ifidn __OUTPUT_FORMAT__,elf
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf32
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf64
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-diff -ur gzdoom-1.6.00.orig/src/asm_ia32/tmap3.asm gzdoom-1.6.00/src/asm_ia32/tmap3.asm
---- gzdoom-1.6.00.orig/src/asm_ia32/tmap3.asm 2012-11-06 15:17:27.061263504 +0100
-+++ gzdoom-1.6.00/src/asm_ia32/tmap3.asm 2012-11-06 15:24:25.474601731 +0100
-@@ -342,3 +342,13 @@
- GLOBAL _rtext_tmap3_end
- _rtext_tmap3_end:
- %endif
-+
-+%ifidn __OUTPUT_FORMAT__,elf
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf32
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-+%ifidn __OUTPUT_FORMAT__,elf64
-+section .note.GNU-stack noalloc noexec nowrite progbits
-+%endif
-diff -ur gzdoom-1.6.00.orig/src/asm_x86_64/tmap3.s gzdoom-1.6.00/src/asm_x86_64/tmap3.s
---- gzdoom-1.6.00.orig/src/asm_x86_64/tmap3.s 2012-11-06 15:17:30.497930211 +0100
-+++ gzdoom-1.6.00/src/asm_x86_64/tmap3.s 2012-11-06 15:24:25.474601731 +0100
-@@ -139,3 +139,4 @@
- .align 16
-
-
-+ .section .note.GNU-stack,"",@progbits