Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into meshageddon
Browse files Browse the repository at this point in the history
  • Loading branch information
JMPZ11 committed Aug 10, 2024
2 parents 15d65bb + 292cf55 commit f81eb3c
Show file tree
Hide file tree
Showing 87 changed files with 5,080 additions and 1,210 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
msystem: UCRT64
update: true
cache: true
install: 'base-devel mingw-w64-ucrt-x86_64-gcc msys/p7zip mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d mingw-w64-ucrt-x86_64-qt5-imageformats'
install: 'base-devel mingw-w64-ucrt-x86_64-gcc msys/p7zip mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d mingw-w64-ucrt-x86_64-qt5-imageformats mingw-w64-ucrt-x86_64-qt5-tools'

- name: 'Build with qmake'
shell: msys2 {0}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
msystem: UCRT64
update: true
cache: true
install: 'base-devel mingw-w64-ucrt-x86_64-gcc msys/p7zip mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d mingw-w64-ucrt-x86_64-qt5-imageformats'
install: 'base-devel mingw-w64-ucrt-x86_64-gcc msys/p7zip mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d mingw-w64-ucrt-x86_64-qt5-imageformats mingw-w64-ucrt-x86_64-qt5-tools'

- name: 'Build with qmake'
shell: msys2 {0}
Expand Down
9 changes: 6 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "docsys"]
path = build/docsys
url = https://github.com/niftools/nifdocsys.git
[submodule "qhull"]
path = lib/qhull
url = https://github.com/qhull/qhull.git
Expand All @@ -10,3 +7,9 @@
[submodule "lib/libfo76utils"]
path = lib/libfo76utils
url = https://github.com/fo76utils/libfo76utils.git
[submodule "build/docsys/kfmxml"]
path = build/docsys/kfmxml
url = https://github.com/niftools/kfmxml.git
[submodule "build/docsys/nifxml"]
path = build/docsys/nifxml
url = https://github.com/niftools/nifxml.git
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
== CHANGELOG ==

* Vertex selection has been implemented for Starfield, and the maximum number of shapes supported by vertex selection has been increased from 256 to 32768 for all games.
* Fixed the 'Add Tangent Spaces and Update' spell for Starfield.
* Importing OBJ files to Skyrim SE, Fallout 4 and Fallout 76 models now creates BSTriShape geometry instead of NiTriShape.
* Added support for vertex colors in exported and imported OBJ files (BSTriShape only).
* Fixes to OBJ import.
* Disabled some of the spells for newer games where they are not implemented or should not be applicable (e.g. Fallout 4 and newer do not use triangle strips).

#### NifSkope-2.0.dev9-20240804

* Implemented the 'Remove Duplicate Vertices' spell for Starfield, and fixed warnings about missing triangle data for older games.
* Restored support for Oblivion, Fallout 3 and New Vegas shading.
* The UV editor now allows selecting Oblivion and Fallout 3/NV texture slots.
* New render setting for the number of importance samples to use at 512x512 and higher PBR cube map resolutions. The default is 1024, lower values reduce pre-filtering time at the cost of image quality.
* The view is automatically centered after importing a glTF file.
* Fixed saving screenshots in WebP, BMP and TGA formats.
* Fixed crash on double clicking block names in the block list.
* Fix to issue https://github.com/hexabits/nifskope/issues/68
* Minor optimizations in the resource manager and renderer.

#### NifSkope-2.0.dev9-20240724

