aboutsummaryrefslogtreecommitdiff
path: root/games/xray_re-tools
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2022-10-15 18:08:20 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2022-10-15 18:08:20 +0000
commitc5f751f8a9d0d1a0a753f9b95562db4c97eea836 (patch)
tree5f8244709b793482ba1200a0f1e6eb9449682a76 /games/xray_re-tools
parent470f0bf1c3353bca73e516f4053a29886f48d0fb (diff)
downloadports-c5f751f8a9d0d1a0a753f9b95562db4c97eea836.tar.gz
ports-c5f751f8a9d0d1a0a753f9b95562db4c97eea836.zip
Diffstat (limited to 'games/xray_re-tools')
-rw-r--r--games/xray_re-tools/Makefile10
-rw-r--r--games/xray_re-tools/files/Makefile3
-rw-r--r--games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_Memory.h20
-rw-r--r--games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_poshlib_posh.h14
-rw-r--r--games/xray_re-tools/files/patch-sources_xray__re_xr__image__dds.cxx48
5 files changed, 58 insertions, 37 deletions
diff --git a/games/xray_re-tools/Makefile b/games/xray_re-tools/Makefile
index 91c0d035e431..6267cb8bf449 100644
--- a/games/xray_re-tools/Makefile
+++ b/games/xray_re-tools/Makefile
@@ -6,12 +6,11 @@ MAINTAINER= danfe@FreeBSD.org
COMMENT= X-Ray engine game asset converter (unofficial)
WWW= https://github.com/abramcumner/xray_re-tools
+BUILD_DEPENDS= ${NONEXISTENT}:graphics/nvidia-texture-tools:patch
LIB_DEPENDS= liblzo2.so:archivers/lzo2 \
libvorbisfile.so:audio/libvorbis \
libnvtt.so:graphics/nvidia-texture-tools
-BROKEN= does not link: ld: error: undefined symbol: nv::mem::malloc
-
USE_GITHUB= yes
GH_ACCOUNT= abramcumner
GH_TAGNAME= 52721d2
@@ -19,11 +18,13 @@ GH_TAGNAME= 52721d2
MAKEFILE= ${FILESDIR}/Makefile
BUILD_WRKSRC= ${WRKSRC}/sources
WITHOUT_FBSD10_FIX= yes
+_NVTT_WRKSRC= ${MAKE} -C ${PORTSDIR}/graphics/nvidia-texture-tools -V WRKSRC
PLIST_FILES= bin/xr_converter
post-extract:
@${MV} ${WRKSRC}/sources/3rd\ party ${WRKSRC}/sources/3rd-party
+ @cd ${WRKSRC}/sources/3rd-party && ${RM} -r libogg libvorbis nvtt
@${MV} ${WRKSRC}/sources/utils/converter/opcode/Ice/IceTrilist.h \
${WRKSRC}/sources/utils/converter/opcode/Ice/IceTriList.h
@${LN} -s StdAfx.h ${WRKSRC}/sources/utils/converter/opcode/Stdafx.h
@@ -53,6 +54,11 @@ post-patch:
@${REINPLACE_CMD} -e 's,MINGW32__),& || defined(__FreeBSD__),' \
${WRKSRC}/sources/xray_re/xr_types.h
+post-configure:
+ @${LN} -sf ${_NVTT_WRKSRC:sh}/src ${WRKSRC}/sources/3rd-party/nvtt
+ @${REINPLACE_CMD} -e '/#include "nvconfig\.h"/d' \
+ ${WRKSRC}/sources/3rd-party/nvtt/nvcore/nvcore.h
+
do-install:
${INSTALL_PROGRAM} ${BUILD_WRKSRC}/converter \
${STAGEDIR}${PREFIX}/bin/xr_converter
diff --git a/games/xray_re-tools/files/Makefile b/games/xray_re-tools/files/Makefile
index 3220d663a3ba..0ac7ccba00a4 100644
--- a/games/xray_re-tools/files/Makefile
+++ b/games/xray_re-tools/files/Makefile
@@ -1,5 +1,6 @@
CXXFLAGS+= -Wall -Wextra
-CPPFLAGS+= -Ixray_re -Iutils/converter/opcode -I3rd-party/nvtt -I$(LOCALBASE)/include
+CPPFLAGS+= -Ixray_re -Iutils/converter/opcode -I3rd-party/nvtt \
+ -I3rd-party/nvtt/../extern/poshlib -I$(LOCALBASE)/include
LDFLAGS+= -L$(LOCALBASE)/lib
xray_re_OBJS= xray_re/xr_ai_cross_table.o \
diff --git a/games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_Memory.h b/games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_Memory.h
deleted file mode 100644
index b6b6833f06ad..000000000000
--- a/games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_Memory.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- sources/3rd-party/nvtt/nvcore/Memory.h.orig 2018-09-02 12:42:44 UTC
-+++ sources/3rd-party/nvtt/nvcore/Memory.h
-@@ -28,7 +28,7 @@ namespace nv
-
- // Override new/delete
-
--inline void * operator new (size_t size) throw()
-+inline void * operator new (size_t size) _THROW_BAD_ALLOC
- {
- return nv::mem::malloc(size);
- }
-@@ -38,7 +38,7 @@ inline void operator delete (void *p) throw()
- nv::mem::free(p);
- }
-
--inline void * operator new [] (size_t size) throw()
-+inline void * operator new [] (size_t size) _THROW_BAD_ALLOC
- {
- return nv::mem::malloc(size);
- }
diff --git a/games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_poshlib_posh.h b/games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_poshlib_posh.h
deleted file mode 100644
index 7448d82366c0..000000000000
--- a/games/xray_re-tools/files/patch-sources_3rd-party_nvtt_nvcore_poshlib_posh.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- sources/3rd-party/nvtt/nvcore/poshlib/posh.h.orig 2018-09-02 12:42:44 UTC
-+++ sources/3rd-party/nvtt/nvcore/poshlib/posh.h
-@@ -293,6 +293,11 @@ Metrowerks:
- # define POSH_OS_STRING "Linux"
- #endif
-
-+#if defined __FreeBSD__
-+# define POSH_OS_LINUX 1
-+# define POSH_OS_STRING "FreeBSD"
-+#endif
-+
- #if defined __CYGWIN32__
- # define POSH_OS_CYGWIN32 1
- # define POSH_OS_STRING "Cygwin"
diff --git a/games/xray_re-tools/files/patch-sources_xray__re_xr__image__dds.cxx b/games/xray_re-tools/files/patch-sources_xray__re_xr__image__dds.cxx
new file mode 100644
index 000000000000..4323a3afc70c
--- /dev/null
+++ b/games/xray_re-tools/files/patch-sources_xray__re_xr__image__dds.cxx
@@ -0,0 +1,48 @@
+--- sources/xray_re/xr_image_dds.cxx.orig 2018-09-02 12:42:44 UTC
++++ sources/xray_re/xr_image_dds.cxx
+@@ -7,6 +7,7 @@
+ #include <nvmath/Color.h>
+ #include <nvtt/nvtt.h>
+ #pragma warning(pop)
++#undef sqrt
+ #include "xr_image.h"
+ #include "xr_file_system.h"
+
+@@ -14,13 +15,14 @@ bool xr_image::load_dds(const std::string& path)
+
+ bool xr_image::load_dds(const std::string& path)
+ {
+- nv::DirectDrawSurface dds(path.c_str());
++ nv::DirectDrawSurface dds;
++ dds.load(path.c_str());
+ if (!dds.isValid() || !dds.isTexture2D())
+ return false;
+ nv::Image image;
+- dds.mipmap(&image, 0, 0);
+- m_width = image.width();
+- m_height = image.height();
++ imageFromDDS(&image, dds, 0, 0);
++ m_width = image.width;
++ m_height = image.height;
+ m_data = new rgba32[m_width*m_height];
+ for (unsigned i = m_height*m_width; i > 0;) {
+ const nv::Color32& pix = image.pixel(--i);
+@@ -50,6 +52,7 @@ struct dds_writer: public nvtt::OutputHandler {
+ dds_writer(xr_writer& _w);
+
+ virtual void beginImage(int size, int width, int height, int depth, int face, int miplevel);
++ virtual void endImage();
+ virtual bool writeData(const void* data, int size);
+ xr_writer& w;
+ };
+@@ -60,6 +63,10 @@ void dds_writer::beginImage(int size, int width, int h
+ {
+ }
+
++void dds_writer::endImage()
++{
++}
++
+ bool dds_writer::writeData(const void* data, int size)
+ {
+ w.w_raw(data, size_t(size & INT_MAX));