Expand Down
6 changes: 0 additions & 6 deletions NifSkope.pro
Original file line number Diff line number Diff line change
Expand Up @@ -526,12 +526,6 @@ build_pass|!debug_and_release {
## QMAKE_POST_LINK
###############################

win32:contains(QT_ARCH, i386) {
DEP += \
dep/NifMopp.dll
copyFiles( $$DEP )
}

XML += \
build/nif.xml \
build/docsys/kfmxml/kfm.xml
Expand Down
11 changes: 9 additions & 2 deletions NifSkope_functions.pri
Original file line number Diff line number Diff line change
Expand Up @@ -191,13 +191,20 @@ defineReplace(QtBins) {
$$[QT_INSTALL_BINS]/libgraphite2.dll \
$$[QT_INSTALL_BINS]/libharfbuzz-0.dll \
$$[QT_INSTALL_BINS]/libiconv-2.dll \
$$[QT_INSTALL_BINS]/libicu*.dll \
$$[QT_INSTALL_BINS]/libicudt*.dll \
$$[QT_INSTALL_BINS]/libicuin*.dll \
$$[QT_INSTALL_BINS]/libicuuc*.dll \
$$[QT_INSTALL_BINS]/libintl-8.dll \
$$[QT_INSTALL_BINS]/libjpeg-8.dll \
$$[QT_INSTALL_BINS]/libmd4c.dll \
$$[QT_INSTALL_BINS]/libpcre2-*.dll \
$$[QT_INSTALL_BINS]/libpcre2-16*.dll \
$$[QT_INSTALL_BINS]/libpcre2-8*.dll \
$$[QT_INSTALL_BINS]/libpng16-*.dll \
$$[QT_INSTALL_BINS]/libsharpyuv-*.dll \
$$[QT_INSTALL_BINS]/libstdc++-6.dll \
$$[QT_INSTALL_BINS]/libwebp-*.dll \
$$[QT_INSTALL_BINS]/libwebpdemux-*.dll \
$$[QT_INSTALL_BINS]/libwebpmux-*.dll \
$$[QT_INSTALL_BINS]/libwinpthread-1.dll \
$$[QT_INSTALL_BINS]/libzstd.dll \
$$[QT_INSTALL_BINS]/zlib1.dll
Expand Down
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,21 @@ Binary packages for Windows and Linux can be downloaded from [Releases](https://

You can also download the latest official release from [niftools/nifskope](https://github.com/niftools/nifskope/releases), or development builds from [hexabits/nifskope](https://github.com/hexabits/nifskope/releases).

**Note:** running NifSkope under Wayland on Linux may require setting the QT\_QPA\_PLATFORM environment variable to "xcb":
**Notes:**

Running NifSkope under Wayland on Linux may require setting the QT\_QPA\_PLATFORM environment variable to "xcb":

QT_QPA_PLATFORM=xcb ./NifSkope

The resource manager in this version of NifSkope is optimized for PCs with solid-state drives. While hard disk drives generally also work, if the number of loose resources is large, load times can be significantly shorter on an SSD when the data is not cached yet by the operating system.

#### Building from source code

Compiling NifSkope requires Qt 5.15. On Windows, [MSYS2](https://www.msys2.org/) can be used for building. After running the MSYS2 installer, use the following commands in the MSYS2-UCRT64 shell to install required packages:

pacman -S base-devel mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d mingw-w64-ucrt-x86_64-qt5-imageformats
pacman -S mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d
pacman -S mingw-w64-ucrt-x86_64-qt5-imageformats mingw-w64-ucrt-x86_64-qt5-tools
pacman -S git

All installed MSYS2 packages can be updated anytime later by running the command '**pacman -Syu**'. To download the complete NifSkope source code, use '**git clone**' as follows:
Expand All @@ -37,6 +42,7 @@ All installed MSYS2 packages can be updated anytime later by running the command

Finally, run '**qmake**' and then '**make**' in MSYS2-UCRT64 to build the source code (the -j 8 option sets the number of processes to run in parallel). The resulting binaries and required DLL files and resources are placed under '**release**'.

cd nifskope
qmake NifSkope.pro
make -j 8

Expand Down
10 changes: 8 additions & 2 deletions build/README.md.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,21 @@ Binary packages for Windows and Linux can be downloaded from [Releases](https://

You can also download the latest official release from [niftools/nifskope](https://github.com/niftools/nifskope/releases), or development builds from [hexabits/nifskope](https://github.com/hexabits/nifskope/releases).

**Note:** running NifSkope under Wayland on Linux may require setting the QT\_QPA\_PLATFORM environment variable to "xcb":
**Notes:**

Running NifSkope under Wayland on Linux may require setting the QT\_QPA\_PLATFORM environment variable to "xcb":

QT_QPA_PLATFORM=xcb ./NifSkope

The resource manager in this version of NifSkope is optimized for PCs with solid-state drives. While hard disk drives generally also work, if the number of loose resources is large, load times can be significantly shorter on an SSD when the data is not cached yet by the operating system.

#### Building from source code

Compiling NifSkope requires Qt 5.15. On Windows, [MSYS2](https://www.msys2.org/) can be used for building. After running the MSYS2 installer, use the following commands in the MSYS2-UCRT64 shell to install required packages:

pacman -S base-devel mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d mingw-w64-ucrt-x86_64-qt5-imageformats
pacman -S mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-3d
pacman -S mingw-w64-ucrt-x86_64-qt5-imageformats mingw-w64-ucrt-x86_64-qt5-tools
pacman -S git

All installed MSYS2 packages can be updated anytime later by running the command '**pacman -Syu**'. To download the complete NifSkope source code, use '**git clone**' as follows:
Expand All @@ -28,6 +33,7 @@ All installed MSYS2 packages can be updated anytime later by running the command

Finally, run '**qmake**' and then '**make**' in MSYS2-UCRT64 to build the source code (the -j 8 option sets the number of processes to run in parallel). The resulting binaries and required DLL files and resources are placed under '**release**'.

cd nifskope
qmake NifSkope.pro
make -j 8

Expand Down
1 change: 0 additions & 1 deletion build/docsys
Submodule docsys deleted from 0ffd95
17 changes: 17 additions & 0 deletions build/docsys/.project
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>nifdocsys</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
1 change: 1 addition & 0 deletions build/docsys/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__all__ = ["nifxml"]
27 changes: 27 additions & 0 deletions build/docsys/doc/docsys.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
hr { border: 1px; color: black; background: black; height: 1px; }
body { font-family: Verdana, Arial, Helvetica, sans-serif; }
p, td, th, div, pre, li { color: black; font-size: 10pt; }
td { vertical-align: text-top; }
a { color: #006699; text-decoration: none;}
a:link { color: #006699; text-decoration: none;}
a:visited { color: #006699; text-decoration: none;}
a:active { text-decoration: none;}
a:hover { color: #DD6900; text-decoration: underline;}

th { font-weight: bold; color: black; background: #D3DCE3}
h1 { text-align: center; color: black; background: #FF6600; }
h2 { text-align: center; color: black; background: #FFCC33; }
h3 { text-align: left; color: black; background: #FFCC66; }
a:link { text-decoration: none; color: #006699; background: transparent; }
a:visited { text-decoration: none; color: #006699; background: transparent; }
a:hover { text-decoration: underline; color: #DD6900; background: transparent; }
a:link.nav { color: #000000; background: transparent; }
a:visited.nav { color: #000000; background: transparent; }
a:hover.nav { color: #FF0000; background: transparent; }
.nav { color: #000000; background: transparent; }
tr.reg0 { background: #CCCCCC; color: black; }
tr.reg1 { background: #DDDDDD; color: black; }
tr.inact0 { background: #CCAAAA; color: black; }
tr.inact1 { background: #DDBBBB; color: black; }
tr.extrnl { background: #AADDAA; color: black; }

Binary file added build/docsys/doc/favicon.ico
Binary file not shown.
3 changes: 3 additions & 0 deletions build/docsys/epydoc.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
set PATH=%PATH%;C:\Program Files\Python24

python -c "import sys, os.path; from os.path import join; sys.path = [ join(sys.prefix, 'Lib', 'site-packages', 'epydoc') ] + sys.path; script_path = os.path.abspath(sys.path[0]); sys.path = [p for p in sys.path if os.path.abspath(p) != script_path]; from epydoc.gui import gui; gui()"
Loading

0 comments on commit f81eb3c

Please sign in to comment.