├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── pull_request_template.md └── workflows │ ├── build-nabla.yml │ └── run-nsc.yml ├── .gitignore ├── .gitmodules ├── .vsconfig ├── 3rdparty ├── CMakeLists.txt ├── KHR │ └── khrplatform.h ├── aesGladman │ ├── Readme.txt │ ├── aes.h │ ├── aes_ni.c │ ├── aes_ni.h │ ├── aescrypt.c │ ├── aeskey.c │ ├── aesopt.h │ ├── aestab.c │ ├── aestab.h │ ├── brg_endian.h │ ├── brg_types.h │ ├── fileenc.c │ ├── fileenc.h │ ├── hmac.c │ ├── hmac.h │ ├── prng.c │ ├── prng.h │ ├── pwd2key.c │ ├── pwd2key.h │ ├── sha1.c │ ├── sha1.h │ └── sha2.h ├── boost │ ├── CMakeLists.txt │ └── dep │ │ └── wave.cmake ├── dxc │ ├── CMakeLists.txt │ ├── Readme.md │ └── test │ │ └── test.cpp ├── lzma │ ├── Asm │ │ ├── arm │ │ │ └── 7zCrcOpt.asm │ │ └── x86 │ │ │ ├── 7zAsm.asm │ │ │ ├── 7zCrcOpt.asm │ │ │ ├── AesOpt.asm │ │ │ ├── LzmaDecOpt.asm │ │ │ └── XzCrc64Opt.asm │ ├── C │ │ ├── 7z.h │ │ ├── 7zAlloc.c │ │ ├── 7zAlloc.h │ │ ├── 7zArcIn.c │ │ ├── 7zBuf.c │ │ ├── 7zBuf.h │ │ ├── 7zBuf2.c │ │ ├── 7zCrc.c │ │ ├── 7zCrc.h │ │ ├── 7zCrcOpt.c │ │ ├── 7zDec.c │ │ ├── 7zFile.c │ │ ├── 7zFile.h │ │ ├── 7zStream.c │ │ ├── 7zTypes.h │ │ ├── 7zVersion.h │ │ ├── 7zVersion.rc │ │ ├── Aes.c │ │ ├── Aes.h │ │ ├── AesOpt.c │ │ ├── Alloc.c │ │ ├── Alloc.h │ │ ├── Bcj2.c │ │ ├── Bcj2.h │ │ ├── Bcj2Enc.c │ │ ├── Bra.c │ │ ├── Bra.h │ │ ├── Bra86.c │ │ ├── BraIA64.c │ │ ├── Compiler.h │ │ ├── CpuArch.c │ │ ├── CpuArch.h │ │ ├── Delta.c │ │ ├── Delta.h │ │ ├── DllSecur.c │ │ ├── DllSecur.h │ │ ├── LzFind.c │ │ ├── LzFind.h │ │ ├── LzFindMt.c │ │ ├── LzFindMt.h │ │ ├── LzHash.h │ │ ├── Lzma2Dec.c │ │ ├── Lzma2Dec.h │ │ ├── Lzma2DecMt.c │ │ ├── Lzma2DecMt.h │ │ ├── Lzma2Enc.c │ │ ├── Lzma2Enc.h │ │ ├── Lzma86.h │ │ ├── Lzma86Dec.c │ │ ├── Lzma86Enc.c │ │ ├── LzmaDec.c │ │ ├── LzmaDec.h │ │ ├── LzmaEnc.c │ │ ├── LzmaEnc.h │ │ ├── LzmaLib.c │ │ ├── LzmaLib.h │ │ ├── MtCoder.c │ │ ├── MtCoder.h │ │ ├── MtDec.c │ │ ├── MtDec.h │ │ ├── Ppmd.h │ │ ├── Ppmd7.c │ │ ├── Ppmd7.h │ │ ├── Ppmd7Dec.c │ │ ├── Ppmd7Enc.c │ │ ├── Precomp.h │ │ ├── RotateDefs.h │ │ ├── Sha256.c │ │ ├── Sha256.h │ │ ├── Sort.c │ │ ├── Sort.h │ │ ├── Threads.c │ │ ├── Threads.h │ │ ├── Util │ │ │ ├── 7z │ │ │ │ ├── 7z.dsp │ │ │ │ ├── 7z.dsw │ │ │ │ ├── 7zMain.c │ │ │ │ ├── Precomp.c │ │ │ │ ├── Precomp.h │ │ │ │ ├── makefile │ │ │ │ └── makefile.gcc │ │ │ ├── Lzma │ │ │ │ ├── LzmaUtil.c │ │ │ │ ├── LzmaUtil.dsp │ │ │ │ ├── LzmaUtil.dsw │ │ │ │ ├── makefile │ │ │ │ └── makefile.gcc │ │ │ ├── LzmaLib │ │ │ │ ├── LzmaLib.def │ │ │ │ ├── LzmaLib.dsp │ │ │ │ ├── LzmaLib.dsw │ │ │ │ ├── LzmaLibExports.c │ │ │ │ ├── makefile │ │ │ │ └── resource.rc │ │ │ └── SfxSetup │ │ │ │ ├── Precomp.c │ │ │ │ ├── Precomp.h │ │ │ │ ├── SfxSetup.c │ │ │ │ ├── SfxSetup.dsp │ │ │ │ ├── SfxSetup.dsw │ │ │ │ ├── makefile │ │ │ │ ├── makefile_con │ │ │ │ ├── resource.rc │ │ │ │ └── setup.ico │ │ ├── Xz.c │ │ ├── Xz.h │ │ ├── XzCrc64.c │ │ ├── XzCrc64.h │ │ ├── XzCrc64Opt.c │ │ ├── XzDec.c │ │ ├── XzEnc.c │ │ ├── XzEnc.h │ │ └── XzIn.c │ ├── CPP │ │ ├── 7zip │ │ │ ├── 7zip.mak │ │ │ ├── Aes.mak │ │ │ ├── Archive │ │ │ │ ├── 7z │ │ │ │ │ ├── 7zCompressionMode.cpp │ │ │ │ │ ├── 7zCompressionMode.h │ │ │ │ │ ├── 7zDecode.cpp │ │ │ │ │ ├── 7zDecode.h │ │ │ │ │ ├── 7zEncode.cpp │ │ │ │ │ ├── 7zEncode.h │ │ │ │ │ ├── 7zExtract.cpp │ │ │ │ │ ├── 7zFolderInStream.cpp │ │ │ │ │ ├── 7zFolderInStream.h │ │ │ │ │ ├── 7zHandler.cpp │ │ │ │ │ ├── 7zHandler.h │ │ │ │ │ ├── 7zHandlerOut.cpp │ │ │ │ │ ├── 7zHeader.cpp │ │ │ │ │ ├── 7zHeader.h │ │ │ │ │ ├── 7zIn.cpp │ │ │ │ │ ├── 7zIn.h │ │ │ │ │ ├── 7zItem.h │ │ │ │ │ ├── 7zOut.cpp │ │ │ │ │ ├── 7zOut.h │ │ │ │ │ ├── 7zProperties.cpp │ │ │ │ │ ├── 7zProperties.h │ │ │ │ │ ├── 7zRegister.cpp │ │ │ │ │ ├── 7zSpecStream.cpp │ │ │ │ │ ├── 7zSpecStream.h │ │ │ │ │ ├── 7zUpdate.cpp │ │ │ │ │ ├── 7zUpdate.h │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── Archive.def │ │ │ │ ├── Archive2.def │ │ │ │ ├── ArchiveExports.cpp │ │ │ │ ├── Common │ │ │ │ │ ├── CoderMixer2.cpp │ │ │ │ │ ├── CoderMixer2.h │ │ │ │ │ ├── DummyOutStream.cpp │ │ │ │ │ ├── DummyOutStream.h │ │ │ │ │ ├── HandlerOut.cpp │ │ │ │ │ ├── HandlerOut.h │ │ │ │ │ ├── InStreamWithCRC.cpp │ │ │ │ │ ├── InStreamWithCRC.h │ │ │ │ │ ├── ItemNameUtils.cpp │ │ │ │ │ ├── ItemNameUtils.h │ │ │ │ │ ├── MultiStream.cpp │ │ │ │ │ ├── MultiStream.h │ │ │ │ │ ├── OutStreamWithCRC.cpp │ │ │ │ │ ├── OutStreamWithCRC.h │ │ │ │ │ ├── ParseProperties.cpp │ │ │ │ │ ├── ParseProperties.h │ │ │ │ │ └── StdAfx.h │ │ │ │ ├── DllExports2.cpp │ │ │ │ ├── IArchive.h │ │ │ │ ├── Icons │ │ │ │ │ └── 7z.ico │ │ │ │ ├── LzmaHandler.cpp │ │ │ │ ├── SplitHandler.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── XzHandler.cpp │ │ │ │ └── XzHandler.h │ │ │ ├── Asm.mak │ │ │ ├── Bundles │ │ │ │ ├── Alone7z │ │ │ │ │ ├── Alone.dsp │ │ │ │ │ ├── Alone.dsw │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ └── resource.rc │ │ │ │ ├── Format7zExtractR │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ └── resource.rc │ │ │ │ ├── Format7zR │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ └── resource.rc │ │ │ │ ├── LzmaCon │ │ │ │ │ ├── LzmaAlone.cpp │ │ │ │ │ ├── LzmaCon.dsp │ │ │ │ │ ├── LzmaCon.dsw │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ ├── makefile.gcc │ │ │ │ │ └── resource.rc │ │ │ │ ├── LzmaSpec │ │ │ │ │ └── LzmaSpec.cpp │ │ │ │ ├── SFXCon │ │ │ │ │ ├── 7z.ico │ │ │ │ │ ├── SFXCon.dsp │ │ │ │ │ ├── SFXCon.dsw │ │ │ │ │ ├── SfxCon.cpp │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ └── resource.rc │ │ │ │ ├── SFXSetup │ │ │ │ │ ├── ExtractCallbackSfx.cpp │ │ │ │ │ ├── ExtractCallbackSfx.h │ │ │ │ │ ├── ExtractEngine.cpp │ │ │ │ │ ├── ExtractEngine.h │ │ │ │ │ ├── SFXSetup.dsp │ │ │ │ │ ├── SFXSetup.dsw │ │ │ │ │ ├── SfxSetup.cpp │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ ├── resource.h │ │ │ │ │ ├── resource.rc │ │ │ │ │ └── setup.ico │ │ │ │ └── SFXWin │ │ │ │ │ ├── 7z.ico │ │ │ │ │ ├── SFXWin.dsp │ │ │ │ │ ├── SFXWin.dsw │ │ │ │ │ ├── SfxWin.cpp │ │ │ │ │ ├── StdAfx.cpp │ │ │ │ │ ├── StdAfx.h │ │ │ │ │ ├── makefile │ │ │ │ │ ├── resource.h │ │ │ │ │ └── resource.rc │ │ │ ├── Common │ │ │ │ ├── CWrappers.cpp │ │ │ │ ├── CWrappers.h │ │ │ │ ├── CreateCoder.cpp │ │ │ │ ├── CreateCoder.h │ │ │ │ ├── FilePathAutoRename.cpp │ │ │ │ ├── FilePathAutoRename.h │ │ │ │ ├── FileStreams.cpp │ │ │ │ ├── FileStreams.h │ │ │ │ ├── FilterCoder.cpp │ │ │ │ ├── FilterCoder.h │ │ │ │ ├── InBuffer.cpp │ │ │ │ ├── InBuffer.h │ │ │ │ ├── InOutTempBuffer.cpp │ │ │ │ ├── InOutTempBuffer.h │ │ │ │ ├── LimitedStreams.cpp │ │ │ │ ├── LimitedStreams.h │ │ │ │ ├── LockedStream.cpp │ │ │ │ ├── LockedStream.h │ │ │ │ ├── MethodId.cpp │ │ │ │ ├── MethodId.h │ │ │ │ ├── MethodProps.cpp │ │ │ │ ├── MethodProps.h │ │ │ │ ├── OffsetStream.cpp │ │ │ │ ├── OffsetStream.h │ │ │ │ ├── OutBuffer.cpp │ │ │ │ ├── OutBuffer.h │ │ │ │ ├── ProgressUtils.cpp │ │ │ │ ├── ProgressUtils.h │ │ │ │ ├── PropId.cpp │ │ │ │ ├── RegisterArc.h │ │ │ │ ├── RegisterCodec.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── StreamBinder.cpp │ │ │ │ ├── StreamBinder.h │ │ │ │ ├── StreamObjects.cpp │ │ │ │ ├── StreamObjects.h │ │ │ │ ├── StreamUtils.cpp │ │ │ │ ├── StreamUtils.h │ │ │ │ ├── UniqBlocks.cpp │ │ │ │ ├── UniqBlocks.h │ │ │ │ ├── VirtThread.cpp │ │ │ │ └── VirtThread.h │ │ │ ├── Compress │ │ │ │ ├── Bcj2Coder.cpp │ │ │ │ ├── Bcj2Coder.h │ │ │ │ ├── Bcj2Register.cpp │ │ │ │ ├── BcjCoder.cpp │ │ │ │ ├── BcjCoder.h │ │ │ │ ├── BcjRegister.cpp │ │ │ │ ├── BranchMisc.cpp │ │ │ │ ├── BranchMisc.h │ │ │ │ ├── BranchRegister.cpp │ │ │ │ ├── ByteSwap.cpp │ │ │ │ ├── CodecExports.cpp │ │ │ │ ├── CopyCoder.cpp │ │ │ │ ├── CopyCoder.h │ │ │ │ ├── CopyRegister.cpp │ │ │ │ ├── DeltaFilter.cpp │ │ │ │ ├── Lzma2Decoder.cpp │ │ │ │ ├── Lzma2Decoder.h │ │ │ │ ├── Lzma2Encoder.cpp │ │ │ │ ├── Lzma2Encoder.h │ │ │ │ ├── Lzma2Register.cpp │ │ │ │ ├── LzmaDecoder.cpp │ │ │ │ ├── LzmaDecoder.h │ │ │ │ ├── LzmaEncoder.cpp │ │ │ │ ├── LzmaEncoder.h │ │ │ │ ├── LzmaRegister.cpp │ │ │ │ ├── PpmdDecoder.cpp │ │ │ │ ├── PpmdDecoder.h │ │ │ │ ├── PpmdEncoder.cpp │ │ │ │ ├── PpmdEncoder.h │ │ │ │ ├── PpmdRegister.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── XzDecoder.cpp │ │ │ │ ├── XzDecoder.h │ │ │ │ ├── XzEncoder.cpp │ │ │ │ └── XzEncoder.h │ │ │ ├── Crc.mak │ │ │ ├── Crc64.mak │ │ │ ├── Crypto │ │ │ │ ├── 7zAes.cpp │ │ │ │ ├── 7zAes.h │ │ │ │ ├── 7zAesRegister.cpp │ │ │ │ ├── MyAes.cpp │ │ │ │ ├── MyAes.h │ │ │ │ ├── MyAesReg.cpp │ │ │ │ ├── RandGen.cpp │ │ │ │ ├── RandGen.h │ │ │ │ └── StdAfx.h │ │ │ ├── GuiCommon.rc │ │ │ ├── Guid.txt │ │ │ ├── ICoder.h │ │ │ ├── IDecl.h │ │ │ ├── IPassword.h │ │ │ ├── IProgress.h │ │ │ ├── IStream.h │ │ │ ├── LzmaDec.mak │ │ │ ├── MyVersion.h │ │ │ ├── MyVersionInfo.rc │ │ │ ├── PropID.h │ │ │ ├── SubBuild.mak │ │ │ └── UI │ │ │ │ ├── Client7z │ │ │ │ ├── Client7z.cpp │ │ │ │ ├── Client7z.dsp │ │ │ │ ├── Client7z.dsw │ │ │ │ ├── StdAfx.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── makefile │ │ │ │ └── resource.rc │ │ │ │ ├── Common │ │ │ │ ├── ArchiveCommandLine.cpp │ │ │ │ ├── ArchiveCommandLine.h │ │ │ │ ├── ArchiveExtractCallback.cpp │ │ │ │ ├── ArchiveExtractCallback.h │ │ │ │ ├── ArchiveName.cpp │ │ │ │ ├── ArchiveName.h │ │ │ │ ├── ArchiveOpenCallback.cpp │ │ │ │ ├── ArchiveOpenCallback.h │ │ │ │ ├── Bench.cpp │ │ │ │ ├── Bench.h │ │ │ │ ├── DefaultName.cpp │ │ │ │ ├── DefaultName.h │ │ │ │ ├── DirItem.h │ │ │ │ ├── EnumDirItems.cpp │ │ │ │ ├── EnumDirItems.h │ │ │ │ ├── ExitCode.h │ │ │ │ ├── Extract.cpp │ │ │ │ ├── Extract.h │ │ │ │ ├── ExtractMode.h │ │ │ │ ├── ExtractingFilePath.cpp │ │ │ │ ├── ExtractingFilePath.h │ │ │ │ ├── HashCalc.cpp │ │ │ │ ├── HashCalc.h │ │ │ │ ├── IFileExtractCallback.h │ │ │ │ ├── LoadCodecs.cpp │ │ │ │ ├── LoadCodecs.h │ │ │ │ ├── OpenArchive.cpp │ │ │ │ ├── OpenArchive.h │ │ │ │ ├── PropIDUtils.cpp │ │ │ │ ├── PropIDUtils.h │ │ │ │ ├── Property.h │ │ │ │ ├── SetProperties.cpp │ │ │ │ ├── SetProperties.h │ │ │ │ ├── SortUtils.cpp │ │ │ │ ├── SortUtils.h │ │ │ │ ├── StdAfx.h │ │ │ │ ├── TempFiles.cpp │ │ │ │ ├── TempFiles.h │ │ │ │ ├── Update.cpp │ │ │ │ ├── Update.h │ │ │ │ ├── UpdateAction.cpp │ │ │ │ ├── UpdateAction.h │ │ │ │ ├── UpdateCallback.cpp │ │ │ │ ├── UpdateCallback.h │ │ │ │ ├── UpdatePair.cpp │ │ │ │ ├── UpdatePair.h │ │ │ │ ├── UpdateProduce.cpp │ │ │ │ ├── UpdateProduce.h │ │ │ │ ├── WorkDir.cpp │ │ │ │ ├── WorkDir.h │ │ │ │ └── ZipRegistry.h │ │ │ │ ├── Console │ │ │ │ ├── BenchCon.cpp │ │ │ │ ├── BenchCon.h │ │ │ │ ├── Console.mak │ │ │ │ ├── Console.manifest │ │ │ │ ├── ConsoleClose.cpp │ │ │ │ ├── ConsoleClose.h │ │ │ │ ├── ExtractCallbackConsole.cpp │ │ │ │ ├── ExtractCallbackConsole.h │ │ │ │ ├── HashCon.cpp │ │ │ │ ├── HashCon.h │ │ │ │ ├── List.cpp │ │ │ │ ├── List.h │ │ │ │ ├── Main.cpp │ │ │ │ ├── MainAr.cpp │ │ │ │ ├── OpenCallbackConsole.cpp │ │ │ │ ├── OpenCallbackConsole.h │ │ │ │ ├── PercentPrinter.cpp │ │ │ │ ├── PercentPrinter.h │ │ │ │ ├── StdAfx.cpp │ │ │ │ ├── StdAfx.h │ │ │ │ ├── UpdateCallbackConsole.cpp │ │ │ │ ├── UpdateCallbackConsole.h │ │ │ │ ├── UserInputUtils.cpp │ │ │ │ ├── UserInputUtils.h │ │ │ │ ├── makefile │ │ │ │ └── resource.rc │ │ │ │ ├── Explorer │ │ │ │ ├── MyMessages.cpp │ │ │ │ └── MyMessages.h │ │ │ │ ├── FileManager │ │ │ │ ├── BrowseDialog.cpp │ │ │ │ ├── BrowseDialog.h │ │ │ │ ├── BrowseDialogRes.h │ │ │ │ ├── ComboDialog.cpp │ │ │ │ ├── ComboDialog.h │ │ │ │ ├── ComboDialogRes.h │ │ │ │ ├── DialogSize.h │ │ │ │ ├── ExtractCallback.cpp │ │ │ │ ├── ExtractCallback.h │ │ │ │ ├── FormatUtils.cpp │ │ │ │ ├── FormatUtils.h │ │ │ │ ├── LangUtils.h │ │ │ │ ├── MyWindowsNew.h │ │ │ │ ├── OverwriteDialog.cpp │ │ │ │ ├── OverwriteDialog.h │ │ │ │ ├── OverwriteDialog.rc │ │ │ │ ├── OverwriteDialogRes.h │ │ │ │ ├── PasswordDialog.cpp │ │ │ │ ├── PasswordDialog.h │ │ │ │ ├── PasswordDialog.rc │ │ │ │ ├── PasswordDialogRes.h │ │ │ │ ├── ProgressDialog.cpp │ │ │ │ ├── ProgressDialog.h │ │ │ │ ├── ProgressDialog.rc │ │ │ │ ├── ProgressDialog2.cpp │ │ │ │ ├── ProgressDialog2.h │ │ │ │ ├── ProgressDialog2.rc │ │ │ │ ├── ProgressDialog2Res.h │ │ │ │ ├── ProgressDialog2a.rc │ │ │ │ ├── ProgressDialogRes.h │ │ │ │ ├── PropertyName.cpp │ │ │ │ ├── PropertyName.h │ │ │ │ ├── PropertyNameRes.h │ │ │ │ ├── SysIconUtils.cpp │ │ │ │ ├── SysIconUtils.h │ │ │ │ ├── resource.h │ │ │ │ └── resourceGui.h │ │ │ │ └── GUI │ │ │ │ ├── Extract.rc │ │ │ │ ├── ExtractDialog.cpp │ │ │ │ ├── ExtractDialog.h │ │ │ │ ├── ExtractDialog.rc │ │ │ │ ├── ExtractDialogRes.h │ │ │ │ ├── ExtractGUI.cpp │ │ │ │ ├── ExtractGUI.h │ │ │ │ ├── ExtractRes.h │ │ │ │ ├── HashGUI.h │ │ │ │ └── resource2.h │ │ ├── Build.mak │ │ ├── Common │ │ │ ├── AutoPtr.h │ │ │ ├── CRC.cpp │ │ │ ├── C_FileIO.cpp │ │ │ ├── C_FileIO.h │ │ │ ├── ComTry.h │ │ │ ├── CommandLineParser.cpp │ │ │ ├── CommandLineParser.h │ │ │ ├── Common.h │ │ │ ├── CrcReg.cpp │ │ │ ├── Defs.h │ │ │ ├── DynamicBuffer.h │ │ │ ├── IntToString.cpp │ │ │ ├── IntToString.h │ │ │ ├── Lang.h │ │ │ ├── ListFileUtils.cpp │ │ │ ├── ListFileUtils.h │ │ │ ├── MyBuffer.h │ │ │ ├── MyBuffer2.h │ │ │ ├── MyCom.h │ │ │ ├── MyException.h │ │ │ ├── MyGuidDef.h │ │ │ ├── MyInitGuid.h │ │ │ ├── MyLinux.h │ │ │ ├── MyString.cpp │ │ │ ├── MyString.h │ │ │ ├── MyTypes.h │ │ │ ├── MyUnknown.h │ │ │ ├── MyVector.cpp │ │ │ ├── MyVector.h │ │ │ ├── MyWindows.cpp │ │ │ ├── MyWindows.h │ │ │ ├── NewHandler.cpp │ │ │ ├── NewHandler.h │ │ │ ├── Sha256Reg.cpp │ │ │ ├── StdAfx.h │ │ │ ├── StdInStream.cpp │ │ │ ├── StdInStream.h │ │ │ ├── StdOutStream.cpp │ │ │ ├── StdOutStream.h │ │ │ ├── StringConvert.cpp │ │ │ ├── StringConvert.h │ │ │ ├── StringToInt.cpp │ │ │ ├── StringToInt.h │ │ │ ├── TextConfig.cpp │ │ │ ├── TextConfig.h │ │ │ ├── UTFConvert.cpp │ │ │ ├── UTFConvert.h │ │ │ ├── Wildcard.cpp │ │ │ ├── Wildcard.h │ │ │ ├── XzCrc64Init.cpp │ │ │ └── XzCrc64Reg.cpp │ │ └── Windows │ │ │ ├── COM.h │ │ │ ├── CommonDialog.cpp │ │ │ ├── CommonDialog.h │ │ │ ├── Control │ │ │ ├── ComboBox.cpp │ │ │ ├── ComboBox.h │ │ │ ├── CommandBar.h │ │ │ ├── Dialog.cpp │ │ │ ├── Dialog.h │ │ │ ├── Edit.h │ │ │ ├── ImageList.cpp │ │ │ ├── ImageList.h │ │ │ ├── ListView.cpp │ │ │ ├── ListView.h │ │ │ ├── ProgressBar.h │ │ │ ├── PropertyPage.cpp │ │ │ ├── PropertyPage.h │ │ │ ├── ReBar.h │ │ │ ├── Static.h │ │ │ ├── StatusBar.h │ │ │ ├── StdAfx.h │ │ │ ├── ToolBar.h │ │ │ ├── Trackbar.h │ │ │ ├── Window2.cpp │ │ │ └── Window2.h │ │ │ ├── DLL.cpp │ │ │ ├── DLL.h │ │ │ ├── Defs.h │ │ │ ├── ErrorMsg.cpp │ │ │ ├── ErrorMsg.h │ │ │ ├── FileDir.cpp │ │ │ ├── FileDir.h │ │ │ ├── FileFind.cpp │ │ │ ├── FileFind.h │ │ │ ├── FileIO.cpp │ │ │ ├── FileIO.h │ │ │ ├── FileLink.cpp │ │ │ ├── FileMapping.cpp │ │ │ ├── FileMapping.h │ │ │ ├── FileName.cpp │ │ │ ├── FileName.h │ │ │ ├── FileSystem.cpp │ │ │ ├── FileSystem.h │ │ │ ├── Handle.h │ │ │ ├── MemoryLock.cpp │ │ │ ├── MemoryLock.h │ │ │ ├── NtCheck.h │ │ │ ├── PropVariant.cpp │ │ │ ├── PropVariant.h │ │ │ ├── PropVariantConv.cpp │ │ │ ├── PropVariantConv.h │ │ │ ├── Registry.cpp │ │ │ ├── Registry.h │ │ │ ├── ResourceString.cpp │ │ │ ├── ResourceString.h │ │ │ ├── SecurityUtils.cpp │ │ │ ├── SecurityUtils.h │ │ │ ├── Shell.cpp │ │ │ ├── Shell.h │ │ │ ├── StdAfx.h │ │ │ ├── Synchronization.cpp │ │ │ ├── Synchronization.h │ │ │ ├── System.cpp │ │ │ ├── System.h │ │ │ ├── Thread.h │ │ │ ├── TimeUtils.cpp │ │ │ ├── TimeUtils.h │ │ │ ├── Window.cpp │ │ │ └── Window.h │ ├── CS │ │ └── 7zip │ │ │ ├── Common │ │ │ ├── CRC.cs │ │ │ ├── CommandLineParser.cs │ │ │ ├── InBuffer.cs │ │ │ └── OutBuffer.cs │ │ │ ├── Compress │ │ │ ├── LZ │ │ │ │ ├── IMatchFinder.cs │ │ │ │ ├── LzBinTree.cs │ │ │ │ ├── LzInWindow.cs │ │ │ │ └── LzOutWindow.cs │ │ │ ├── LZMA │ │ │ │ ├── LzmaBase.cs │ │ │ │ ├── LzmaDecoder.cs │ │ │ │ └── LzmaEncoder.cs │ │ │ ├── LzmaAlone │ │ │ │ ├── LzmaAlone.cs │ │ │ │ ├── LzmaAlone.csproj │ │ │ │ ├── LzmaAlone.sln │ │ │ │ ├── LzmaBench.cs │ │ │ │ └── Properties │ │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ │ ├── Resources.cs │ │ │ │ │ └── Settings.cs │ │ │ └── RangeCoder │ │ │ │ ├── RangeCoder.cs │ │ │ │ ├── RangeCoderBit.cs │ │ │ │ └── RangeCoderBitTree.cs │ │ │ └── ICoder.cs │ ├── DOC │ │ ├── 7zC.txt │ │ ├── 7zFormat.txt │ │ ├── Methods.txt │ │ ├── installer.txt │ │ ├── lzma-history.txt │ │ ├── lzma-sdk.txt │ │ ├── lzma-specification.txt │ │ └── lzma.txt │ └── Java │ │ └── SevenZip │ │ ├── CRC.java │ │ ├── Compression │ │ ├── LZ │ │ │ ├── BinTree.java │ │ │ ├── InWindow.java │ │ │ └── OutWindow.java │ │ ├── LZMA │ │ │ ├── Base.java │ │ │ ├── Decoder.java │ │ │ └── Encoder.java │ │ └── RangeCoder │ │ │ ├── BitTreeDecoder.java │ │ │ ├── BitTreeEncoder.java │ │ │ ├── Decoder.java │ │ │ └── Encoder.java │ │ ├── ICodeProgress.java │ │ ├── LzmaAlone.java │ │ └── LzmaBench.java ├── ngfx │ └── ngfx.cmake ├── pstl │ ├── CMakeLists.txt │ └── oneDPL │ │ └── CMakeLists.txt └── renderdoc │ └── renderdoc_app.h ├── CMakeLists.txt ├── CMakePresets.json ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── android ├── AndroidManifest.xml └── Loader.java ├── artifacts └── CMakeLists.txt ├── cmake ├── FindGitBash.cmake ├── FindNabla.cmake ├── FindOptiX.cmake ├── FindPCRE.cmake ├── Findnmake.cmake ├── adjust │ ├── definitions.cmake │ ├── flags.cmake │ └── template │ │ ├── unix │ │ ├── android.cmake │ │ ├── clang.cmake │ │ ├── common.cmake │ │ └── gnu.cmake │ │ └── vendor │ │ ├── CXX_Clang.cmake │ │ ├── CXX_MSVC.cmake │ │ ├── C_Clang.cmake │ │ ├── C_MSVC.cmake │ │ └── impl │ │ ├── Clang.cmake │ │ ├── MSVC.cmake │ │ ├── frontend │ │ └── MSVC.cmake │ │ └── reset.cmake ├── build │ ├── AddNablaModule.cmake │ └── info.cmake ├── common.cmake ├── config │ └── msvc │ │ └── application.exe.config ├── cpack │ ├── find │ │ ├── compoment │ │ │ └── template.cmake │ │ ├── config │ │ │ └── template.cmake │ │ ├── licence │ │ │ └── template.cmake │ │ └── nabla.cmake │ ├── package.cmake │ └── pipeline.groovy ├── install │ └── nbl │ │ └── sharedDefines.h.in ├── manifest │ └── msvc │ │ └── devshgraphicsprogramming.nabla.manifest ├── python │ └── project │ │ └── vs │ │ └── pynabla.pyproj.cmake ├── scripts │ └── nbl │ │ ├── applicationMSVCConfig.cmake │ │ ├── nablaAndroidManifest.cmake │ │ ├── nablaBuildInfo.cmake │ │ ├── nablaDefines.cmake │ │ ├── nablaLoaderJava.cmake │ │ ├── nablaMSVCManifest.cmake │ │ └── projectTargetName.cmake ├── submodules │ └── update.cmake └── toolchains │ └── android │ └── build.cmake ├── compose.yml ├── docker ├── Dockerfile ├── ci-windows.env ├── compose.yml ├── git-cache │ └── Dockerfile ├── ninja.env └── update.cmd ├── docs ├── CMakeLists.txt ├── Doxyfile.in └── build │ ├── ANDROID.md │ ├── LINUX.md │ └── WINDOWS.md ├── include ├── CConcurrentObjectCache.h ├── CObjectCache.h ├── ICameraSceneNode.h ├── ISceneNodeAnimatorCameraFPS.h ├── ISceneNodeAnimatorCameraMaya.h ├── ISceneNodeAnimatorCameraModifiedMaya.h ├── SColor.h ├── SIMDswizzle.h ├── aabbox3d.h ├── dimension2d.h ├── line3d.h ├── matrix3x4SIMD.h ├── matrix3x4SIMD_impl.h ├── matrix4SIMD.h ├── matrix4SIMD_impl.h ├── nabla.h ├── nbl │ ├── application_templates │ │ ├── BasicMultiQueueApplication.hpp │ │ ├── MonoAssetManagerAndBuiltinResourceApplication.hpp │ │ ├── MonoDeviceApplication.hpp │ │ └── MonoSystemMonoLoggerApplication.hpp │ ├── asset │ │ ├── ECommonEnums.h │ │ ├── IAccelerationStructure.h │ │ ├── IAnimationLibrary.h │ │ ├── IAsset.h │ │ ├── IAssetManager.h │ │ ├── IBuffer.h │ │ ├── IBufferView.h │ │ ├── ICPUAccelerationStructure.h │ │ ├── ICPUAnimationLibrary.h │ │ ├── ICPUBuffer.h │ │ ├── ICPUBufferView.h │ │ ├── ICPUComputePipeline.h │ │ ├── ICPUDescriptorSet.h │ │ ├── ICPUDescriptorSetLayout.h │ │ ├── ICPUFramebuffer.h │ │ ├── ICPUGraphicsPipeline.h │ │ ├── ICPUImage.h │ │ ├── ICPUImageView.h │ │ ├── ICPUMesh.h │ │ ├── ICPUMeshBuffer.h │ │ ├── ICPUPipeline.h │ │ ├── ICPUPipelineCache.h │ │ ├── ICPUPipelineLayout.h │ │ ├── ICPURenderpass.h │ │ ├── ICPURenderpassIndependentPipeline.h │ │ ├── ICPUSampler.h │ │ ├── ICPUShader.h │ │ ├── ICPUSkeleton.h │ │ ├── IDescriptor.h │ │ ├── IDescriptorSet.h │ │ ├── IDescriptorSetLayout.h │ │ ├── IFramebuffer.h │ │ ├── IGraphicsPipeline.h │ │ ├── IImage.h │ │ ├── IImageView.h │ │ ├── IMesh.h │ │ ├── IMeshBuffer.h │ │ ├── IPipeline.h │ │ ├── IPipelineLayout.h │ │ ├── IPreHashed.h │ │ ├── IRayTracingPipeline.h │ │ ├── IRenderpass.h │ │ ├── IRenderpassIndependentPipeline.h │ │ ├── ISampler.h │ │ ├── IShader.h │ │ ├── ISkeleton.h │ │ ├── RasterizationStates.h │ │ ├── asset.h │ │ ├── asset_utils.h │ │ ├── compile_config.h │ │ ├── filters │ │ │ ├── CBasicImageFilterCommon.h │ │ │ ├── CBlitImageFilter.h │ │ │ ├── CBlitUtilities.h │ │ │ ├── CBufferToImageCopyImageFilter.h │ │ │ ├── CConvertFormatImageFilter.h │ │ │ ├── CCopyImageFilter.h │ │ │ ├── CFillImageFilter.h │ │ │ ├── CFlattenRegionsImageFilter.h │ │ │ ├── CMatchedSizeInOutImageFilterCommon.h │ │ │ ├── CMipMapGenerationImageFilter.h │ │ │ ├── CNormalMapToDerivativeFilter.h │ │ │ ├── CPaddedCopyImageFilter.h │ │ │ ├── CRegionBlockFunctorFilter.h │ │ │ ├── CSummedAreaTableImageFilter.h │ │ │ ├── CSwizzleAndConvertImageFilter.h │ │ │ ├── CSwizzleableAndDitherableFilterBase.h │ │ │ ├── IImageFilter.h │ │ │ ├── NormalizationStates.h │ │ │ ├── Swizzles.h │ │ │ ├── dithering │ │ │ │ ├── CBayerMatrixDither.h │ │ │ │ ├── CDither.h │ │ │ │ ├── CPrecomputedDither.h │ │ │ │ ├── CWhiteNoiseDither.h │ │ │ │ └── IDither.h │ │ │ └── kernels │ │ │ │ ├── CChannelIndependentWeightFunction.h │ │ │ │ ├── CConvolutionWeightFunction.h │ │ │ │ └── WeightFunctions.h │ │ ├── format │ │ │ ├── EColorSpace.h │ │ │ ├── EFormat.h │ │ │ ├── convertColor.h │ │ │ ├── decodePixels.h │ │ │ ├── encodePixels.h │ │ │ └── impl │ │ │ │ ├── EFormat_getBitsPerChannel.h │ │ │ │ ├── EFormat_getBlockDimensions.h │ │ │ │ ├── EFormat_getFormatChannelCount.h │ │ │ │ ├── EFormat_getFormatClass.h │ │ │ │ ├── EFormat_getFormatClassBlockBytesize.h │ │ │ │ └── EFormat_getTexelOrBlockBytesize.h │ │ ├── interchange │ │ │ ├── IAssetLoader.h │ │ │ ├── IAssetWriter.h │ │ │ ├── IImageAssetHandlerBase.h │ │ │ ├── IImageLoader.h │ │ │ ├── IImageWriter.h │ │ │ ├── IRenderpassIndependentPipelineLoader.h │ │ │ └── SAssetBundle.h │ │ ├── material_compiler │ │ │ ├── CMaterialCompilerGLSLBackendCommon.h │ │ │ ├── CMaterialCompilerGLSLRasterBackend.h │ │ │ ├── IFrontend.h │ │ │ └── IR.h │ │ ├── metadata │ │ │ ├── CDerivativeMapMetadata.h │ │ │ ├── CGLTFMetadata.h │ │ │ ├── CGLTFPipelineMetadata.h │ │ │ ├── CMTLMetadata.h │ │ │ ├── COBJMetadata.h │ │ │ ├── COpenEXRMetadata.h │ │ │ ├── CPLYMetadata.h │ │ │ ├── CSTLMetadata.h │ │ │ ├── IAssetMetadata.h │ │ │ ├── IImageMetadata.h │ │ │ ├── IImageViewMetadata.h │ │ │ ├── IMeshMetadata.h │ │ │ └── IRenderpassIndependentPipelineMetadata.h │ │ └── utils │ │ │ ├── CCPUMeshPackerV1.h │ │ │ ├── CCPUMeshPackerV2.h │ │ │ ├── CCompilerSet.h │ │ │ ├── CDerivativeMapCreator.h │ │ │ ├── CDirQuantCacheBase.h │ │ │ ├── CForsythVertexCacheOptimizer.h │ │ │ ├── CGLSLCompiler.h │ │ │ ├── CHLSLCompiler.h │ │ │ ├── CQuantNormalCache.h │ │ │ ├── CQuantQuaternionCache.h │ │ │ ├── CSPIRVIntrospector.h │ │ │ ├── IGeometryCreator.h │ │ │ ├── IMeshManipulator.h │ │ │ ├── IMeshPacker.h │ │ │ ├── IMeshPackerV2.h │ │ │ ├── ISPIRVOptimizer.h │ │ │ ├── IShaderCompiler.h │ │ │ ├── phmap_deserialization.h │ │ │ └── phmap_serialization.h │ ├── builtin │ │ ├── cache │ │ │ └── ICacheKeyCreator.h │ │ ├── glsl │ │ │ ├── algorithm.glsl │ │ │ ├── barycentric │ │ │ │ ├── extensions.glsl │ │ │ │ ├── frag.glsl │ │ │ │ ├── utils.glsl │ │ │ │ └── vert.glsl │ │ │ ├── blit │ │ │ │ ├── alpha_test │ │ │ │ │ ├── alpha_test.glsl │ │ │ │ │ └── descriptors.glsl │ │ │ │ ├── blit │ │ │ │ │ ├── blit.glsl │ │ │ │ │ └── descriptors.glsl │ │ │ │ ├── default_compute_alpha_test.comp │ │ │ │ ├── default_compute_blit.comp │ │ │ │ ├── default_compute_common.comp │ │ │ │ ├── default_compute_normalization.comp │ │ │ │ ├── formats_encode.glsl │ │ │ │ ├── multi_dimensional_array_addressing.glsl │ │ │ │ ├── normalization │ │ │ │ │ ├── descriptors.glsl │ │ │ │ │ ├── normalization.glsl │ │ │ │ │ └── shared_normalization.glsl │ │ │ │ └── parameters.glsl │ │ │ ├── bump_mapping │ │ │ │ ├── fragment.glsl │ │ │ │ └── utils.glsl │ │ │ ├── bxdf │ │ │ │ ├── brdf │ │ │ │ │ ├── diffuse │ │ │ │ │ │ ├── fresnel_correction.glsl │ │ │ │ │ │ ├── lambert.glsl │ │ │ │ │ │ └── oren_nayar.glsl │ │ │ │ │ └── specular │ │ │ │ │ │ ├── beckmann.glsl │ │ │ │ │ │ ├── blinn_phong.glsl │ │ │ │ │ │ └── ggx.glsl │ │ │ │ ├── bsdf │ │ │ │ │ ├── diffuse │ │ │ │ │ │ └── lambert.glsl │ │ │ │ │ └── specular │ │ │ │ │ │ ├── beckmann.glsl │ │ │ │ │ │ ├── common.glsl │ │ │ │ │ │ ├── dielectric.glsl │ │ │ │ │ │ └── ggx.glsl │ │ │ │ ├── common.glsl │ │ │ │ ├── common_samples.glsl │ │ │ │ ├── fresnel.glsl │ │ │ │ ├── geom │ │ │ │ │ └── smith │ │ │ │ │ │ ├── beckmann.glsl │ │ │ │ │ │ ├── common.glsl │ │ │ │ │ │ └── ggx.glsl │ │ │ │ └── ndf │ │ │ │ │ ├── beckmann.glsl │ │ │ │ │ ├── blinn_phong.glsl │ │ │ │ │ ├── common.glsl │ │ │ │ │ └── ggx.glsl │ │ │ ├── colorspace │ │ │ │ ├── EOTF.glsl │ │ │ │ ├── OETF.glsl │ │ │ │ ├── decodeCIEXYZ.glsl │ │ │ │ └── encodeCIEXYZ.glsl │ │ │ ├── culling_lod_selection │ │ │ │ ├── dispatch_indirect_params.glsl │ │ │ │ ├── draw_instance_count_scan_override.glsl │ │ │ │ ├── input_descriptor_set.glsl │ │ │ │ ├── instance_cull_and_lod_select.comp │ │ │ │ ├── instance_draw_count_scan_override.glsl │ │ │ │ ├── instance_draw_cull.comp │ │ │ │ ├── instance_ref_counting_sort_scatter.comp │ │ │ │ ├── output_descriptor_modifiers.glsl │ │ │ │ ├── output_descriptor_set.glsl │ │ │ │ └── potentially_visible_instance_draw_struct.glsl │ │ │ ├── ext │ │ │ │ ├── DepthPyramidGenerator │ │ │ │ │ ├── common.glsl │ │ │ │ │ ├── depth_pyramid_generator_impl.glsl │ │ │ │ │ ├── push_constants_struct_common.h │ │ │ │ │ └── virtual_work_group.glsl │ │ │ │ ├── FFT │ │ │ │ │ ├── default_compute_fft.comp │ │ │ │ │ ├── fft.glsl │ │ │ │ │ ├── parameters.glsl │ │ │ │ │ ├── parameters_struct.glsl │ │ │ │ │ └── types.glsl │ │ │ │ ├── LumaMeter │ │ │ │ │ ├── common.glsl │ │ │ │ │ └── impl.glsl │ │ │ │ ├── MitsubaLoader │ │ │ │ │ ├── instance_data_descriptor.glsl │ │ │ │ │ ├── instance_data_struct.glsl │ │ │ │ │ └── material_compiler_compatibility_impl.glsl │ │ │ │ ├── OIT │ │ │ │ │ ├── insert_node.glsl │ │ │ │ │ ├── oit.glsl │ │ │ │ │ └── resolve.frag │ │ │ │ ├── RadeonRays │ │ │ │ │ ├── intersection.glsl │ │ │ │ │ └── ray.glsl │ │ │ │ ├── RadixSort │ │ │ │ │ ├── default_histogram.comp │ │ │ │ │ ├── default_scatter.comp │ │ │ │ │ ├── parameters.glsl │ │ │ │ │ ├── parameters_struct.glsl │ │ │ │ │ └── radix_sort.glsl │ │ │ │ └── ToneMapper │ │ │ │ │ └── operators.glsl │ │ │ ├── format │ │ │ │ ├── constants.glsl │ │ │ │ ├── decode.glsl │ │ │ │ └── encode.glsl │ │ │ ├── ieee754.glsl │ │ │ ├── limits │ │ │ │ └── numeric.glsl │ │ │ ├── loader │ │ │ │ └── mtl │ │ │ │ │ └── common.glsl │ │ │ ├── lod_library │ │ │ │ ├── descriptor_set.glsl │ │ │ │ └── structs.glsl │ │ │ ├── macros.glsl │ │ │ ├── material_compiler │ │ │ │ ├── common.glsl │ │ │ │ ├── common_declarations.glsl │ │ │ │ ├── common_invariant_declarations.glsl │ │ │ │ └── rasterization │ │ │ │ │ └── impl.glsl │ │ │ ├── math │ │ │ │ ├── complex.glsl │ │ │ │ ├── constants.glsl │ │ │ │ ├── functions.glsl │ │ │ │ ├── quaternions.glsl │ │ │ │ └── typeless_arithmetic.glsl │ │ │ ├── property_pool │ │ │ │ ├── copy.comp │ │ │ │ └── transfer.glsl │ │ │ ├── random │ │ │ │ └── xoroshiro.glsl │ │ │ ├── sampling │ │ │ │ ├── bilinear.glsl │ │ │ │ ├── box_muller_transform.glsl │ │ │ │ ├── concentric_mapping.glsl │ │ │ │ ├── cos_weighted.glsl │ │ │ │ ├── linear.glsl │ │ │ │ ├── projected_spherical_triangle.glsl │ │ │ │ ├── quantized_sequence.glsl │ │ │ │ ├── spherical_rectangle.glsl │ │ │ │ └── spherical_triangle.glsl │ │ │ ├── scan │ │ │ │ ├── declarations.glsl │ │ │ │ ├── default_scheduler.glsl │ │ │ │ ├── descriptors.glsl │ │ │ │ ├── direct.comp │ │ │ │ ├── indirect.comp │ │ │ │ ├── parameters_struct.glsl │ │ │ │ └── virtual_workgroup.glsl │ │ │ ├── scanning_append │ │ │ │ └── scanning_append.glsl │ │ │ ├── scene │ │ │ │ ├── animation.glsl │ │ │ │ ├── keyframe.glsl │ │ │ │ └── node.glsl │ │ │ ├── shapes │ │ │ │ ├── aabb.glsl │ │ │ │ ├── frustum.glsl │ │ │ │ ├── rectangle.glsl │ │ │ │ └── triangle.glsl │ │ │ ├── skinning │ │ │ │ ├── cache_descriptor_set.glsl │ │ │ │ ├── cache_update.comp │ │ │ │ ├── debug.vert │ │ │ │ ├── linear.glsl │ │ │ │ ├── render_descriptor_set.glsl │ │ │ │ └── update_descriptor_set.glsl │ │ │ ├── subgroup │ │ │ │ ├── arithmetic_portability.glsl │ │ │ │ ├── arithmetic_portability_impl.glsl │ │ │ │ ├── basic_portability.glsl │ │ │ │ ├── fft.glsl │ │ │ │ ├── shared_arithmetic_portability.glsl │ │ │ │ ├── shared_shuffle_portability.glsl │ │ │ │ └── shuffle_portability.glsl │ │ │ ├── transform_tree │ │ │ │ ├── debug.vert │ │ │ │ ├── global_transform_and_normal_matrix_update.comp │ │ │ │ ├── global_transform_update.comp │ │ │ │ ├── global_transform_update_common.glsl │ │ │ │ ├── global_transform_update_descriptor_set.glsl │ │ │ │ ├── modification_request_range.glsl │ │ │ │ ├── pool_descriptor_set.glsl │ │ │ │ ├── relative_transform_modification.glsl │ │ │ │ ├── relative_transform_update.comp │ │ │ │ ├── relative_transform_update_common.glsl │ │ │ │ ├── relative_transform_update_descriptor_set.glsl │ │ │ │ └── render_descriptor_set.glsl │ │ │ ├── utils │ │ │ │ ├── common.glsl │ │ │ │ ├── compressed_normal_matrix_t.glsl │ │ │ │ ├── culling.glsl │ │ │ │ ├── morton.glsl │ │ │ │ ├── normal_decode.glsl │ │ │ │ ├── normal_encode.glsl │ │ │ │ └── transform.glsl │ │ │ ├── virtual_geometry │ │ │ │ ├── descriptors.glsl │ │ │ │ ├── virtual_attribute.glsl │ │ │ │ └── virtual_attribute_fetch.glsl │ │ │ └── workgroup │ │ │ │ ├── arithmetic.glsl │ │ │ │ ├── ballot.glsl │ │ │ │ ├── basic.glsl │ │ │ │ ├── fft.glsl │ │ │ │ ├── shared_arithmetic.glsl │ │ │ │ ├── shared_ballot.glsl │ │ │ │ └── shared_fft.glsl │ │ ├── hlsl │ │ │ ├── acceleration_structures.hlsl │ │ │ ├── algorithm.hlsl │ │ │ ├── array_accessors.hlsl │ │ │ ├── barycentric │ │ │ │ └── utils.hlsl │ │ │ ├── bda │ │ │ │ ├── __ptr.hlsl │ │ │ │ ├── __ref.hlsl │ │ │ │ ├── bda_accessor.hlsl │ │ │ │ ├── legacy_bda_accessor.hlsl │ │ │ │ └── struct_declare.hlsl │ │ │ ├── binding_info.hlsl │ │ │ ├── bit.hlsl │ │ │ ├── blit │ │ │ │ ├── alpha_test.hlsl │ │ │ │ ├── common.hlsl │ │ │ │ ├── compute_blit.hlsl │ │ │ │ ├── default_blit.comp.hlsl │ │ │ │ ├── default_normalize.comp.hlsl │ │ │ │ ├── normalization.hlsl │ │ │ │ └── parameters.hlsl │ │ │ ├── bxdf │ │ │ │ ├── common.hlsl │ │ │ │ ├── fresnel.hlsl │ │ │ │ ├── reflection.hlsl │ │ │ │ └── transmission.hlsl │ │ │ ├── colorspace │ │ │ │ ├── EOTF.hlsl │ │ │ │ ├── OETF.hlsl │ │ │ │ ├── decodeCIEXYZ.hlsl │ │ │ │ └── encodeCIEXYZ.hlsl │ │ │ ├── complex.hlsl │ │ │ ├── concepts.hlsl │ │ │ ├── concepts │ │ │ │ ├── __end.hlsl │ │ │ │ ├── accessors │ │ │ │ │ ├── anisotropically_sampled.hlsl │ │ │ │ │ ├── fft.hlsl │ │ │ │ │ ├── loadable_image.hlsl │ │ │ │ │ ├── mip_mapped.hlsl │ │ │ │ │ └── storable_image.hlsl │ │ │ │ ├── core.hlsl │ │ │ │ ├── impl │ │ │ │ │ └── base.hlsl │ │ │ │ ├── matrix.hlsl │ │ │ │ └── vector.hlsl │ │ │ ├── cpp_compat.hlsl │ │ │ ├── cpp_compat │ │ │ │ ├── basic.h │ │ │ │ ├── impl │ │ │ │ │ └── intrinsics_impl.hlsl │ │ │ │ ├── intrinsics.hlsl │ │ │ │ ├── matrix.hlsl │ │ │ │ ├── promote.hlsl │ │ │ │ └── vector.hlsl │ │ │ ├── device_capabilities_traits.hlsl │ │ │ ├── emulated │ │ │ │ ├── float64_t.hlsl │ │ │ │ ├── float64_t_impl.hlsl │ │ │ │ ├── matrix_t.hlsl │ │ │ │ └── vector_t.hlsl │ │ │ ├── enums.hlsl │ │ │ ├── ext │ │ │ │ └── FullScreenTriangle │ │ │ │ │ ├── SVertexAttributes.hlsl │ │ │ │ │ └── default.vert.hlsl │ │ │ ├── fft │ │ │ │ ├── README.md │ │ │ │ └── common.hlsl │ │ │ ├── format.hlsl │ │ │ ├── format │ │ │ │ ├── octahedral.hlsl │ │ │ │ └── shared_exp.hlsl │ │ │ ├── functional.hlsl │ │ │ ├── glsl_compat │ │ │ │ ├── core.hlsl │ │ │ │ ├── subgroup_arithmetic.hlsl │ │ │ │ ├── subgroup_ballot.hlsl │ │ │ │ ├── subgroup_basic.hlsl │ │ │ │ └── subgroup_shuffle.hlsl │ │ │ ├── ieee754.hlsl │ │ │ ├── ieee754 │ │ │ │ └── impl.hlsl │ │ │ ├── indirect_commands.hlsl │ │ │ ├── limits.hlsl │ │ │ ├── macros.h │ │ │ ├── math │ │ │ │ ├── equations │ │ │ │ │ ├── cubic.hlsl │ │ │ │ │ ├── quadratic.hlsl │ │ │ │ │ └── quartic.hlsl │ │ │ │ ├── functions.hlsl │ │ │ │ ├── geometry.hlsl │ │ │ │ ├── intutil.hlsl │ │ │ │ ├── linalg │ │ │ │ │ └── fast_affine.hlsl │ │ │ │ └── quadrature │ │ │ │ │ └── gauss_legendre │ │ │ │ │ ├── gauss_legendre.hlsl │ │ │ │ │ └── impl.hlsl │ │ │ ├── matrix_utils │ │ │ │ └── matrix_traits.hlsl │ │ │ ├── member_test_macros.hlsl │ │ │ ├── memory.hlsl │ │ │ ├── memory_accessor.hlsl │ │ │ ├── mpl.hlsl │ │ │ ├── ndarray_addressing.hlsl │ │ │ ├── numbers.hlsl │ │ │ ├── portable │ │ │ │ ├── float64_t.hlsl │ │ │ │ ├── matrix_t.hlsl │ │ │ │ └── vector_t.hlsl │ │ │ ├── prefix_sum_blur │ │ │ │ ├── blur.hlsl │ │ │ │ └── box_sampler.hlsl │ │ │ ├── random │ │ │ │ ├── lcg.hlsl │ │ │ │ ├── pcg.hlsl │ │ │ │ ├── tea.hlsl │ │ │ │ └── xoroshiro.hlsl │ │ │ ├── scan │ │ │ │ ├── declarations.hlsl │ │ │ │ ├── default_scheduler.hlsl │ │ │ │ ├── descriptors.hlsl │ │ │ │ ├── direct.hlsl │ │ │ │ ├── indirect.hlsl │ │ │ │ ├── parameters_struct.hlsl │ │ │ │ └── virtual_workgroup.hlsl │ │ │ ├── scanning_append.hlsl │ │ │ ├── shapes │ │ │ │ ├── aabb.hlsl │ │ │ │ ├── beziers.hlsl │ │ │ │ ├── circle.hlsl │ │ │ │ ├── ellipse.hlsl │ │ │ │ ├── line.hlsl │ │ │ │ └── util.hlsl │ │ │ ├── sort │ │ │ │ ├── common.hlsl │ │ │ │ └── counting.hlsl │ │ │ ├── spirv_intrinsics │ │ │ │ ├── core.hlsl │ │ │ │ ├── fragment_shader_barycentric.hlsl │ │ │ │ ├── fragment_shader_pixel_interlock.hlsl │ │ │ │ ├── glsl.std.450.hlsl │ │ │ │ ├── output_structs.hlsl │ │ │ │ ├── raytracing.hlsl │ │ │ │ ├── subgroup_arithmetic.hlsl │ │ │ │ ├── subgroup_ballot.hlsl │ │ │ │ ├── subgroup_basic.hlsl │ │ │ │ ├── subgroup_shuffle.hlsl │ │ │ │ └── subgroup_vote.hlsl │ │ │ ├── subgroup │ │ │ │ ├── arithmetic_portability.hlsl │ │ │ │ ├── arithmetic_portability_impl.hlsl │ │ │ │ ├── ballot.hlsl │ │ │ │ ├── basic.hlsl │ │ │ │ └── fft.hlsl │ │ │ ├── subgroup2 │ │ │ │ ├── arithmetic_portability.hlsl │ │ │ │ ├── arithmetic_portability_impl.hlsl │ │ │ │ └── ballot.hlsl │ │ │ ├── surface_transform.h │ │ │ ├── text_rendering │ │ │ │ └── msdf.hlsl │ │ │ ├── tgmath.hlsl │ │ │ ├── tgmath │ │ │ │ ├── impl.hlsl │ │ │ │ ├── isnan.hlsl │ │ │ │ └── output_structs.hlsl │ │ │ ├── type_traits.hlsl │ │ │ ├── utility.hlsl │ │ │ ├── vector_utils │ │ │ │ └── vector_traits.hlsl │ │ │ └── workgroup │ │ │ │ ├── arithmetic.hlsl │ │ │ │ ├── ballot.hlsl │ │ │ │ ├── basic.hlsl │ │ │ │ ├── broadcast.hlsl │ │ │ │ ├── fft.hlsl │ │ │ │ ├── scratch_size.hlsl │ │ │ │ ├── shared_scan.hlsl │ │ │ │ └── shuffle.hlsl │ │ ├── material │ │ │ ├── debug │ │ │ │ ├── vertex_color │ │ │ │ │ └── specialized_shader.vert │ │ │ │ ├── vertex_normal │ │ │ │ │ ├── specialized_shader.frag │ │ │ │ │ └── specialized_shader.vert │ │ │ │ └── vertex_uv │ │ │ │ │ └── specialized_shader.frag │ │ │ └── lambertian │ │ │ │ └── singletexture │ │ │ │ ├── specialized_shader.frag │ │ │ │ └── specialized_shader.vert │ │ └── shader │ │ │ └── loader │ │ │ ├── gltf │ │ │ ├── color.frag │ │ │ ├── color.vert │ │ │ ├── common.glsl │ │ │ ├── fragment_impl.glsl │ │ │ ├── no_uv_color.frag │ │ │ ├── no_uv_color.vert │ │ │ ├── uv.frag │ │ │ ├── uv.vert │ │ │ └── vertex_impl.glsl │ │ │ └── mtl │ │ │ ├── fragment_impl.glsl │ │ │ ├── fragment_no_uv.frag │ │ │ ├── fragment_uv.frag │ │ │ ├── vertex_impl.glsl │ │ │ ├── vertex_no_uv.vert │ │ │ └── vertex_uv.vert │ ├── config │ │ └── BuildConfigOptions.h.in │ ├── core │ │ ├── Byteswap.h │ │ ├── EventDeferredHandler.h │ │ ├── IBuffer.h │ │ ├── IReferenceCounted.h │ │ ├── SRAIIBasedExiter.h │ │ ├── SRange.h │ │ ├── StorageTrivializer.h │ │ ├── algorithm │ │ │ ├── radix_sort.h │ │ │ └── utility.h │ │ ├── alloc │ │ │ ├── AddressAllocatorBase.h │ │ │ ├── AddressAllocatorConcurrencyAdaptors.h │ │ │ ├── AlignedBase.h │ │ │ ├── AllocatorTrivialBases.h │ │ │ ├── GeneralpurposeAddressAllocator.h │ │ │ ├── HeterogenousMemoryAddressAllocatorAdaptor.h │ │ │ ├── IAddressAllocator.h │ │ │ ├── IAllocator.h │ │ │ ├── IteratablePoolAddressAllocator.h │ │ │ ├── LinearAddressAllocator.h │ │ │ ├── PoolAddressAllocator.h │ │ │ ├── ResizableHeterogenousMemoryAllocator.h │ │ │ ├── SimpleBlockBasedAllocator.h │ │ │ ├── StackAddressAllocator.h │ │ │ ├── VectorViewNullMemoryResource.h │ │ │ ├── address_allocator_traits.h │ │ │ ├── aligned_allocator.h │ │ │ ├── aligned_allocator_adaptor.h │ │ │ ├── null_allocator.h │ │ │ └── refctd_memory_resource.h │ │ ├── atomic.h │ │ ├── based_offset.h │ │ ├── based_span.h │ │ ├── containers │ │ │ ├── CCircularBuffer.h │ │ │ ├── CMemoryPool.h │ │ │ ├── DoublyLinkedList.h │ │ │ ├── FixedCapacityDoublyLinkedList.h │ │ │ ├── LRUCache.h │ │ │ ├── dynamic_array.h │ │ │ └── refctd_dynamic_array.h │ │ ├── decl │ │ │ ├── BaseClasses.h │ │ │ ├── Types.h │ │ │ ├── compile_config.h │ │ │ └── smart_refctd_ptr.h │ │ ├── declarations.h │ │ ├── def │ │ │ └── smart_refctd_ptr.h │ │ ├── definitions.h │ │ ├── execution.h │ │ ├── hash │ │ │ ├── blake.h │ │ │ └── xxHash256.h │ │ ├── math │ │ │ ├── colorutil.h │ │ │ ├── floatutil.h │ │ │ ├── floatutil.tcc │ │ │ ├── glslFunctions.h │ │ │ ├── glslFunctions.tcc │ │ │ ├── intutil.h │ │ │ ├── matrixutil.h │ │ │ ├── morton.h │ │ │ ├── plane3dSIMD.h │ │ │ └── rational.h │ │ ├── memory │ │ │ ├── memory.h │ │ │ └── new_delete.h │ │ ├── parallel │ │ │ ├── IThreadBound.h │ │ │ └── unlock_guard.h │ │ ├── sampling │ │ │ ├── OwenSampler.h │ │ │ ├── RandomSampler.h │ │ │ └── SobolSampler.h │ │ ├── string │ │ │ ├── StringLiteral.h │ │ │ └── stringutil.h │ │ └── util │ │ │ ├── bitflag.h │ │ │ └── to_underlying.h │ ├── ext │ │ ├── Blur │ │ │ └── CBlurPerformer.h │ │ ├── Bullet │ │ │ ├── BulletUtility.h │ │ │ ├── CDebugRender.h │ │ │ ├── CInstancedMotionState.h │ │ │ ├── CPhysicsWorld.h │ │ │ ├── IMotionStateBase.h │ │ │ └── README.md │ │ ├── DebugDraw │ │ │ ├── CDraw3DLine.h │ │ │ └── Draw3DLineShaders.h │ │ ├── DepthPyramidGenerator │ │ │ └── DepthPyramidGenerator.h │ │ ├── FFT │ │ │ └── FFT.h │ │ ├── FullScreenTriangle │ │ │ └── FullScreenTriangle.h │ │ ├── ImGui │ │ │ ├── ImGui.h │ │ │ └── builtin │ │ │ │ └── hlsl │ │ │ │ ├── common.hlsl │ │ │ │ ├── fragment.hlsl │ │ │ │ ├── psinput.hlsl │ │ │ │ └── vertex.hlsl │ │ ├── LumaMeter │ │ │ └── CLumaMeter.h │ │ ├── MitsubaLoader │ │ │ ├── CElementBSDF.h │ │ │ ├── CElementEmitter.h │ │ │ ├── CElementFactory.h │ │ │ ├── CElementFilm.h │ │ │ ├── CElementIntegrator.h │ │ │ ├── CElementRFilter.h │ │ │ ├── CElementSampler.h │ │ │ ├── CElementSensor.h │ │ │ ├── CElementShape.h │ │ │ ├── CElementTexture.h │ │ │ ├── CElementTransform.h │ │ │ ├── CMitsubaLoader.h │ │ │ ├── CMitsubaMaterialCompilerFrontend.h │ │ │ ├── CMitsubaMetadata.h │ │ │ ├── CMitsubaSerializedMetadata.h │ │ │ ├── CSerializedLoader.h │ │ │ ├── IElement.h │ │ │ ├── ParserUtil.h │ │ │ ├── PropertyElement.h │ │ │ └── SContext.h │ │ ├── OIT │ │ │ └── OIT.h │ │ ├── OptiX │ │ │ ├── IContext.h │ │ │ ├── IDenoiser.h │ │ │ ├── IModule.h │ │ │ ├── IProgramGroup.h │ │ │ ├── Manager.h │ │ │ └── SbtRecord.h │ │ ├── RadixSort │ │ │ └── RadixSort.h │ │ ├── Readme.md │ │ ├── ScreenShot │ │ │ └── ScreenShot.h │ │ ├── TextRendering │ │ │ ├── TextRendering.h │ │ │ └── stb_rect_pack.h │ │ └── ToneMapper │ │ │ └── CToneMapper.h │ ├── logging_macros.h │ ├── macros.h │ ├── nblpack.h │ ├── nblunpack.h │ ├── scene │ │ ├── CLevelOfDetailLibrary.h │ │ ├── CSkinInstanceCache.h │ │ ├── IAnimationBlendManager.h │ │ ├── ICullingLoDSelectionSystem.h │ │ ├── ILevelOfDetailLibrary.h │ │ ├── ISkinInstanceCache.h │ │ ├── ISkinInstanceCacheManager.h │ │ ├── ITransformTree.h │ │ ├── ITransformTreeManager.h │ │ └── scene.h │ ├── system │ │ ├── CApplicationAndroid.h │ │ ├── CColoredStdoutLoggerANSI.h │ │ ├── CColoredStdoutLoggerWin32.h │ │ ├── CFileArchive.h │ │ ├── CFileLogger.h │ │ ├── CFileView.h │ │ ├── CFileViewAPKAllocator.h │ │ ├── CFileViewVirtualAllocatorPOSIX.h │ │ ├── CFileViewVirtualAllocatorWin32.h │ │ ├── CMountDirectoryArchive.h │ │ ├── CStdoutLogger.h │ │ ├── CStdoutLoggerAndroid.h │ │ ├── CSystemAndroid.h │ │ ├── CSystemLinux.h │ │ ├── CSystemWin32.h │ │ ├── DefaultFuncPtrLoader.h │ │ ├── DynamicFunctionCaller.h │ │ ├── DynamicLibraryFunctionPointer.h │ │ ├── FuncPtrLoader.h │ │ ├── IApplicationFramework.h │ │ ├── IAsyncQueueDispatcher.h │ │ ├── IFile.h │ │ ├── IFileArchive.h │ │ ├── IFileBase.h │ │ ├── IFileViewAllocator.h │ │ ├── ILogger.h │ │ ├── ISystem.h │ │ ├── ISystemFile.h │ │ ├── ISystemPOSIX.h │ │ ├── IThreadHandler.h │ │ ├── IThreadsafeLogger.h │ │ ├── SBuiltinFile.h │ │ ├── SReadWriteSpinLock.h │ │ ├── atomic_state.h │ │ ├── declarations.h │ │ ├── definitions.h │ │ ├── demote_promote_writer_readers_lock.h │ │ └── path.h │ ├── type_traits.h │ ├── ui │ │ ├── IClipboardManager.h │ │ ├── ICursorControl.h │ │ ├── IInputEventChannel.h │ │ ├── IWindow.h │ │ ├── IWindowAndroid.h │ │ ├── IWindowManager.h │ │ ├── IWindowManagerWin32.h │ │ ├── IWindowWin32.h │ │ ├── KeyCodes.h │ │ ├── SInputEvent.h │ │ ├── declarations.h │ │ └── definitions.h │ ├── undef_logging_macros.h │ └── video │ │ ├── CCUDADevice.h │ │ ├── CCUDAHandler.h │ │ ├── CJITIncludeLoader.h │ │ ├── CThreadSafeQueueAdapter.h │ │ ├── CVulkanCommon.h │ │ ├── CVulkanConnection.h │ │ ├── CVulkanDeviceMemoryBacked.h │ │ ├── CVulkanImage.h │ │ ├── CVulkanRayTracingPipeline.h │ │ ├── CVulkanSwapchain.h │ │ ├── EApiType.h │ │ ├── ECommonEnums.h │ │ ├── IAPIConnection.h │ │ ├── IDeferredOperation.h │ │ ├── IDescriptorPool.h │ │ ├── IDeviceMemoryAllocation.h │ │ ├── IDeviceMemoryAllocator.h │ │ ├── IDeviceMemoryBacked.h │ │ ├── IEvent.h │ │ ├── IGPUAccelerationStructure.h │ │ ├── IGPUAnimationLibrary.h │ │ ├── IGPUBuffer.h │ │ ├── IGPUBufferView.h │ │ ├── IGPUCommandBuffer.h │ │ ├── IGPUCommandPool.h │ │ ├── IGPUComputePipeline.h │ │ ├── IGPUDescriptorSet.h │ │ ├── IGPUDescriptorSetLayout.h │ │ ├── IGPUFramebuffer.h │ │ ├── IGPUGraphicsPipeline.h │ │ ├── IGPUImage.h │ │ ├── IGPUImageView.h │ │ ├── IGPUMesh.h │ │ ├── IGPUMeshBuffer.h │ │ ├── IGPUPipelineCache.h │ │ ├── IGPUPipelineLayout.h │ │ ├── IGPURayTracingPipeline.h │ │ ├── IGPURenderpass.h │ │ ├── IGPUSampler.h │ │ ├── IGPUShader.h │ │ ├── ILogicalDevice.h │ │ ├── IPhysicalDevice.h │ │ ├── IQueryPool.h │ │ ├── IQueue.h │ │ ├── ISemaphore.h │ │ ├── ISwapchain.h │ │ ├── SPhysicalDeviceFeatures.h │ │ ├── SPhysicalDeviceLimits.h │ │ ├── SPipelineCreationParams.h │ │ ├── TimelineEventHandlers.h │ │ ├── alloc │ │ ├── CAsyncSingleBufferSubAllocator.h │ │ ├── CSingleBufferSubAllocator.h │ │ ├── IBufferAllocator.h │ │ ├── SimpleGPUBufferAllocator.h │ │ ├── StreamingTransientDataBuffer.h │ │ └── SubAllocatedDescriptorSet.h │ │ ├── asset_traits.h │ │ ├── debug │ │ ├── CVulkanDebugCallback.h │ │ └── IDebugCallback.h │ │ ├── decl │ │ └── IBackendObject.h │ │ ├── declarations.h │ │ ├── def │ │ └── IBackendObject.h │ │ ├── definitions.h │ │ ├── surface │ │ ├── CSurfaceVulkan.h │ │ └── ISurface.h │ │ └── utilities │ │ ├── CAssetConverter.h │ │ ├── CComputeBlit.h │ │ ├── CDefaultSwapchainFramebuffers.h │ │ ├── CDrawIndirectAllocator.h │ │ ├── CDumbPresentationOracle.h │ │ ├── CGPUMeshPackerV2.h │ │ ├── CPropertyPool.h │ │ ├── CPropertyPoolHandler.h │ │ ├── CScanner.h │ │ ├── CSimpleResizeSurface.h │ │ ├── CSmoothResizeSurface.h │ │ ├── CSubpassKiln.h │ │ ├── ICommandPoolCache.h │ │ ├── IDescriptorSetCache.h │ │ ├── IDrawIndirectAllocator.h │ │ ├── IPresentationOracle.h │ │ ├── IPropertyPool.h │ │ ├── ISimpleManagedSurface.h │ │ ├── IUtilities.h │ │ ├── ImageRegionIterator.h │ │ ├── SIntendedSubmitInfo.h │ │ ├── SPhysicalDeviceFilter.h │ │ └── renderdoc.h ├── position2d.h ├── quaternion.h ├── rect.h ├── splines.h ├── vector2d.h ├── vector3d.h └── vectorSIMD.h ├── jobs-email.gif ├── nabla-glow.svg ├── pipeline.groovy ├── source └── Nabla │ ├── CBAWMeshFileLoader.cpp │ ├── CCameraSceneNode.cpp │ ├── CCameraSceneNode.h │ ├── CFPSCounter.cpp │ ├── CFPSCounter.h │ ├── CIrrDeviceLinux.h │ ├── CIrrDeviceWin32.cpp │ ├── CIrrDeviceWin32.h │ ├── COSOperator.cpp │ ├── COSOperator.h │ ├── CSceneManager.cpp │ ├── CSceneManager.h │ ├── CSceneNodeAnimatorCameraFPS.cpp │ ├── CSceneNodeAnimatorCameraFPS.h │ ├── CSceneNodeAnimatorCameraMaya.cpp │ ├── CSceneNodeAnimatorCameraMaya.h │ ├── CSceneNodeAnimatorCameraModifiedMaya.cpp │ ├── CSceneNodeAnimatorCameraModifiedMaya.h │ └── CSkinningStateManager.h ├── src └── nbl │ ├── CMakeLists.txt │ ├── asset │ ├── IAsset.cpp │ ├── IAssetManager.cpp │ ├── ICPUDescriptorSet.cpp │ ├── ICPUImage.cpp │ ├── IRenderpass.cpp │ ├── filters │ │ ├── CBasicImageFilterCommon.cpp │ │ └── kernels │ │ │ └── CConvolutionWeightFunction.cpp │ ├── interchange │ │ ├── CBufferLoaderBIN.cpp │ │ ├── CBufferLoaderBIN.h │ │ ├── CGLILoader.cpp │ │ ├── CGLILoader.h │ │ ├── CGLIWriter.cpp │ │ ├── CGLIWriter.h │ │ ├── CGLSLLoader.cpp │ │ ├── CGLSLLoader.h │ │ ├── CGLTFLoader.cpp │ │ ├── CGLTFLoader.h │ │ ├── CGLTFWriter.cpp │ │ ├── CGLTFWriter.h │ │ ├── CGraphicsPipelineLoaderMTL.cpp │ │ ├── CGraphicsPipelineLoaderMTL.h │ │ ├── CHLSLLoader.cpp │ │ ├── CHLSLLoader.h │ │ ├── CImageHasher.h │ │ ├── CImageLoaderJPG.cpp │ │ ├── CImageLoaderJPG.h │ │ ├── CImageLoaderOpenEXR.cpp │ │ ├── CImageLoaderOpenEXR.h │ │ ├── CImageLoaderPNG.cpp │ │ ├── CImageLoaderPNG.h │ │ ├── CImageLoaderTGA.cpp │ │ ├── CImageLoaderTGA.h │ │ ├── CImageWriterJPG.cpp │ │ ├── CImageWriterJPG.h │ │ ├── CImageWriterOpenEXR.cpp │ │ ├── CImageWriterOpenEXR.h │ │ ├── CImageWriterPNG.cpp │ │ ├── CImageWriterPNG.h │ │ ├── CImageWriterTGA.cpp │ │ ├── CImageWriterTGA.h │ │ ├── COBJMeshFileLoader.cpp │ │ ├── COBJMeshFileLoader.h │ │ ├── CPLYMeshFileLoader.cpp │ │ ├── CPLYMeshFileLoader.h │ │ ├── CPLYMeshWriter.cpp │ │ ├── CPLYMeshWriter.h │ │ ├── CSPVLoader.cpp │ │ ├── CSPVLoader.h │ │ ├── CSTLMeshFileLoader.cpp │ │ ├── CSTLMeshFileLoader.h │ │ ├── CSTLMeshWriter.cpp │ │ ├── CSTLMeshWriter.h │ │ ├── IAssetLoader.cpp │ │ ├── IAssetWriter.cpp │ │ ├── IImageAssetHandlerBase.cpp │ │ ├── IImageLoader.cpp │ │ ├── IImageWriter.cpp │ │ └── IRenderpassIndependentPipelineLoader.cpp │ ├── material_compiler │ │ ├── CMaterialCompilerGLSLBackendCommon.cpp │ │ └── CMaterialCompilerGLSLRasterBackend.cpp │ ├── pch_asset.h │ └── utils │ │ ├── CCompilerSet.cpp │ │ ├── CDerivativeMapCreator.cpp │ │ ├── CForsythVertexCacheOptimizer.cpp │ │ ├── CGLSLCompiler.cpp │ │ ├── CGeometryCreator.cpp │ │ ├── CGeometryCreator.h │ │ ├── CHLSLCompiler.cpp │ │ ├── CMeshManipulator.cpp │ │ ├── CMeshManipulator.h │ │ ├── COverdrawMeshOptimizer.cpp │ │ ├── COverdrawMeshOptimizer.h │ │ ├── CSPIRVIntrospector.cpp │ │ ├── CSmoothNormalGenerator.cpp │ │ ├── CSmoothNormalGenerator.h │ │ ├── ISPIRVOptimizer.cpp │ │ ├── IShaderCompiler.cpp │ │ ├── shaderCompiler_serialization.h │ │ ├── shadercUtils.h │ │ ├── spvUtils.h │ │ └── waveContext.h │ ├── builtin │ ├── CMakeLists.txt │ ├── MTLdefaults.h │ ├── builtinDataGen.py │ ├── builtinHeaderGen.py │ └── utils.cmake │ ├── core │ ├── IReferenceCounted.cpp │ ├── alloc │ │ └── refctd_memory_resource.cpp │ ├── hash │ │ └── blake.cpp │ └── pch_core.h │ ├── device │ ├── CMakeLists.txt │ ├── DeviceGen.py │ └── gen.py │ ├── ext │ ├── Blur │ │ └── CBlurPerformer.cpp │ ├── Bullet │ │ ├── BulletUtility.cpp │ │ ├── CDebugRender.cpp │ │ ├── CInstancedMotionState.cpp │ │ ├── CMakeLists.txt │ │ └── CPhysicsWorld.cpp │ ├── CMakeLists.txt │ ├── DebugDraw │ │ └── CDraw3DLine.cpp │ ├── DepthPyramidGenerator │ │ └── DepthPyramidGenerator.cpp │ ├── FFT │ │ └── FFT.cpp │ ├── ImGui │ │ ├── CMakeLists.txt │ │ └── ImGui.cpp │ ├── LumaMeter │ │ └── CLumaMeter.cpp │ ├── MitsubaLoader │ │ ├── CElementBSDF.cpp │ │ ├── CElementEmitter.cpp │ │ ├── CElementFactory.cpp │ │ ├── CElementFilm.cpp │ │ ├── CElementIntegrator.cpp │ │ ├── CElementRFilter.cpp │ │ ├── CElementSampler.cpp │ │ ├── CElementSensor.cpp │ │ ├── CElementShape.cpp │ │ ├── CElementTexture.cpp │ │ ├── CElementTransform.cpp │ │ ├── CGLSLMitsubaLoaderBuiltinIncludeGenerator.h │ │ ├── CMakeLists.txt │ │ ├── CMitsubaLoader.cpp │ │ ├── CMitsubaMaterialCompilerFrontend.cpp │ │ ├── CSerializedLoader.cpp │ │ ├── CShapeCreator.cpp │ │ ├── ParserUtil.cpp │ │ └── PropertyElement.cpp │ ├── OptiX │ │ ├── CMakeLists.txt │ │ ├── IContext.cpp │ │ └── Manager.cpp │ ├── RadixSort │ │ └── RadixSort.cpp │ ├── TextRendering │ │ ├── CMakeLists.txt │ │ └── TextRendering.cpp │ └── ToneMapper │ │ └── CToneMapper.cpp │ ├── gtml.cpp │ ├── pch.h │ ├── scene │ └── ITransformTree.cpp │ ├── system │ ├── CAPKResourcesArchive.cpp │ ├── CAPKResourcesArchive.h │ ├── CArchiveLoaderTar.cpp │ ├── CArchiveLoaderTar.h │ ├── CArchiveLoaderZip.cpp │ ├── CArchiveLoaderZip.h │ ├── CColoredStdoutLoggerWin32.cpp │ ├── CFilePOSIX.cpp │ ├── CFilePOSIX.h │ ├── CFileViewAPKAllocator.cpp │ ├── CFileViewVirtualAllocatorPOSIX.cpp │ ├── CFileViewVirtualAllocatorWin32.cpp │ ├── CFileWin32.cpp │ ├── CFileWin32.h │ ├── CStdoutLoggerAndroid.cpp │ ├── CSystemAndroid.cpp │ ├── CSystemLinux.cpp │ ├── CSystemWin32.cpp │ ├── DefaultFuncPtrLoader.cpp │ ├── IFileArchive.cpp │ ├── IFileBase.cpp │ ├── ILogger.cpp │ ├── ISystem.cpp │ └── ISystemPOSIX.cpp │ ├── ui │ ├── CClipboardManagerWin32.h │ ├── CGraphicalApplicationAndroid.cpp │ ├── CGraphicalApplicationAndroid.h │ ├── CWindowAndroid.h │ ├── CWindowManagerAndroid.cpp │ ├── CWindowManagerAndroid.h │ ├── CWindowManagerWin32.cpp │ ├── CWindowManagerWin32.h │ ├── CWindowWin32.cpp │ └── CWindowWin32.h │ └── video │ ├── CCUDADevice.cpp │ ├── CCUDAHandler.cpp │ ├── CJITIncludeLoader.cpp │ ├── CSurfaceVulkan.cpp │ ├── CVulkanAccelerationStructure.cpp │ ├── CVulkanAccelerationStructure.h │ ├── CVulkanBuffer.cpp │ ├── CVulkanBuffer.h │ ├── CVulkanBufferView.cpp │ ├── CVulkanBufferView.h │ ├── CVulkanCommandBuffer.cpp │ ├── CVulkanCommandBuffer.h │ ├── CVulkanCommandPool.cpp │ ├── CVulkanCommandPool.h │ ├── CVulkanComputePipeline.cpp │ ├── CVulkanComputePipeline.h │ ├── CVulkanConnection.cpp │ ├── CVulkanDeferredOperation.cpp │ ├── CVulkanDeferredOperation.h │ ├── CVulkanDescriptorPool.cpp │ ├── CVulkanDescriptorPool.h │ ├── CVulkanDescriptorSet.cpp │ ├── CVulkanDescriptorSet.h │ ├── CVulkanDescriptorSetLayout.cpp │ ├── CVulkanDescriptorSetLayout.h │ ├── CVulkanDeviceFunctionTable.h │ ├── CVulkanDeviceMemoryBacked.cpp │ ├── CVulkanEvent.cpp │ ├── CVulkanEvent.h │ ├── CVulkanFramebuffer.cpp │ ├── CVulkanFramebuffer.h │ ├── CVulkanGraphicsPipeline.cpp │ ├── CVulkanGraphicsPipeline.h │ ├── CVulkanImage.cpp │ ├── CVulkanImageView.cpp │ ├── CVulkanImageView.h │ ├── CVulkanLogicalDevice.cpp │ ├── CVulkanLogicalDevice.h │ ├── CVulkanMemoryAllocation.cpp │ ├── CVulkanMemoryAllocation.h │ ├── CVulkanPhysicalDevice.cpp │ ├── CVulkanPhysicalDevice.h │ ├── CVulkanPipelineCache.cpp │ ├── CVulkanPipelineCache.h │ ├── CVulkanPipelineLayout.cpp │ ├── CVulkanPipelineLayout.h │ ├── CVulkanQueryPool.cpp │ ├── CVulkanQueryPool.h │ ├── CVulkanQueue.cpp │ ├── CVulkanQueue.h │ ├── CVulkanRayTracingPipeline.cpp │ ├── CVulkanRenderpass.cpp │ ├── CVulkanRenderpass.h │ ├── CVulkanSampler.cpp │ ├── CVulkanSampler.h │ ├── CVulkanSemaphore.cpp │ ├── CVulkanSemaphore.h │ ├── CVulkanShader.cpp │ ├── CVulkanShader.h │ ├── CVulkanSwapchain.cpp │ ├── IAPIConnection.cpp │ ├── IDescriptorPool.cpp │ ├── IDeviceMemoryAllocation.cpp │ ├── IDeviceMemoryBacked.cpp │ ├── IGPUAccelerationStructure.cpp │ ├── IGPUCommandBuffer.cpp │ ├── IGPUDescriptorSet.cpp │ ├── ILogicalDevice.cpp │ ├── IPhysicalDevice.cpp │ ├── IQueue.cpp │ ├── ISemaphore.cpp │ ├── ISwapchain.cpp │ ├── device_capabilities │ ├── device_features.json │ └── device_limits.json │ ├── pch_video.h │ ├── utilities │ ├── CAssetConverter.cpp │ ├── CComputeBlit.cpp │ ├── CPropertyPoolHandler.cpp │ ├── CScanner.cpp │ ├── ICommandPoolCache.cpp │ ├── IPropertyPool.cpp │ ├── IUtilities.cpp │ └── ImageRegionIterator.cpp │ └── vulkan │ └── profiles │ ├── NablaCore.json │ ├── README.md │ ├── VP_KHR_roadmap_2024.json │ └── platforms │ ├── android.json │ ├── android │ ├── vp_gpuinfo_google_pixel_6a_50_0_0_android_15_0.json │ └── vp_gpuinfo_google_pixel_7_pro_51_0_0_android_15_0.json │ ├── apple.json │ ├── apple │ ├── desktop.json │ ├── desktop │ │ ├── vp_gpuinfo_apple_m1_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m1_0_2_2019_osx_15_2.json │ │ ├── vp_gpuinfo_apple_m1_max_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m1_max_0_2_2019_osx_15_2.json │ │ ├── vp_gpuinfo_apple_m1_pro_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m2_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m2_max_0_2_2019_osx_15_3.json │ │ ├── vp_gpuinfo_apple_m3_0_2_2019_osx_15_2.json │ │ ├── vp_gpuinfo_apple_m3_max_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m3_pro_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m4_0_2_2019_osx_15_1.json │ │ ├── vp_gpuinfo_apple_m4_max_0_2_2019_osx_15_3.json │ │ └── vp_gpuinfo_apple_m4_pro_0_2_2019_osx_15_1.json │ ├── mobile.json │ └── mobile │ │ ├── vp_gpuinfo_apple_a15_gpu_0_2_2019_ios_18_3.json │ │ └── vp_gpuinfo_apple_a16_gpu_0_2_2019_ios_18_3.json │ ├── linux.json │ ├── linux │ ├── amdvlk.json │ ├── amdvlk │ │ ├── vp_gpuinfo_amd_radeon_rx_6600_xt_2_0_333_debian_12.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6900_xt_2_0_304_debian_unknown.json │ │ └── vp_gpuinfo_amd_radeon_rx_7800_xt_2_0_310_ubuntu_24_04.json │ ├── intel.json │ ├── intel │ │ ├── vp_gpuinfo_intel_r__arc_tm__a750_graphics__dg2__24_2_6_nixos_25_05.json │ │ ├── vp_gpuinfo_intel_r__graphics__rpl_s__24_2_7_tuxedo_24_04.json │ │ ├── vp_gpuinfo_intel_r__uhd_graphics_630__cfl_gt2__24_2_6_arch_unknown.json │ │ └── vp_gpuinfo_intel_r__uhd_graphics_770__adl_s_gt1__24_2_5_fedora_41.json │ ├── nvidia.json │ ├── nvidia │ │ ├── vp_gpuinfo_nvidia_geforce_gtx_1660_super_565_77_0_0_nixos_25_05.json │ │ ├── vp_gpuinfo_nvidia_geforce_rtx_2070_565_77_0_0_arch_unknown.json │ │ ├── vp_gpuinfo_nvidia_geforce_rtx_4070_560_35_3_0_ubuntu_24_08.json │ │ └── vp_gpuinfo_nvidia_geforce_rtx_4080_laptop_gpu_565_57_1_0_arch_unknown.json │ ├── radv.json │ └── radv │ │ ├── vp_gpuinfo_amd_radeon_graphics__radv_navi31__24_3_2_linuxmint_22.json │ │ ├── vp_gpuinfo_amd_radeon_rx_5500_xt__radv_navi14__24_2_1_arch_unknown(1).json │ │ ├── vp_gpuinfo_amd_radeon_rx_5500_xt__radv_navi14__24_2_1_arch_unknown.json │ │ ├── vp_gpuinfo_amd_radeon_rx_5700_xt__radv_navi10__24_3_65_ubuntu_24_04.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6600__radv_navi23__24_2_0_arch_unknown.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6700_xt__radv_navi22__24_2_3_arch_unknown.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6750_xt__radv_navi22__24_3_0_ubuntu_24_04.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6800__radv_navi21__24_1_99_nixos_24_05.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6800m__radv_navi22__24_2_1_arch_unknown.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6900_xt__radv_navi21__24_2_7_arch_unknown.json │ │ ├── vp_gpuinfo_amd_radeon_rx_6900_xt__radv_navi21__llvm_17_0_6___24_2_0_debian_unknown.json │ │ └── vp_gpuinfo_amd_radeon_rx_7900_xt__radv_navi31__24_2_3_arch_unknown.json │ ├── win.json │ └── win │ ├── amd.json │ ├── amd │ ├── vp_gpuinfo_amd_radeon_rx_5600_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_5700_2_0_310_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_5700_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6400_2_0_310_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6500_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6600_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6600m_2_0_317_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6650_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6700_2_0_317_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6700_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6700s_2_0_317_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6750_xt_2_0_310_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6800_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6900_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_6950_xt_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_7600_2_0_302_windows_11.json │ ├── vp_gpuinfo_amd_radeon_rx_7900_xt_2_0_302_windows_11.json │ └── vp_gpuinfo_amd_radeon_rx_7900_xtx_2_0_302_windows_11.json │ ├── intel.json │ ├── intel │ ├── vp_gpuinfo_intel_r__arc_tm__a380_graphics_0_405_1494_windows_11.json │ ├── vp_gpuinfo_intel_r__arc_tm__a550m_graphics_0_405_1672_windows_11.json │ ├── vp_gpuinfo_intel_r__arc_tm__a750_graphics_0_405_1426_windows_11.json │ ├── vp_gpuinfo_intel_r__arc_tm__a770_graphics_0_405_1352_windows_11.json │ ├── vp_gpuinfo_intel_r__iris_r__xe_graphics_0_405_1349_windows_11.json │ ├── vp_gpuinfo_intel_r__uhd_graphics_0_405_1348_windows_11.json │ ├── vp_gpuinfo_intel_r__uhd_graphics_730_0_405_1352_windows_11.json │ └── vp_gpuinfo_intel_r__uhd_graphics_770_0_405_1426_windows_11.json │ ├── nvidia.json │ └── nvidia │ ├── vp_gpuinfo_nvidia_geforce_gtx_1060_552_4_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_gtx_1070_560_70_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_gtx_1650_552_31_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_gtx_1660_super_560_70_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_gtx_1660_ti_561_9_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_2060_560_70_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_2070_560_81_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_3050_560_94_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_3060_ti_560_81_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_3070_laptop_gpu_560_38_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_3080_561_9_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_3080_laptop_gpu_552_4_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_3090_560_70_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_4070_552_4_0_0_windows_11.json │ ├── vp_gpuinfo_nvidia_geforce_rtx_4080_552_4_0_0_windows_11.json │ └── vp_gpuinfo_nvidia_geforce_rtx_4090_552_4_0_0_windows_11.json └── tools ├── CMakeLists.txt ├── debug └── VisualStudio │ └── DynamicArrayVisualizer.natvis ├── genFormatDecodeEncode └── src.cpp ├── nite ├── CMakeLists.txt ├── README.md └── main.cpp ├── nsc ├── .profiles │ └── 0.json ├── .vscode │ ├── launch.json │ └── settings.json ├── CMakeLists.txt ├── __init__.py ├── __main__.py ├── ce-generate-config.cmake ├── config.json.template ├── docker │ ├── README.md │ └── godbolt │ │ └── hlsl-basic-compile-payload.json ├── main.cpp └── test │ ├── config │ └── release.json.template │ ├── hlsl │ └── input.hlsl │ └── test.py └── xxHash256 ├── CMakeLists.txt └── main.cpp /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report a bug or problem encountered while using Nabla 4 | labels: bug 5 | --- 6 | 7 | ## Describe the bug 8 | 9 | 10 | ## Steps to Reproduce 11 | 12 | 13 | ## Expected vs observed behavior 14 | 15 | 16 | ## Environment 17 | 18 | 19 | * **OS:** 20 | * **CPU:** 21 | * **GPU:** 22 | * **GPU driver version:** 23 | * **Compiler:** 24 | * **branch:** 25 | * **commit hash:** 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | labels: enhancement 5 | --- 6 | 7 | ## Description 8 | 9 | 10 | ## Description of the related problem 11 | 13 | 14 | ## Solution proposal 15 | 16 | 17 | ## Additional context 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | 4 | ## Testing 5 | 6 | 7 | ## TODO list: 8 | 9 | 10 | 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Code::Blocks files 2 | *.depend 3 | *.layout 4 | # Visual Studio Code 5 | .vscode/* 6 | # clion 7 | .idea/* 8 | # temporary compiler files 9 | *.objs* 10 | *.d 11 | *.o 12 | # visual studio debug files 13 | *.ilk 14 | *.pdb 15 | *_d.exe 16 | # usually where people build 17 | android_build/* 18 | build*/* 19 | # default install paths 20 | install/* 21 | # legacy temporary and output directories 22 | lib/* 23 | doctemp/* 24 | # stuff output by examples 25 | examples_tests/* 26 | examples_tests/tmp/* 27 | android-sample/bin/* 28 | # shader debug sideeffects 29 | preprocessed.hlsl 30 | compiled.spv 31 | .vs/* 32 | tools/nsc/__main__.py 33 | tools/nsc/.vscode/* 34 | tools/nsc/.profiles/* 35 | tools/nsc/bin/* 36 | */__pycache__/* 37 | __pycache__/* 38 | *.pyc 39 | -------------------------------------------------------------------------------- /3rdparty/boost/dep/wave.cmake: -------------------------------------------------------------------------------- 1 | set(NBL_BOOST_LIBS assert;concept_check;config;core;filesystem;format;iterator;lexical_cast;mpl;multi_index;optional;pool;preprocessor;serialization;smart_ptr;spirit;static_assert;throw_exception;type_traits;atomic;container_hash;detail;io;predef;system;winapi;utility;conversion;function_types;fusion;container;integer;numeric/conversion;bind;move;tuple;array;function;mp11;variant;variant2;endian;phoenix;proto;range;regex;thread;typeof;unordered;align;intrusive;describe;functional;chrono;date_time;exception;type_index;ratio;algorithm;tokenizer) -------------------------------------------------------------------------------- /3rdparty/dxc/test/test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if __cplusplus >= 201703L 4 | #pragma message("'__cplusplus' is " _CRT_STRINGIZE(__cplusplus)) 5 | #error C++ compiler with too high standard for DXC compilation. Your compiler must be capable of using C++11 or C++14 standard! 6 | #endif 7 | 8 | int main() { return 0; } 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/7zAlloc.h: -------------------------------------------------------------------------------- 1 | /* 7zAlloc.h -- Allocation functions 2 | 2017-04-03 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_ALLOC_H 5 | #define __7Z_ALLOC_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | void *SzAlloc(ISzAllocPtr p, size_t size); 12 | void SzFree(ISzAllocPtr p, void *address); 13 | 14 | void *SzAllocTemp(ISzAllocPtr p, size_t size); 15 | void SzFreeTemp(ISzAllocPtr p, void *address); 16 | 17 | EXTERN_C_END 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/7zBuf.c: -------------------------------------------------------------------------------- 1 | /* 7zBuf.c -- Byte Buffer 2 | 2017-04-03 : Igor Pavlov : Public domain */ 3 | 4 | #include "Precomp.h" 5 | 6 | #include "7zBuf.h" 7 | 8 | void Buf_Init(CBuf *p) 9 | { 10 | p->data = 0; 11 | p->size = 0; 12 | } 13 | 14 | int Buf_Create(CBuf *p, size_t size, ISzAllocPtr alloc) 15 | { 16 | p->size = 0; 17 | if (size == 0) 18 | { 19 | p->data = 0; 20 | return 1; 21 | } 22 | p->data = (Byte *)ISzAlloc_Alloc(alloc, size); 23 | if (p->data) 24 | { 25 | p->size = size; 26 | return 1; 27 | } 28 | return 0; 29 | } 30 | 31 | void Buf_Free(CBuf *p, ISzAllocPtr alloc) 32 | { 33 | ISzAlloc_Free(alloc, p->data); 34 | p->data = 0; 35 | p->size = 0; 36 | } 37 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/7zBuf.h: -------------------------------------------------------------------------------- 1 | /* 7zBuf.h -- Byte Buffer 2 | 2017-04-03 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_BUF_H 5 | #define __7Z_BUF_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | typedef struct 12 | { 13 | Byte *data; 14 | size_t size; 15 | } CBuf; 16 | 17 | void Buf_Init(CBuf *p); 18 | int Buf_Create(CBuf *p, size_t size, ISzAllocPtr alloc); 19 | void Buf_Free(CBuf *p, ISzAllocPtr alloc); 20 | 21 | typedef struct 22 | { 23 | Byte *data; 24 | size_t size; 25 | size_t pos; 26 | } CDynBuf; 27 | 28 | void DynBuf_Construct(CDynBuf *p); 29 | void DynBuf_SeekToBeg(CDynBuf *p); 30 | int DynBuf_Write(CDynBuf *p, const Byte *buf, size_t size, ISzAllocPtr alloc); 31 | void DynBuf_Free(CDynBuf *p, ISzAllocPtr alloc); 32 | 33 | EXTERN_C_END 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/7zCrc.h: -------------------------------------------------------------------------------- 1 | /* 7zCrc.h -- CRC32 calculation 2 | 2013-01-18 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_CRC_H 5 | #define __7Z_CRC_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | extern UInt32 g_CrcTable[]; 12 | 13 | /* Call CrcGenerateTable one time before other CRC functions */ 14 | void MY_FAST_CALL CrcGenerateTable(void); 15 | 16 | #define CRC_INIT_VAL 0xFFFFFFFF 17 | #define CRC_GET_DIGEST(crc) ((crc) ^ CRC_INIT_VAL) 18 | #define CRC_UPDATE_BYTE(crc, b) (g_CrcTable[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8)) 19 | 20 | UInt32 MY_FAST_CALL CrcUpdate(UInt32 crc, const void *data, size_t size); 21 | UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size); 22 | 23 | EXTERN_C_END 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/7zVersion.h: -------------------------------------------------------------------------------- 1 | #define MY_VER_MAJOR 19 2 | #define MY_VER_MINOR 00 3 | #define MY_VER_BUILD 0 4 | #define MY_VERSION_NUMBERS "19.00" 5 | #define MY_VERSION MY_VERSION_NUMBERS 6 | 7 | #ifdef MY_CPU_NAME 8 | #define MY_VERSION_CPU MY_VERSION " (" MY_CPU_NAME ")" 9 | #else 10 | #define MY_VERSION_CPU MY_VERSION 11 | #endif 12 | 13 | #define MY_DATE "2019-02-21" 14 | #undef MY_COPYRIGHT 15 | #undef MY_VERSION_COPYRIGHT_DATE 16 | #define MY_AUTHOR_NAME "Igor Pavlov" 17 | #define MY_COPYRIGHT_PD "Igor Pavlov : Public domain" 18 | #define MY_COPYRIGHT_CR "Copyright (c) 1999-2018 Igor Pavlov" 19 | 20 | #ifdef USE_COPYRIGHT_CR 21 | #define MY_COPYRIGHT MY_COPYRIGHT_CR 22 | #else 23 | #define MY_COPYRIGHT MY_COPYRIGHT_PD 24 | #endif 25 | 26 | #define MY_COPYRIGHT_DATE MY_COPYRIGHT " : " MY_DATE 27 | #define MY_VERSION_COPYRIGHT_DATE MY_VERSION_CPU " : " MY_COPYRIGHT " : " MY_DATE 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Delta.h: -------------------------------------------------------------------------------- 1 | /* Delta.h -- Delta converter 2 | 2013-01-18 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __DELTA_H 5 | #define __DELTA_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | #define DELTA_STATE_SIZE 256 12 | 13 | void Delta_Init(Byte *state); 14 | void Delta_Encode(Byte *state, unsigned delta, Byte *data, SizeT size); 15 | void Delta_Decode(Byte *state, unsigned delta, Byte *data, SizeT size); 16 | 17 | EXTERN_C_END 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/DllSecur.h: -------------------------------------------------------------------------------- 1 | /* DllSecur.h -- DLL loading for security 2 | 2018-02-19 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __DLL_SECUR_H 5 | #define __DLL_SECUR_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | #ifdef _WIN32 12 | 13 | void My_SetDefaultDllDirectories(); 14 | void LoadSecurityDlls(); 15 | 16 | #endif 17 | 18 | EXTERN_C_END 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Precomp.h: -------------------------------------------------------------------------------- 1 | /* Precomp.h -- StdAfx 2 | 2013-11-12 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_PRECOMP_H 5 | #define __7Z_PRECOMP_H 6 | 7 | #include "Compiler.h" 8 | /* #include "7zTypes.h" */ 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/RotateDefs.h: -------------------------------------------------------------------------------- 1 | /* RotateDefs.h -- Rotate functions 2 | 2015-03-25 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __ROTATE_DEFS_H 5 | #define __ROTATE_DEFS_H 6 | 7 | #ifdef _MSC_VER 8 | 9 | #include 10 | 11 | /* don't use _rotl with MINGW. It can insert slow call to function. */ 12 | 13 | /* #if (_MSC_VER >= 1200) */ 14 | #pragma intrinsic(_rotl) 15 | #pragma intrinsic(_rotr) 16 | /* #endif */ 17 | 18 | #define rotlFixed(x, n) _rotl((x), (n)) 19 | #define rotrFixed(x, n) _rotr((x), (n)) 20 | 21 | #else 22 | 23 | /* new compilers can translate these macros to fast commands. */ 24 | 25 | #define rotlFixed(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) 26 | #define rotrFixed(x, n) (((x) >> (n)) | ((x) << (32 - (n)))) 27 | 28 | #endif 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Sha256.h: -------------------------------------------------------------------------------- 1 | /* Sha256.h -- SHA-256 Hash 2 | 2013-01-18 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __CRYPTO_SHA256_H 5 | #define __CRYPTO_SHA256_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | #define SHA256_DIGEST_SIZE 32 12 | 13 | typedef struct 14 | { 15 | UInt32 state[8]; 16 | UInt64 count; 17 | Byte buffer[64]; 18 | } CSha256; 19 | 20 | void Sha256_Init(CSha256 *p); 21 | void Sha256_Update(CSha256 *p, const Byte *data, size_t size); 22 | void Sha256_Final(CSha256 *p, Byte *digest); 23 | 24 | EXTERN_C_END 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Sort.h: -------------------------------------------------------------------------------- 1 | /* Sort.h -- Sort functions 2 | 2014-04-05 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_SORT_H 5 | #define __7Z_SORT_H 6 | 7 | #include "7zTypes.h" 8 | 9 | EXTERN_C_BEGIN 10 | 11 | void HeapSort(UInt32 *p, size_t size); 12 | void HeapSort64(UInt64 *p, size_t size); 13 | 14 | /* void HeapSortRef(UInt32 *p, UInt32 *vals, size_t size); */ 15 | 16 | EXTERN_C_END 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/7z/7z.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "7z"=.\7z.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/7z/Precomp.c: -------------------------------------------------------------------------------- 1 | /* Precomp.c -- StdAfx 2 | 2013-01-21 : Igor Pavlov : Public domain */ 3 | 4 | #include "Precomp.h" 5 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/7z/Precomp.h: -------------------------------------------------------------------------------- 1 | /* Precomp.h -- StdAfx 2 | 2013-06-16 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_PRECOMP_H 5 | #define __7Z_PRECOMP_H 6 | 7 | #include "../../Compiler.h" 8 | #include "../../7zTypes.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/7z/makefile: -------------------------------------------------------------------------------- 1 | CFLAGS = $(CFLAGS) -D_7ZIP_PPMD_SUPPPORT 2 | 3 | PROG = 7zDec.exe 4 | 5 | C_OBJS = \ 6 | $O\7zAlloc.obj \ 7 | $O\7zBuf.obj \ 8 | $O\7zCrc.obj \ 9 | $O\7zCrcOpt.obj \ 10 | $O\7zFile.obj \ 11 | $O\7zDec.obj \ 12 | $O\7zArcIn.obj \ 13 | $O\7zStream.obj \ 14 | $O\Bcj2.obj \ 15 | $O\Bra.obj \ 16 | $O\Bra86.obj \ 17 | $O\BraIA64.obj \ 18 | $O\CpuArch.obj \ 19 | $O\Delta.obj \ 20 | $O\Lzma2Dec.obj \ 21 | $O\LzmaDec.obj \ 22 | $O\Ppmd7.obj \ 23 | $O\Ppmd7Dec.obj \ 24 | 25 | 7Z_OBJS = \ 26 | $O\7zMain.obj \ 27 | 28 | OBJS = \ 29 | $O\Precomp.obj \ 30 | $(7Z_OBJS) \ 31 | $(C_OBJS) \ 32 | 33 | !include "../../../CPP/Build.mak" 34 | 35 | $(7Z_OBJS): $(*B).c 36 | $(CCOMPL_USE) 37 | $(C_OBJS): ../../$(*B).c 38 | $(CCOMPL_USE) 39 | $O\Precomp.obj: Precomp.c 40 | $(CCOMPL_PCH) 41 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/Lzma/LzmaUtil.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "LzmaUtil"=.\LzmaUtil.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/Lzma/makefile: -------------------------------------------------------------------------------- 1 | # MY_STATIC_LINK=1 2 | PROG = LZMAc.exe 3 | 4 | CFLAGS = $(CFLAGS) \ 5 | 6 | LIB_OBJS = \ 7 | $O\LzmaUtil.obj \ 8 | 9 | C_OBJS = \ 10 | $O\Alloc.obj \ 11 | $O\LzFind.obj \ 12 | $O\LzFindMt.obj \ 13 | $O\LzmaDec.obj \ 14 | $O\LzmaEnc.obj \ 15 | $O\7zFile.obj \ 16 | $O\7zStream.obj \ 17 | $O\Threads.obj \ 18 | 19 | OBJS = \ 20 | $(LIB_OBJS) \ 21 | $(C_OBJS) \ 22 | 23 | !include "../../../CPP/Build.mak" 24 | 25 | $(LIB_OBJS): $(*B).c 26 | $(COMPL_O2) 27 | $(C_OBJS): ../../$(*B).c 28 | $(COMPL_O2) 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/LzmaLib/LzmaLib.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | LzmaCompress 3 | LzmaUncompress 4 | 5 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/LzmaLib/LzmaLib.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "LzmaLib"=.\LzmaLib.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/LzmaLib/LzmaLibExports.c: -------------------------------------------------------------------------------- 1 | /* LzmaLibExports.c -- LZMA library DLL Entry point 2 | 2015-11-08 : Igor Pavlov : Public domain */ 3 | 4 | #include "../../Precomp.h" 5 | 6 | #include 7 | 8 | BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) 9 | { 10 | UNUSED_VAR(hInstance); 11 | UNUSED_VAR(dwReason); 12 | UNUSED_VAR(lpReserved); 13 | return TRUE; 14 | } 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/LzmaLib/makefile: -------------------------------------------------------------------------------- 1 | MY_STATIC_LINK=1 2 | SLIB = sLZMA.lib 3 | PROG = LZMA.dll 4 | SLIBPATH = $O\$(SLIB) 5 | 6 | DEF_FILE = LzmaLib.def 7 | CFLAGS = $(CFLAGS) \ 8 | 9 | LIB_OBJS = \ 10 | $O\LzmaLibExports.obj \ 11 | 12 | C_OBJS = \ 13 | $O\Alloc.obj \ 14 | $O\LzFind.obj \ 15 | $O\LzFindMt.obj \ 16 | $O\LzmaDec.obj \ 17 | $O\LzmaEnc.obj \ 18 | $O\LzmaLib.obj \ 19 | $O\Threads.obj \ 20 | 21 | OBJS = \ 22 | $(LIB_OBJS) \ 23 | $(C_OBJS) \ 24 | $O\resource.res 25 | 26 | !include "../../../CPP/Build.mak" 27 | 28 | $(SLIBPATH): $O $(OBJS) 29 | lib -out:$(SLIBPATH) $(OBJS) $(LIBS) 30 | 31 | $(LIB_OBJS): $(*B).c 32 | $(COMPL_O2) 33 | $(C_OBJS): ../../$(*B).c 34 | $(COMPL_O2) 35 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/LzmaLib/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../7zVersion.rc" 2 | 3 | MY_VERSION_INFO_DLL("LZMA library", "LZMA") 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/Precomp.c: -------------------------------------------------------------------------------- 1 | /* Precomp.c -- StdAfx 2 | 2013-01-21 : Igor Pavlov : Public domain */ 3 | 4 | #include "Precomp.h" 5 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/Precomp.h: -------------------------------------------------------------------------------- 1 | /* Precomp.h -- StdAfx 2 | 2013-06-16 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __7Z_PRECOMP_H 5 | #define __7Z_PRECOMP_H 6 | 7 | #include "../../Compiler.h" 8 | #include "../../7zTypes.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/SfxSetup.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "SfxSetup"=.\SfxSetup.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/makefile: -------------------------------------------------------------------------------- 1 | PROG = 7zS2.sfx 2 | MY_FIXED = 1 3 | 4 | C_OBJS = \ 5 | $O\7zAlloc.obj \ 6 | $O\7zArcIn.obj \ 7 | $O\7zBuf.obj \ 8 | $O\7zBuf2.obj \ 9 | $O\7zCrc.obj \ 10 | $O\7zCrcOpt.obj \ 11 | $O\7zFile.obj \ 12 | $O\7zDec.obj \ 13 | $O\7zStream.obj \ 14 | $O\Bcj2.obj \ 15 | $O\Bra.obj \ 16 | $O\Bra86.obj \ 17 | $O\BraIA64.obj \ 18 | $O\CpuArch.obj \ 19 | $O\Delta.obj \ 20 | $O\DllSecur.obj \ 21 | $O\Lzma2Dec.obj \ 22 | $O\LzmaDec.obj \ 23 | 24 | 7Z_OBJS = \ 25 | $O\SfxSetup.obj \ 26 | 27 | OBJS = \ 28 | $(7Z_OBJS) \ 29 | $(C_OBJS) \ 30 | $O\resource.res 31 | 32 | !include "../../../CPP/Build.mak" 33 | 34 | $(7Z_OBJS): $(*B).c 35 | $(COMPL_O1) 36 | $(C_OBJS): ../../$(*B).c 37 | $(COMPL_O1) 38 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/makefile_con: -------------------------------------------------------------------------------- 1 | PROG = 7zS2con.sfx 2 | MY_FIXED = 1 3 | CFLAGS = $(CFLAGS) -D_CONSOLE 4 | 5 | C_OBJS = \ 6 | $O\7zAlloc.obj \ 7 | $O\7zArcIn.obj \ 8 | $O\7zBuf.obj \ 9 | $O\7zBuf2.obj \ 10 | $O\7zCrc.obj \ 11 | $O\7zCrcOpt.obj \ 12 | $O\7zFile.obj \ 13 | $O\7zDec.obj \ 14 | $O\7zStream.obj \ 15 | $O\Bcj2.obj \ 16 | $O\Bra.obj \ 17 | $O\Bra86.obj \ 18 | $O\BraIA64.obj \ 19 | $O\CpuArch.obj \ 20 | $O\Delta.obj \ 21 | $O\DllSecur.obj \ 22 | $O\Lzma2Dec.obj \ 23 | $O\LzmaDec.obj \ 24 | 25 | 7Z_OBJS = \ 26 | $O\SfxSetup.obj \ 27 | 28 | OBJS = \ 29 | $(7Z_OBJS) \ 30 | $(C_OBJS) \ 31 | $O\resource.res 32 | 33 | !include "../../../CPP/Build.mak" 34 | 35 | $(7Z_OBJS): $(*B).c 36 | $(COMPL_O1) 37 | $(C_OBJS): ../../$(*B).c 38 | $(COMPL_O1) 39 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../7zVersion.rc" 2 | 3 | MY_VERSION_INFO_APP("7z Setup SFX small", "7zS2.sfx") 4 | 5 | 1 ICON "setup.ico" 6 | -------------------------------------------------------------------------------- /3rdparty/lzma/C/Util/SfxSetup/setup.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/C/Util/SfxSetup/setup.ico -------------------------------------------------------------------------------- /3rdparty/lzma/C/XzCrc64.h: -------------------------------------------------------------------------------- 1 | /* XzCrc64.h -- CRC64 calculation 2 | 2013-01-18 : Igor Pavlov : Public domain */ 3 | 4 | #ifndef __XZ_CRC64_H 5 | #define __XZ_CRC64_H 6 | 7 | #include 8 | 9 | #include "7zTypes.h" 10 | 11 | EXTERN_C_BEGIN 12 | 13 | extern UInt64 g_Crc64Table[]; 14 | 15 | void MY_FAST_CALL Crc64GenerateTable(void); 16 | 17 | #define CRC64_INIT_VAL UINT64_CONST(0xFFFFFFFFFFFFFFFF) 18 | #define CRC64_GET_DIGEST(crc) ((crc) ^ CRC64_INIT_VAL) 19 | #define CRC64_UPDATE_BYTE(crc, b) (g_Crc64Table[((crc) ^ (b)) & 0xFF] ^ ((crc) >> 8)) 20 | 21 | UInt64 MY_FAST_CALL Crc64Update(UInt64 crc, const void *data, size_t size); 22 | UInt64 MY_FAST_CALL Crc64Calc(const void *data, size_t size); 23 | 24 | EXTERN_C_END 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Aes.mak: -------------------------------------------------------------------------------- 1 | C_OBJS = $(C_OBJS) \ 2 | $O\Aes.obj 3 | 4 | !IF "$(PLATFORM)" != "ia64" && "$(PLATFORM)" != "mips" && "$(PLATFORM)" != "arm" && "$(PLATFORM)" != "arm64" 5 | ASM_OBJS = $(ASM_OBJS) \ 6 | $O\AesOpt.obj 7 | !ENDIF 8 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp: -------------------------------------------------------------------------------- 1 | // CompressionMethod.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/7zHeader.cpp: -------------------------------------------------------------------------------- 1 | // 7zHeader.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "7zHeader.h" 6 | 7 | namespace NArchive { 8 | namespace N7z { 9 | 10 | Byte kSignature[kSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; 11 | #ifdef _7Z_VOL 12 | Byte kFinishSignature[kSignatureSize] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C + 1}; 13 | #endif 14 | 15 | // We can change signature. So file doesn't contain correct signature. 16 | // struct SignatureInitializer { SignatureInitializer() { kSignature[0]--; } }; 17 | // static SignatureInitializer g_SignatureInitializer; 18 | 19 | }} 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/7zProperties.h: -------------------------------------------------------------------------------- 1 | // 7zProperties.h 2 | 3 | #ifndef __7Z_PROPERTIES_H 4 | #define __7Z_PROPERTIES_H 5 | 6 | #include "../../PropID.h" 7 | 8 | namespace NArchive { 9 | namespace N7z { 10 | 11 | enum 12 | { 13 | kpidPackedSize0 = kpidUserDefined, 14 | kpidPackedSize1, 15 | kpidPackedSize2, 16 | kpidPackedSize3, 17 | kpidPackedSize4 18 | }; 19 | 20 | }} 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/7zRegister.cpp: -------------------------------------------------------------------------------- 1 | // 7zRegister.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../Common/RegisterArc.h" 6 | 7 | #include "7zHandler.h" 8 | 9 | namespace NArchive { 10 | namespace N7z { 11 | 12 | static Byte k_Signature_Dec[kSignatureSize] = {'7' + 1, 'z', 0xBC, 0xAF, 0x27, 0x1C}; 13 | 14 | REGISTER_ARC_IO_DECREMENT_SIG( 15 | "7z", "7z", NULL, 7, 16 | k_Signature_Dec, 17 | 0, 18 | NArcInfoFlags::kFindSignature, 19 | NULL); 20 | 21 | }} 22 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp: -------------------------------------------------------------------------------- 1 | // 7zSpecStream.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "7zSpecStream.h" 6 | 7 | STDMETHODIMP CSequentialInStreamSizeCount2::Read(void *data, UInt32 size, UInt32 *processedSize) 8 | { 9 | UInt32 realProcessedSize; 10 | HRESULT result = _stream->Read(data, size, &realProcessedSize); 11 | _size += realProcessedSize; 12 | if (processedSize) 13 | *processedSize = realProcessedSize; 14 | return result; 15 | } 16 | 17 | STDMETHODIMP CSequentialInStreamSizeCount2::GetSubStreamSize(UInt64 subStream, UInt64 *value) 18 | { 19 | if (!_getSubStreamSize) 20 | return E_NOTIMPL; 21 | return _getSubStreamSize->GetSubStreamSize(subStream, value); 22 | } 23 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/7z/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Archive.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | CreateObject PRIVATE 3 | 4 | GetHandlerProperty PRIVATE 5 | GetNumberOfFormats PRIVATE 6 | GetHandlerProperty2 PRIVATE 7 | GetIsArc PRIVATE 8 | 9 | SetCodecs PRIVATE 10 | 11 | SetLargePageMode PRIVATE 12 | SetCaseSensitive PRIVATE 13 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Archive2.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | CreateObject PRIVATE 3 | 4 | GetHandlerProperty PRIVATE 5 | GetNumberOfFormats PRIVATE 6 | GetHandlerProperty2 PRIVATE 7 | GetIsArc PRIVATE 8 | 9 | GetNumberOfMethods PRIVATE 10 | GetMethodProperty PRIVATE 11 | CreateDecoder PRIVATE 12 | CreateEncoder PRIVATE 13 | 14 | GetHashers PRIVATE 15 | 16 | SetCodecs PRIVATE 17 | 18 | SetLargePageMode PRIVATE 19 | SetCaseSensitive PRIVATE 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp: -------------------------------------------------------------------------------- 1 | // DummyOutStream.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "DummyOutStream.h" 6 | 7 | STDMETHODIMP CDummyOutStream::Write(const void *data, UInt32 size, UInt32 *processedSize) 8 | { 9 | UInt32 realProcessedSize = size; 10 | HRESULT res = S_OK; 11 | if (_stream) 12 | res = _stream->Write(data, size, &realProcessedSize); 13 | _size += realProcessedSize; 14 | if (processedSize) 15 | *processedSize = realProcessedSize; 16 | return res; 17 | } 18 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/DummyOutStream.h: -------------------------------------------------------------------------------- 1 | // DummyOutStream.h 2 | 3 | #ifndef __DUMMY_OUT_STREAM_H 4 | #define __DUMMY_OUT_STREAM_H 5 | 6 | #include "../../../Common/MyCom.h" 7 | 8 | #include "../../IStream.h" 9 | 10 | class CDummyOutStream: 11 | public ISequentialOutStream, 12 | public CMyUnknownImp 13 | { 14 | CMyComPtr _stream; 15 | UInt64 _size; 16 | public: 17 | void SetStream(ISequentialOutStream *outStream) { _stream = outStream; } 18 | void ReleaseStream() { _stream.Release(); } 19 | void Init() { _size = 0; } 20 | MY_UNKNOWN_IMP 21 | STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize); 22 | UInt64 GetSize() const { return _size; } 23 | }; 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h: -------------------------------------------------------------------------------- 1 | // Archive/Common/ItemNameUtils.h 2 | 3 | #ifndef __ARCHIVE_ITEM_NAME_UTILS_H 4 | #define __ARCHIVE_ITEM_NAME_UTILS_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | namespace NArchive { 9 | namespace NItemName { 10 | 11 | void ReplaceSlashes_OsToUnix(UString &name); 12 | 13 | UString GetOsPath(const UString &name); 14 | UString GetOsPath_Remove_TailSlash(const UString &name); 15 | 16 | void ReplaceToOsSlashes_Remove_TailSlash(UString &name); 17 | 18 | bool HasTailSlash(const AString &name, UINT codePage); 19 | 20 | #ifdef _WIN32 21 | inline UString WinPathToOsPath(const UString &name) { return name; } 22 | #else 23 | UString WinPathToOsPath(const UString &name); 24 | #endif 25 | 26 | }} 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp: -------------------------------------------------------------------------------- 1 | // OutStreamWithCRC.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "OutStreamWithCRC.h" 6 | 7 | STDMETHODIMP COutStreamWithCRC::Write(const void *data, UInt32 size, UInt32 *processedSize) 8 | { 9 | HRESULT result = S_OK; 10 | if (_stream) 11 | result = _stream->Write(data, size, &size); 12 | if (_calculate) 13 | _crc = CrcUpdate(_crc, data, size); 14 | _size += size; 15 | if (processedSize != NULL) 16 | *processedSize = size; 17 | return result; 18 | } 19 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp: -------------------------------------------------------------------------------- 1 | // ParseProperties.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/ParseProperties.h: -------------------------------------------------------------------------------- 1 | // ParseProperties.h 2 | 3 | #ifndef __PARSE_PROPERTIES_H 4 | #define __PARSE_PROPERTIES_H 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Common/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/Icons/7z.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/CPP/7zip/Archive/Icons/7z.ico -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Archive/XzHandler.h: -------------------------------------------------------------------------------- 1 | // XzHandler.h 2 | 3 | #ifndef __XZ_HANDLER_H 4 | #define __XZ_HANDLER_H 5 | 6 | namespace NArchive { 7 | namespace NXz { 8 | 9 | }} 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Asm.mak: -------------------------------------------------------------------------------- 1 | !IFDEF ASM_OBJS 2 | !IF "$(CPU)" == "ARM" 3 | $(ASM_OBJS): ../../../../Asm/Arm/$(*B).asm 4 | $(COMPL_ASM) 5 | !ELSEIF "$(CPU)" != "IA64" && "$(CPU)" != "MIPS" && "$(CPU)" != "ARM64" 6 | $(ASM_OBJS): ../../../../Asm/x86/$(*B).asm 7 | $(COMPL_ASM) 8 | !ENDIF 9 | !ENDIF 10 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "Alone"=.\Alone.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Alone7z/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../../../C/7zVersion.rc" 2 | 3 | MY_VERSION_INFO_APP("7-Zip Reduced Standalone Console", "7zr") 4 | 5 | #ifndef UNDER_CE 6 | 1 24 MOVEABLE PURE "../../UI/Console/Console.manifest" 7 | #endif 8 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../../../C/7zVersion.rc" 2 | 3 | MY_VERSION_INFO_DLL("7z Extracting Reduced Standalone Plugin", "7zxr") 4 | 5 | 101 ICON "../../Archive/Icons/7z.ico" 6 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/Format7zR/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../../../C/7zVersion.rc" 2 | 3 | MY_VERSION_INFO_DLL("7z Reduced Standalone Plugin", "7zr") 4 | 5 | 101 ICON "../../Archive/Icons/7z.ico" 6 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "LzmaCon"=.\LzmaCon.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../MyVersionInfo.rc" 2 | 3 | MY_VERSION_INFO_APP("LZMA", "lzma") 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXCon/7z.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/CPP/7zip/Bundles/SFXCon/7z.ico -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "SFXCon"=.\SFXCon.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXCon/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../MyVersionInfo.rc" 2 | 3 | MY_VERSION_INFO_APP("7z Console SFX", "7z.sfx") 4 | 5 | 101 ICON "7z.ico" -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h: -------------------------------------------------------------------------------- 1 | // ExtractEngine.h 2 | 3 | #ifndef __EXTRACT_ENGINE_H 4 | #define __EXTRACT_ENGINE_H 5 | 6 | #include "../../UI/Common/LoadCodecs.h" 7 | 8 | HRESULT ExtractArchive(CCodecs *codecs, const FString &fileName, const FString &destFolder, 9 | bool showProgress, bool &isCorrupt, UString &errorMessage); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "SFXSetup"=.\SFXSetup.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #include 9 | 10 | // #define printf(x) NO_PRINTF_(x) 11 | // #define sprintf(x) NO_SPRINTF_(x) 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/resource.h: -------------------------------------------------------------------------------- 1 | #define IDI_ICON 1 2 | 3 | #define IDS_EXTRACTION_ERROR_TITLE 7 4 | #define IDS_EXTRACTION_ERROR_MESSAGE 8 5 | #define IDS_CANNOT_CREATE_FOLDER 3003 6 | #define IDS_PROGRESS_EXTRACTING 3300 7 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../MyVersionInfo.rc" 2 | #include "resource.h" 3 | 4 | MY_VERSION_INFO_APP("7z Setup SFX", "7zS.sfx") 5 | 6 | IDI_ICON ICON "setup.ico" 7 | 8 | STRINGTABLE 9 | BEGIN 10 | IDS_EXTRACTION_ERROR_TITLE "Extraction Failed" 11 | IDS_EXTRACTION_ERROR_MESSAGE "File is corrupt" 12 | IDS_CANNOT_CREATE_FOLDER "Cannot create folder '{0}'" 13 | IDS_PROGRESS_EXTRACTING "Extracting" 14 | END 15 | 16 | #include "../../UI/FileManager/ProgressDialog.rc" 17 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXWin/7z.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/CPP/7zip/Bundles/SFXWin/7z.ico -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "SFXWin"=.\SFXWin.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #include 9 | #include 10 | 11 | // #define printf(x) NO_PRINTF_(x) 12 | // #define sprintf(x) NO_SPRINTF_(x) 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Bundles/SFXWin/resource.h: -------------------------------------------------------------------------------- 1 | #define IDI_ICON 1 2 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/FilePathAutoRename.h: -------------------------------------------------------------------------------- 1 | // FilePathAutoRename.h 2 | 3 | #ifndef __FILE_PATH_AUTO_RENAME_H 4 | #define __FILE_PATH_AUTO_RENAME_H 5 | 6 | #include "../../Common/MyString.h" 7 | 8 | bool AutoRenamePath(FString &fullProcessedPath); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/LockedStream.cpp: -------------------------------------------------------------------------------- 1 | // LockedStream.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/LockedStream.h: -------------------------------------------------------------------------------- 1 | // LockedStream.h 2 | 3 | #ifndef __LOCKED_STREAM_H 4 | #define __LOCKED_STREAM_H 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/MethodId.cpp: -------------------------------------------------------------------------------- 1 | // MethodId.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/MethodId.h: -------------------------------------------------------------------------------- 1 | // MethodId.h 2 | 3 | #ifndef __7Z_METHOD_ID_H 4 | #define __7Z_METHOD_ID_H 5 | 6 | #include "../../Common/MyTypes.h" 7 | 8 | typedef UInt64 CMethodId; 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/OffsetStream.h: -------------------------------------------------------------------------------- 1 | // OffsetStream.h 2 | 3 | #ifndef __OFFSET_STREAM_H 4 | #define __OFFSET_STREAM_H 5 | 6 | #include "../../Common/MyCom.h" 7 | 8 | #include "../IStream.h" 9 | 10 | class COffsetOutStream: 11 | public IOutStream, 12 | public CMyUnknownImp 13 | { 14 | UInt64 _offset; 15 | CMyComPtr _stream; 16 | public: 17 | HRESULT Init(IOutStream *stream, UInt64 offset); 18 | 19 | MY_UNKNOWN_IMP 20 | 21 | STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize); 22 | STDMETHOD(Seek)(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition); 23 | STDMETHOD(SetSize)(UInt64 newSize); 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/ProgressUtils.h: -------------------------------------------------------------------------------- 1 | // ProgressUtils.h 2 | 3 | #ifndef __PROGRESS_UTILS_H 4 | #define __PROGRESS_UTILS_H 5 | 6 | #include "../../Common/MyCom.h" 7 | 8 | #include "../ICoder.h" 9 | #include "../IProgress.h" 10 | 11 | class CLocalProgress: 12 | public ICompressProgressInfo, 13 | public CMyUnknownImp 14 | { 15 | CMyComPtr _progress; 16 | CMyComPtr _ratioProgress; 17 | bool _inSizeIsMain; 18 | public: 19 | UInt64 ProgressOffset; 20 | UInt64 InSize; 21 | UInt64 OutSize; 22 | bool SendRatio; 23 | bool SendProgress; 24 | 25 | CLocalProgress(); 26 | 27 | void Init(IProgress *progress, bool inSizeIsMain); 28 | HRESULT SetCur(); 29 | 30 | MY_UNKNOWN_IMP1(ICompressProgressInfo) 31 | 32 | STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize); 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/StreamUtils.h: -------------------------------------------------------------------------------- 1 | // StreamUtils.h 2 | 3 | #ifndef __STREAM_UTILS_H 4 | #define __STREAM_UTILS_H 5 | 6 | #include "../IStream.h" 7 | 8 | HRESULT ReadStream(ISequentialInStream *stream, void *data, size_t *size) throw(); 9 | HRESULT ReadStream_FALSE(ISequentialInStream *stream, void *data, size_t size) throw(); 10 | HRESULT ReadStream_FAIL(ISequentialInStream *stream, void *data, size_t size) throw(); 11 | HRESULT WriteStream(ISequentialOutStream *stream, const void *data, size_t size) throw(); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/UniqBlocks.h: -------------------------------------------------------------------------------- 1 | // UniqBlocks.h 2 | 3 | #ifndef __UNIQ_BLOCKS_H 4 | #define __UNIQ_BLOCKS_H 5 | 6 | #include "../../Common/MyTypes.h" 7 | #include "../../Common/MyBuffer.h" 8 | #include "../../Common/MyVector.h" 9 | 10 | struct CUniqBlocks 11 | { 12 | CObjectVector Bufs; 13 | CUIntVector Sorted; 14 | CUIntVector BufIndexToSortedIndex; 15 | 16 | unsigned AddUniq(const Byte *data, size_t size); 17 | UInt64 GetTotalSizeInBytes() const; 18 | void GetReverseMap(); 19 | 20 | bool IsOnlyEmpty() const 21 | { 22 | return (Bufs.Size() == 0 || Bufs.Size() == 1 && Bufs[0].Size() == 0); 23 | } 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Common/VirtThread.h: -------------------------------------------------------------------------------- 1 | // VirtThread.h 2 | 3 | #ifndef __VIRT_THREAD_H 4 | #define __VIRT_THREAD_H 5 | 6 | #include "../../Windows/Synchronization.h" 7 | #include "../../Windows/Thread.h" 8 | 9 | struct CVirtThread 10 | { 11 | NWindows::NSynchronization::CAutoResetEvent StartEvent; 12 | NWindows::NSynchronization::CAutoResetEvent FinishedEvent; 13 | NWindows::CThread Thread; 14 | bool Exit; 15 | 16 | ~CVirtThread() { WaitThreadFinish(); } 17 | void WaitThreadFinish(); // call it in destructor of child class ! 18 | WRes Create(); 19 | void Start(); 20 | virtual void Execute() = 0; 21 | void WaitExecuteFinish() { FinishedEvent.Lock(); } 22 | }; 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/Bcj2Register.cpp: -------------------------------------------------------------------------------- 1 | // Bcj2Register.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "Bcj2Coder.h" 8 | 9 | namespace NCompress { 10 | namespace NBcj2 { 11 | 12 | REGISTER_CODEC_CREATE_2(CreateCodec, CDecoder(), ICompressCoder2) 13 | #ifndef EXTRACT_ONLY 14 | REGISTER_CODEC_CREATE_2(CreateCodecOut, CEncoder(), ICompressCoder2) 15 | #else 16 | #define CreateCodecOut NULL 17 | #endif 18 | 19 | REGISTER_CODEC_VAR 20 | { CreateCodec, CreateCodecOut, 0x303011B, "BCJ2", 4, false }; 21 | 22 | REGISTER_CODEC(BCJ2) 23 | 24 | }} 25 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/BcjCoder.cpp: -------------------------------------------------------------------------------- 1 | // BcjCoder.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "BcjCoder.h" 6 | 7 | namespace NCompress { 8 | namespace NBcj { 9 | 10 | STDMETHODIMP CCoder::Init() 11 | { 12 | _bufferPos = 0; 13 | x86_Convert_Init(_prevMask); 14 | return S_OK; 15 | } 16 | 17 | STDMETHODIMP_(UInt32) CCoder::Filter(Byte *data, UInt32 size) 18 | { 19 | UInt32 processed = (UInt32)::x86_Convert(data, size, _bufferPos, &_prevMask, _encode); 20 | _bufferPos += processed; 21 | return processed; 22 | } 23 | 24 | }} 25 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/BcjCoder.h: -------------------------------------------------------------------------------- 1 | // BcjCoder.h 2 | 3 | #ifndef __COMPRESS_BCJ_CODER_H 4 | #define __COMPRESS_BCJ_CODER_H 5 | 6 | #include "../../../C/Bra.h" 7 | 8 | #include "../../Common/MyCom.h" 9 | 10 | #include "../ICoder.h" 11 | 12 | namespace NCompress { 13 | namespace NBcj { 14 | 15 | class CCoder: 16 | public ICompressFilter, 17 | public CMyUnknownImp 18 | { 19 | UInt32 _bufferPos; 20 | UInt32 _prevMask; 21 | int _encode; 22 | public: 23 | MY_UNKNOWN_IMP1(ICompressFilter); 24 | INTERFACE_ICompressFilter(;) 25 | 26 | CCoder(int encode): _bufferPos(0), _encode(encode) { x86_Convert_Init(_prevMask); } 27 | }; 28 | 29 | }} 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/BcjRegister.cpp: -------------------------------------------------------------------------------- 1 | // BcjRegister.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "BcjCoder.h" 8 | 9 | namespace NCompress { 10 | namespace NBcj { 11 | 12 | REGISTER_FILTER_E(BCJ, 13 | CCoder(false), 14 | CCoder(true), 15 | 0x3030103, "BCJ") 16 | 17 | }} 18 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/BranchMisc.cpp: -------------------------------------------------------------------------------- 1 | // BranchMisc.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "BranchMisc.h" 6 | 7 | namespace NCompress { 8 | namespace NBranch { 9 | 10 | STDMETHODIMP CCoder::Init() 11 | { 12 | _bufferPos = 0; 13 | return S_OK; 14 | } 15 | 16 | STDMETHODIMP_(UInt32) CCoder::Filter(Byte *data, UInt32 size) 17 | { 18 | UInt32 processed = (UInt32)BraFunc(data, size, _bufferPos, _encode); 19 | _bufferPos += processed; 20 | return processed; 21 | } 22 | 23 | }} 24 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/BranchMisc.h: -------------------------------------------------------------------------------- 1 | // BranchMisc.h 2 | 3 | #ifndef __COMPRESS_BRANCH_MISC_H 4 | #define __COMPRESS_BRANCH_MISC_H 5 | 6 | #include "../../Common/MyCom.h" 7 | 8 | #include "../ICoder.h" 9 | 10 | EXTERN_C_BEGIN 11 | 12 | typedef SizeT (*Func_Bra)(Byte *data, SizeT size, UInt32 ip, int encoding); 13 | 14 | EXTERN_C_END 15 | 16 | namespace NCompress { 17 | namespace NBranch { 18 | 19 | class CCoder: 20 | public ICompressFilter, 21 | public CMyUnknownImp 22 | { 23 | UInt32 _bufferPos; 24 | int _encode; 25 | Func_Bra BraFunc; 26 | public: 27 | MY_UNKNOWN_IMP1(ICompressFilter); 28 | INTERFACE_ICompressFilter(;) 29 | 30 | CCoder(Func_Bra bra, int encode): _bufferPos(0), _encode(encode), BraFunc(bra) {} 31 | }; 32 | 33 | }} 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/CopyRegister.cpp: -------------------------------------------------------------------------------- 1 | // CopyRegister.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "CopyCoder.h" 8 | 9 | namespace NCompress { 10 | 11 | REGISTER_CODEC_CREATE(CreateCodec, CCopyCoder()) 12 | 13 | REGISTER_CODEC_2(Copy, CreateCodec, CreateCodec, 0, "Copy") 14 | 15 | } 16 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/Lzma2Register.cpp: -------------------------------------------------------------------------------- 1 | // Lzma2Register.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "Lzma2Decoder.h" 8 | 9 | #ifndef EXTRACT_ONLY 10 | #include "Lzma2Encoder.h" 11 | #endif 12 | 13 | namespace NCompress { 14 | namespace NLzma2 { 15 | 16 | REGISTER_CODEC_E(LZMA2, 17 | CDecoder(), 18 | CEncoder(), 19 | 0x21, 20 | "LZMA2") 21 | 22 | }} 23 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/LzmaRegister.cpp: -------------------------------------------------------------------------------- 1 | // LzmaRegister.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "LzmaDecoder.h" 8 | 9 | #ifndef EXTRACT_ONLY 10 | #include "LzmaEncoder.h" 11 | #endif 12 | 13 | namespace NCompress { 14 | namespace NLzma { 15 | 16 | REGISTER_CODEC_E(LZMA, 17 | CDecoder(), 18 | CEncoder(), 19 | 0x30101, 20 | "LZMA") 21 | 22 | }} 23 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/PpmdRegister.cpp: -------------------------------------------------------------------------------- 1 | // PpmdRegister.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "PpmdDecoder.h" 8 | 9 | #ifndef EXTRACT_ONLY 10 | #include "PpmdEncoder.h" 11 | #endif 12 | 13 | namespace NCompress { 14 | namespace NPpmd { 15 | 16 | REGISTER_CODEC_E(PPMD, 17 | CDecoder(), 18 | CEncoder(), 19 | 0x30401, 20 | "PPMD") 21 | 22 | }} 23 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Compress/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Crc.mak: -------------------------------------------------------------------------------- 1 | C_OBJS = $(C_OBJS) \ 2 | $O\7zCrc.obj 3 | !IF "$(PLATFORM)" == "ia64" || "$(PLATFORM)" == "mips" || "$(PLATFORM)" == "arm" || "$(PLATFORM)" == "arm64" 4 | C_OBJS = $(C_OBJS) \ 5 | !ELSE 6 | ASM_OBJS = $(ASM_OBJS) \ 7 | !ENDIF 8 | $O\7zCrcOpt.obj 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Crc64.mak: -------------------------------------------------------------------------------- 1 | C_OBJS = $(C_OBJS) \ 2 | $O\XzCrc64.obj 3 | !IF "$(PLATFORM)" == "ia64" || "$(PLATFORM)" == "mips" || "$(PLATFORM)" == "arm" || "$(PLATFORM)" == "arm64" 4 | C_OBJS = $(C_OBJS) \ 5 | !ELSE 6 | ASM_OBJS = $(ASM_OBJS) \ 7 | !ENDIF 8 | $O\XzCrc64Opt.obj 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Crypto/7zAesRegister.cpp: -------------------------------------------------------------------------------- 1 | // 7zAesRegister.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "7zAes.h" 8 | 9 | namespace NCrypto { 10 | namespace N7z { 11 | 12 | REGISTER_FILTER_E(7zAES, 13 | CDecoder(), 14 | CEncoder(), 15 | 0x6F10701, "7zAES") 16 | 17 | }} 18 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Crypto/MyAesReg.cpp: -------------------------------------------------------------------------------- 1 | // MyAesReg.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../Common/RegisterCodec.h" 6 | 7 | #include "MyAes.h" 8 | 9 | namespace NCrypto { 10 | 11 | REGISTER_FILTER_E(AES256CBC, 12 | CAesCbcDecoder(32), 13 | CAesCbcEncoder(32), 14 | 0x6F00181, "AES256CBC") 15 | 16 | } 17 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/Crypto/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/IDecl.h: -------------------------------------------------------------------------------- 1 | // IDecl.h 2 | 3 | #ifndef __IDECL_H 4 | #define __IDECL_H 5 | 6 | #include "../Common/MyUnknown.h" 7 | 8 | #define k_7zip_GUID_Data1 0x23170F69 9 | #define k_7zip_GUID_Data2 0x40C1 10 | 11 | #define k_7zip_GUID_Data3_Common 0x278A 12 | 13 | #define k_7zip_GUID_Data3_Decoder 0x2790 14 | #define k_7zip_GUID_Data3_Encoder 0x2791 15 | #define k_7zip_GUID_Data3_Hasher 0x2792 16 | 17 | 18 | #define DECL_INTERFACE_SUB(i, base, groupId, subId) \ 19 | DEFINE_GUID(IID_ ## i, \ 20 | k_7zip_GUID_Data1, \ 21 | k_7zip_GUID_Data2, \ 22 | k_7zip_GUID_Data3_Common, \ 23 | 0, 0, 0, (groupId), 0, (subId), 0, 0); \ 24 | struct i: public base 25 | 26 | #define DECL_INTERFACE(i, groupId, subId) DECL_INTERFACE_SUB(i, IUnknown, groupId, subId) 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/IPassword.h: -------------------------------------------------------------------------------- 1 | // IPassword.h 2 | 3 | #ifndef __IPASSWORD_H 4 | #define __IPASSWORD_H 5 | 6 | #include "../Common/MyTypes.h" 7 | #include "../Common/MyUnknown.h" 8 | 9 | #include "IDecl.h" 10 | 11 | #define PASSWORD_INTERFACE(i, x) DECL_INTERFACE(i, 5, x) 12 | 13 | PASSWORD_INTERFACE(ICryptoGetTextPassword, 0x10) 14 | { 15 | STDMETHOD(CryptoGetTextPassword)(BSTR *password) PURE; 16 | }; 17 | 18 | PASSWORD_INTERFACE(ICryptoGetTextPassword2, 0x11) 19 | { 20 | STDMETHOD(CryptoGetTextPassword2)(Int32 *passwordIsDefined, BSTR *password) PURE; 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/IProgress.h: -------------------------------------------------------------------------------- 1 | // IProgress.h 2 | 3 | #ifndef __IPROGRESS_H 4 | #define __IPROGRESS_H 5 | 6 | #include "../Common/MyTypes.h" 7 | 8 | #include "IDecl.h" 9 | 10 | #define INTERFACE_IProgress(x) \ 11 | STDMETHOD(SetTotal)(UInt64 total) x; \ 12 | STDMETHOD(SetCompleted)(const UInt64 *completeValue) x; \ 13 | 14 | DECL_INTERFACE(IProgress, 0, 5) 15 | { 16 | INTERFACE_IProgress(PURE) 17 | }; 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/LzmaDec.mak: -------------------------------------------------------------------------------- 1 | !IF "$(PLATFORM)" == "x64" 2 | CFLAGS_C_SPEC = -D_LZMA_DEC_OPT 3 | ASM_OBJS = $(ASM_OBJS) \ 4 | $O\LzmaDecOpt.obj 5 | !ENDIF 6 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/MyVersion.h: -------------------------------------------------------------------------------- 1 | #define USE_COPYRIGHT_CR 2 | #include "../../C/7zVersion.h" 3 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/MyVersionInfo.rc: -------------------------------------------------------------------------------- 1 | #include "MyVersion.h" 2 | #include "..\..\C\7zVersion.rc" 3 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/SubBuild.mak: -------------------------------------------------------------------------------- 1 | cd $(@D) 2 | $(MAKE) -nologo $(TARGETS) 3 | cd .. 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Client7z/Client7z.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "Client7z"=.\Client7z.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Client7z/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Client7z/makefile: -------------------------------------------------------------------------------- 1 | PROG = 7zcl.exe 2 | MY_CONSOLE = 1 3 | 4 | CURRENT_OBJS = \ 5 | $O\Client7z.obj \ 6 | 7 | COMMON_OBJS = \ 8 | $O\IntToString.obj \ 9 | $O\NewHandler.obj \ 10 | $O\MyString.obj \ 11 | $O\StringConvert.obj \ 12 | $O\StringToInt.obj \ 13 | $O\MyVector.obj \ 14 | $O\Wildcard.obj \ 15 | 16 | WIN_OBJS = \ 17 | $O\DLL.obj \ 18 | $O\FileDir.obj \ 19 | $O\FileFind.obj \ 20 | $O\FileIO.obj \ 21 | $O\FileName.obj \ 22 | $O\PropVariant.obj \ 23 | $O\PropVariantConv.obj \ 24 | 25 | 7ZIP_COMMON_OBJS = \ 26 | $O\FileStreams.obj \ 27 | 28 | !include "../../7zip.mak" 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Client7z/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../MyVersionInfo.rc" 2 | 3 | MY_VERSION_INFO_APP("7-Zip client" , "7zcl") 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/ArchiveName.h: -------------------------------------------------------------------------------- 1 | // ArchiveName.h 2 | 3 | #ifndef __ARCHIVE_NAME_H 4 | #define __ARCHIVE_NAME_H 5 | 6 | #include "../../../Windows/FileFind.h" 7 | 8 | UString CreateArchiveName(const UStringVector &paths, const NWindows::NFile::NFind::CFileInfo *fi = NULL); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/DefaultName.h: -------------------------------------------------------------------------------- 1 | // DefaultName.h 2 | 3 | #ifndef __DEFAULT_NAME_H 4 | #define __DEFAULT_NAME_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | UString GetDefaultName2(const UString &fileName, 9 | const UString &extension, const UString &addSubExtension); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/ExitCode.h: -------------------------------------------------------------------------------- 1 | // ExitCode.h 2 | 3 | #ifndef __EXIT_CODE_H 4 | #define __EXIT_CODE_H 5 | 6 | namespace NExitCode { 7 | 8 | enum EEnum { 9 | 10 | kSuccess = 0, // Successful operation 11 | kWarning = 1, // Non fatal error(s) occurred 12 | kFatalError = 2, // A fatal error occurred 13 | // kCRCError = 3, // A CRC error occurred when unpacking 14 | // kLockedArchive = 4, // Attempt to modify an archive previously locked 15 | // kWriteError = 5, // Write to disk error 16 | // kOpenError = 6, // Open file error 17 | kUserError = 7, // Command line option error 18 | kMemoryError = 8, // Not enough memory for operation 19 | // kCreateFileError = 9, // Create file error 20 | 21 | kUserBreak = 255 // User stopped the process 22 | 23 | }; 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/ExtractMode.h: -------------------------------------------------------------------------------- 1 | // ExtractMode.h 2 | 3 | #ifndef __EXTRACT_MODE_H 4 | #define __EXTRACT_MODE_H 5 | 6 | namespace NExtract { 7 | 8 | namespace NPathMode 9 | { 10 | enum EEnum 11 | { 12 | kFullPaths, 13 | kCurPaths, 14 | kNoPaths, 15 | kAbsPaths, 16 | kNoPathsAlt // alt streams must be extracted without name of base file 17 | }; 18 | } 19 | 20 | namespace NOverwriteMode 21 | { 22 | enum EEnum 23 | { 24 | kAsk, 25 | kOverwrite, 26 | kSkip, 27 | kRename, 28 | kRenameExisting 29 | }; 30 | } 31 | 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/PropIDUtils.h: -------------------------------------------------------------------------------- 1 | // PropIDUtils.h 2 | 3 | #ifndef __PROPID_UTILS_H 4 | #define __PROPID_UTILS_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | // provide at least 64 bytes for buffer including zero-end 9 | void ConvertPropertyToShortString2(char *dest, const PROPVARIANT &propVariant, PROPID propID, int level = 0) throw(); 10 | void ConvertPropertyToString2(UString &dest, const PROPVARIANT &propVariant, PROPID propID, int level = 0); 11 | 12 | bool ConvertNtReparseToString(const Byte *data, UInt32 size, UString &s); 13 | void ConvertNtSecureToString(const Byte *data, UInt32 size, AString &s); 14 | bool CheckNtSecure(const Byte *data, UInt32 size) throw();; 15 | 16 | void ConvertWinAttribToString(char *s, UInt32 wa) throw(); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/Property.h: -------------------------------------------------------------------------------- 1 | // Property.h 2 | 3 | #ifndef __7Z_PROPERTY_H 4 | #define __7Z_PROPERTY_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | struct CProperty 9 | { 10 | UString Name; 11 | UString Value; 12 | }; 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/SetProperties.h: -------------------------------------------------------------------------------- 1 | // SetProperties.h 2 | 3 | #ifndef __SETPROPERTIES_H 4 | #define __SETPROPERTIES_H 5 | 6 | #include "Property.h" 7 | 8 | HRESULT SetProperties(IUnknown *unknown, const CObjectVector &properties); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/SortUtils.cpp: -------------------------------------------------------------------------------- 1 | // SortUtils.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../../Common/Wildcard.h" 6 | 7 | #include "SortUtils.h" 8 | 9 | static int CompareStrings(const unsigned *p1, const unsigned *p2, void *param) 10 | { 11 | const UStringVector &strings = *(const UStringVector *)param; 12 | return CompareFileNames(strings[*p1], strings[*p2]); 13 | } 14 | 15 | void SortFileNames(const UStringVector &strings, CUIntVector &indices) 16 | { 17 | const unsigned numItems = strings.Size(); 18 | indices.ClearAndSetSize(numItems); 19 | if (numItems == 0) 20 | return; 21 | unsigned *vals = &indices[0]; 22 | for (unsigned i = 0; i < numItems; i++) 23 | vals[i] = i; 24 | indices.Sort(CompareStrings, (void *)&strings); 25 | } 26 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/SortUtils.h: -------------------------------------------------------------------------------- 1 | // SortUtils.h 2 | 3 | #ifndef __SORT_UTLS_H 4 | #define __SORT_UTLS_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | void SortFileNames(const UStringVector &strings, CUIntVector &indices); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/TempFiles.cpp: -------------------------------------------------------------------------------- 1 | // TempFiles.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../../Windows/FileDir.h" 6 | 7 | #include "TempFiles.h" 8 | 9 | using namespace NWindows; 10 | using namespace NFile; 11 | 12 | void CTempFiles::Clear() 13 | { 14 | while (!Paths.IsEmpty()) 15 | { 16 | NDir::DeleteFileAlways(Paths.Back()); 17 | Paths.DeleteBack(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/TempFiles.h: -------------------------------------------------------------------------------- 1 | // TempFiles.h 2 | 3 | #ifndef __TEMP_FILES_H 4 | #define __TEMP_FILES_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | class CTempFiles 9 | { 10 | void Clear(); 11 | public: 12 | FStringVector Paths; 13 | ~CTempFiles() { Clear(); } 14 | }; 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/UpdatePair.h: -------------------------------------------------------------------------------- 1 | // UpdatePair.h 2 | 3 | #ifndef __UPDATE_PAIR_H 4 | #define __UPDATE_PAIR_H 5 | 6 | #include "DirItem.h" 7 | #include "UpdateAction.h" 8 | 9 | #include "../../Archive/IArchive.h" 10 | 11 | struct CUpdatePair 12 | { 13 | NUpdateArchive::NPairState::EEnum State; 14 | int ArcIndex; 15 | int DirIndex; 16 | int HostIndex; // >= 0 for alt streams only, contains index of host pair 17 | 18 | CUpdatePair(): ArcIndex(-1), DirIndex(-1), HostIndex(-1) {} 19 | }; 20 | 21 | void GetUpdatePairInfoList( 22 | const CDirItems &dirItems, 23 | const CObjectVector &arcItems, 24 | NFileTimeType::EEnum fileTimeType, 25 | CRecordVector &updatePairs); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Common/WorkDir.h: -------------------------------------------------------------------------------- 1 | // WorkDir.h 2 | 3 | #ifndef __WORK_DIR_H 4 | #define __WORK_DIR_H 5 | 6 | #include "../../../Windows/FileDir.h" 7 | 8 | #include "../../Common/FileStreams.h" 9 | 10 | #include "ZipRegistry.h" 11 | 12 | FString GetWorkDir(const NWorkDir::CInfo &workDirInfo, const FString &path, FString &fileName); 13 | 14 | class CWorkDirTempFile 15 | { 16 | FString _originalPath; 17 | NWindows::NFile::NDir::CTempFile _tempFile; 18 | COutFileStream *_outStreamSpec; 19 | public: 20 | CMyComPtr OutStream; 21 | 22 | HRESULT CreateTempFile(const FString &originalPath); 23 | HRESULT MoveToOriginal(bool deleteOriginal); 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/BenchCon.h: -------------------------------------------------------------------------------- 1 | // BenchCon.h 2 | 3 | #ifndef __BENCH_CON_H 4 | #define __BENCH_CON_H 5 | 6 | #include 7 | 8 | #include "../../Common/CreateCoder.h" 9 | #include "../../UI/Common/Property.h" 10 | 11 | HRESULT BenchCon(DECL_EXTERNAL_CODECS_LOC_VARS 12 | const CObjectVector &props, UInt32 numIterations, FILE *f); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/ConsoleClose.h: -------------------------------------------------------------------------------- 1 | // ConsoleClose.h 2 | 3 | #ifndef __CONSOLE_CLOSE_H 4 | #define __CONSOLE_CLOSE_H 5 | 6 | namespace NConsoleClose { 7 | 8 | extern unsigned g_BreakCounter; 9 | 10 | inline bool TestBreakSignal() 11 | { 12 | #ifdef UNDER_CE 13 | return false; 14 | #else 15 | return (g_BreakCounter != 0); 16 | #endif 17 | } 18 | 19 | class CCtrlHandlerSetter 20 | { 21 | public: 22 | CCtrlHandlerSetter(); 23 | virtual ~CCtrlHandlerSetter(); 24 | }; 25 | 26 | class CCtrlBreakException 27 | {}; 28 | 29 | // void CheckCtrlBreak(); 30 | 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/List.h: -------------------------------------------------------------------------------- 1 | // List.h 2 | 3 | #ifndef __LIST_H 4 | #define __LIST_H 5 | 6 | #include "../../../Common/Wildcard.h" 7 | 8 | #include "../Common/LoadCodecs.h" 9 | 10 | HRESULT ListArchives(CCodecs *codecs, 11 | const CObjectVector &types, 12 | const CIntVector &excludedFormats, 13 | bool stdInMode, 14 | UStringVector &archivePaths, UStringVector &archivePathsFull, 15 | bool processAltStreams, bool showAltStreams, 16 | const NWildcard::CCensorNode &wildcardCensor, 17 | bool enableHeaders, bool techMode, 18 | #ifndef _NO_CRYPTO 19 | bool &passwordEnabled, UString &password, 20 | #endif 21 | #ifndef _SFX 22 | const CObjectVector *props, 23 | #endif 24 | UInt64 &errors, 25 | UInt64 &numWarnings); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/StdAfx.cpp: -------------------------------------------------------------------------------- 1 | // StdAfx.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/UserInputUtils.h: -------------------------------------------------------------------------------- 1 | // UserInputUtils.h 2 | 3 | #ifndef __USER_INPUT_UTILS_H 4 | #define __USER_INPUT_UTILS_H 5 | 6 | #include "../../../Common/StdOutStream.h" 7 | 8 | namespace NUserAnswerMode { 9 | 10 | enum EEnum 11 | { 12 | kYes, 13 | kNo, 14 | kYesAll, 15 | kNoAll, 16 | kAutoRenameAll, 17 | kQuit, 18 | kEof, 19 | kError 20 | }; 21 | } 22 | 23 | NUserAnswerMode::EEnum ScanUserYesNoAllQuit(CStdOutStream *outStream); 24 | // bool GetPassword(CStdOutStream *outStream, UString &psw); 25 | HRESULT GetPassword_HRESULT(CStdOutStream *outStream, UString &psw); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Console/resource.rc: -------------------------------------------------------------------------------- 1 | #include "../../MyVersionInfo.rc" 2 | 3 | MY_VERSION_INFO_APP("7-Zip Console" , "7z") 4 | 5 | #ifndef UNDER_CE 6 | 1 24 MOVEABLE PURE "Console.manifest" 7 | #endif 8 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/Explorer/MyMessages.h: -------------------------------------------------------------------------------- 1 | // MyMessages.h 2 | 3 | #ifndef __MY_MESSAGES_H 4 | #define __MY_MESSAGES_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | void ShowErrorMessage(HWND window, LPCWSTR message); 9 | inline void ShowErrorMessage(LPCWSTR message) { ShowErrorMessage(0, message); } 10 | 11 | void ShowErrorMessageHwndRes(HWND window, UInt32 langID); 12 | void ShowErrorMessageRes(UInt32 langID); 13 | 14 | void ShowLastErrorMessage(HWND window = 0); 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h: -------------------------------------------------------------------------------- 1 | #define IDD_BROWSE 95 2 | 3 | #define IDL_BROWSE 100 4 | #define IDT_BROWSE_FOLDER 101 5 | #define IDE_BROWSE_PATH 102 6 | #define IDC_BROWSE_FILTER 103 7 | 8 | #define IDB_BROWSE_PARENT 110 9 | #define IDB_BROWSE_CREATE_DIR 112 10 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/ComboDialog.h: -------------------------------------------------------------------------------- 1 | // ComboDialog.h 2 | 3 | #ifndef __COMBO_DIALOG_H 4 | #define __COMBO_DIALOG_H 5 | 6 | #include "../../../Windows/Control/ComboBox.h" 7 | #include "../../../Windows/Control/Dialog.h" 8 | 9 | #include "ComboDialogRes.h" 10 | 11 | class CComboDialog: public NWindows::NControl::CModalDialog 12 | { 13 | NWindows::NControl::CComboBox _comboBox; 14 | virtual void OnOK(); 15 | virtual bool OnInit(); 16 | virtual bool OnSize(WPARAM wParam, int xSize, int ySize); 17 | public: 18 | // bool Sorted; 19 | UString Title; 20 | UString Static; 21 | UString Value; 22 | UStringVector Strings; 23 | 24 | // CComboDialog(): Sorted(false) {}; 25 | INT_PTR Create(HWND parentWindow = 0) { return CModalDialog::Create(IDD_COMBO, parentWindow); } 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h: -------------------------------------------------------------------------------- 1 | #define IDD_COMBO 98 2 | 3 | #define IDT_COMBO 100 4 | #define IDC_COMBO 101 5 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/DialogSize.h: -------------------------------------------------------------------------------- 1 | // DialogSize.h 2 | 3 | #ifndef __DIALOG_SIZE_H 4 | #define __DIALOG_SIZE_H 5 | 6 | #include "../../../Windows/Control/Dialog.h" 7 | 8 | #ifdef UNDER_CE 9 | #define BIG_DIALOG_SIZE(x, y) bool isBig = NWindows::NControl::IsDialogSizeOK(x, y); 10 | #define SIZED_DIALOG(big) (isBig ? big : big ## _2) 11 | #else 12 | #define BIG_DIALOG_SIZE(x, y) 13 | #define SIZED_DIALOG(big) big 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp: -------------------------------------------------------------------------------- 1 | // FormatUtils.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../../Common/IntToString.h" 6 | 7 | #include "FormatUtils.h" 8 | 9 | #include "LangUtils.h" 10 | 11 | UString NumberToString(UInt64 number) 12 | { 13 | wchar_t numberString[32]; 14 | ConvertUInt64ToString(number, numberString); 15 | return numberString; 16 | } 17 | 18 | UString MyFormatNew(const UString &format, const UString &argument) 19 | { 20 | UString result = format; 21 | result.Replace(L"{0}", argument); 22 | return result; 23 | } 24 | 25 | UString MyFormatNew(UINT resourceID, const UString &argument) 26 | { 27 | return MyFormatNew(LangString(resourceID), argument); 28 | } 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/FormatUtils.h: -------------------------------------------------------------------------------- 1 | // FormatUtils.h 2 | 3 | #ifndef __FORMAT_UTILS_H 4 | #define __FORMAT_UTILS_H 5 | 6 | #include "../../../Common/MyTypes.h" 7 | #include "../../../Common/MyString.h" 8 | 9 | UString NumberToString(UInt64 number); 10 | 11 | UString MyFormatNew(const UString &format, const UString &argument); 12 | UString MyFormatNew(UINT resourceID, const UString &argument); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h: -------------------------------------------------------------------------------- 1 | #define IDD_OVERWRITE 3500 2 | #define IDD_OVERWRITE_2 13500 3 | 4 | #define IDT_OVERWRITE_HEADER 3501 5 | #define IDT_OVERWRITE_QUESTION_BEGIN 3502 6 | #define IDT_OVERWRITE_QUESTION_END 3503 7 | #define IDS_FILE_SIZE 3504 8 | 9 | #define IDB_AUTO_RENAME 3505 10 | #define IDB_YES_TO_ALL 440 11 | #define IDB_NO_TO_ALL 441 12 | 13 | #define IDI_OVERWRITE_OLD_FILE 100 14 | #define IDI_OVERWRITE_NEW_FILE 101 15 | 16 | #define IDT_OVERWRITE_OLD_FILE_SIZE_TIME 102 17 | #define IDT_OVERWRITE_NEW_FILE_SIZE_TIME 103 18 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h: -------------------------------------------------------------------------------- 1 | // PasswordDialog.h 2 | 3 | #ifndef __PASSWORD_DIALOG_H 4 | #define __PASSWORD_DIALOG_H 5 | 6 | #include "../../../Windows/Control/Dialog.h" 7 | #include "../../../Windows/Control/Edit.h" 8 | 9 | #include "PasswordDialogRes.h" 10 | 11 | class CPasswordDialog: public NWindows::NControl::CModalDialog 12 | { 13 | NWindows::NControl::CEdit _passwordEdit; 14 | 15 | virtual void OnOK(); 16 | virtual bool OnInit(); 17 | virtual bool OnButtonClicked(int buttonID, HWND buttonHWND); 18 | void SetTextSpec(); 19 | void ReadControls(); 20 | public: 21 | UString Password; 22 | bool ShowPassword; 23 | 24 | CPasswordDialog(): ShowPassword(false) {} 25 | INT_PTR Create(HWND parentWindow = 0) { return CModalDialog::Create(IDD_PASSWORD, parentWindow); } 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc: -------------------------------------------------------------------------------- 1 | #include "PasswordDialogRes.h" 2 | #include "../../GuiCommon.rc" 3 | 4 | #define xc 140 5 | #define yc 72 6 | 7 | IDD_PASSWORD DIALOG 0, 0, xs, ys MY_MODAL_DIALOG_STYLE MY_FONT 8 | CAPTION "Enter password" 9 | BEGIN 10 | LTEXT "&Enter password:", IDT_PASSWORD_ENTER, m, m, xc, 8 11 | EDITTEXT IDE_PASSWORD_PASSWORD, m, 20, xc, 14, ES_PASSWORD | ES_AUTOHSCROLL 12 | CONTROL "&Show password", IDX_PASSWORD_SHOW, MY_CHECKBOX, m, 42, xc, 10 13 | OK_CANCEL 14 | END 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h: -------------------------------------------------------------------------------- 1 | #define IDD_PASSWORD 3800 2 | #define IDT_PASSWORD_ENTER 3801 3 | #define IDX_PASSWORD_SHOW 3803 4 | 5 | #define IDE_PASSWORD_PASSWORD 120 6 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc: -------------------------------------------------------------------------------- 1 | #include "ProgressDialogRes.h" 2 | #include "../../GuiCommon.rc" 3 | 4 | #define xc 172 5 | #define yc 44 6 | 7 | IDD_PROGRESS DIALOG 0, 0, xs, ys MY_MODAL_DIALOG_STYLE MY_FONT 8 | CAPTION "Progress" 9 | BEGIN 10 | PUSHBUTTON "Cancel", IDCANCEL, bx, by, bxs, bys 11 | CONTROL "Progress1", IDC_PROGRESS1, "msctls_progress32", PBS_SMOOTH | WS_BORDER, m, m, xc, 14 12 | END 13 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc: -------------------------------------------------------------------------------- 1 | #include "ProgressDialog2Res.h" 2 | #include "../../GuiCommon.rc" 3 | 4 | #undef DIALOG_ID 5 | #define DIALOG_ID IDD_PROGRESS 6 | #define xc 360 7 | #define k 11 8 | #define z1s 16 9 | 10 | #include "ProgressDialog2a.rc" 11 | 12 | #ifdef UNDER_CE 13 | 14 | #include "../../GuiCommon.rc" 15 | 16 | 17 | #undef DIALOG_ID 18 | #undef m 19 | #undef k 20 | #undef z1s 21 | 22 | #define DIALOG_ID IDD_PROGRESS_2 23 | #define m 4 24 | #define k 8 25 | #define z1s 12 26 | 27 | #define xc 280 28 | 29 | #include "ProgressDialog2a.rc" 30 | 31 | #endif 32 | 33 | STRINGTABLE DISCARDABLE 34 | { 35 | IDS_PROGRESS_PAUSED "Paused" 36 | IDS_PROGRESS_FOREGROUND "&Foreground" 37 | IDS_CONTINUE "&Continue" 38 | IDS_PROGRESS_ASK_CANCEL "Are you sure you want to cancel?" 39 | IDS_CLOSE "&Close" 40 | } 41 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h: -------------------------------------------------------------------------------- 1 | #define IDD_PROGRESS 97 2 | 3 | #define IDC_PROGRESS1 100 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp: -------------------------------------------------------------------------------- 1 | // PropertyName.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../../Common/IntToString.h" 6 | 7 | #include "LangUtils.h" 8 | #include "PropertyName.h" 9 | 10 | UString GetNameOfProperty(PROPID propID, const wchar_t *name) 11 | { 12 | if (propID < 1000) 13 | { 14 | UString s = LangString(1000 + propID); 15 | if (!s.IsEmpty()) 16 | return s; 17 | } 18 | if (name) 19 | return name; 20 | wchar_t temp[16]; 21 | ConvertUInt32ToString(propID, temp); 22 | return temp; 23 | } 24 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/PropertyName.h: -------------------------------------------------------------------------------- 1 | // PropertyName.h 2 | 3 | #ifndef __PROPERTY_NAME_H 4 | #define __PROPERTY_NAME_H 5 | 6 | #include "../../../Common/MyString.h" 7 | 8 | UString GetNameOfProperty(PROPID propID, const wchar_t *name); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/FileManager/resourceGui.h: -------------------------------------------------------------------------------- 1 | #define IDI_ICON 1 2 | 3 | #define IDS_MESSAGE_NO_ERRORS 3001 4 | 5 | #define IDS_PROGRESS_TESTING 3302 6 | #define IDS_OPENNING 3303 7 | #define IDS_SCANNING 3304 8 | 9 | #define IDS_CHECKSUM_CALCULATING 7500 10 | #define IDS_CHECKSUM_INFORMATION 7501 11 | #define IDS_CHECKSUM_CRC_DATA 7502 12 | #define IDS_CHECKSUM_CRC_DATA_NAMES 7503 13 | #define IDS_CHECKSUM_CRC_STREAMS_NAMES 7504 14 | 15 | #define IDS_INCORRECT_VOLUME_SIZE 7307 16 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h: -------------------------------------------------------------------------------- 1 | #define IDD_EXTRACT 3400 2 | #define IDD_EXTRACT_2 13400 3 | 4 | #define IDC_EXTRACT_PATH 100 5 | #define IDB_EXTRACT_SET_PATH 101 6 | #define IDC_EXTRACT_PATH_MODE 102 7 | #define IDC_EXTRACT_OVERWRITE_MODE 103 8 | 9 | #define IDE_EXTRACT_PASSWORD 120 10 | 11 | #define IDE_EXTRACT_NAME 130 12 | #define IDX_EXTRACT_NAME_ENABLE 131 13 | 14 | 15 | #define IDT_EXTRACT_EXTRACT_TO 3401 16 | #define IDT_EXTRACT_PATH_MODE 3410 17 | #define IDT_EXTRACT_OVERWRITE_MODE 3420 18 | 19 | #define IDX_EXTRACT_ELIM_DUP 3430 20 | #define IDX_EXTRACT_NT_SECUR 3431 21 | // #define IDX_EXTRACT_ALT_STREAMS 3432 22 | 23 | #define IDX_PASSWORD_SHOW 3803 24 | #define IDG_PASSWORD 3807 25 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/7zip/UI/GUI/resource2.h: -------------------------------------------------------------------------------- 1 | #define IDS_PROGRESS_COMPRESSING 3301 2 | #define IDS_ARCHIVES_COLON 3907 3 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/AutoPtr.h: -------------------------------------------------------------------------------- 1 | // Common/AutoPtr.h 2 | 3 | #ifndef __COMMON_AUTOPTR_H 4 | #define __COMMON_AUTOPTR_H 5 | 6 | template class CMyAutoPtr 7 | { 8 | T *_p; 9 | public: 10 | CMyAutoPtr(T *p = 0) : _p(p) {} 11 | CMyAutoPtr(CMyAutoPtr& p): _p(p.release()) {} 12 | CMyAutoPtr& operator=(CMyAutoPtr& p) 13 | { 14 | reset(p.release()); 15 | return (*this); 16 | } 17 | ~CMyAutoPtr() { delete _p; } 18 | T& operator*() const { return *_p; } 19 | // T* operator->() const { return (&**this); } 20 | T* get() const { return _p; } 21 | T* release() 22 | { 23 | T *tmp = _p; 24 | _p = 0; 25 | return tmp; 26 | } 27 | void reset(T* p = 0) 28 | { 29 | if (p != _p) 30 | delete _p; 31 | _p = p; 32 | } 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/CRC.cpp: -------------------------------------------------------------------------------- 1 | // Common/CRC.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../C/7zCrc.h" 6 | 7 | struct CCRCTableInit { CCRCTableInit() { CrcGenerateTable(); } } g_CRCTableInit; 8 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/ComTry.h: -------------------------------------------------------------------------------- 1 | // ComTry.h 2 | 3 | #ifndef __COM_TRY_H 4 | #define __COM_TRY_H 5 | 6 | #include "MyWindows.h" 7 | // #include "Exception.h" 8 | // #include "NewHandler.h" 9 | 10 | #define COM_TRY_BEGIN try { 11 | #define COM_TRY_END } catch(...) { return E_OUTOFMEMORY; } 12 | 13 | /* 14 | #define COM_TRY_END } \ 15 | catch(const CNewException &) { return E_OUTOFMEMORY; } \ 16 | catch(...) { return HRESULT_FROM_WIN32(ERROR_NOACCESS); } \ 17 | */ 18 | // catch(const CSystemException &e) { return e.ErrorCode; } 19 | // catch(...) { return E_FAIL; } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/Defs.h: -------------------------------------------------------------------------------- 1 | // Common/Defs.h 2 | 3 | #ifndef __COMMON_DEFS_H 4 | #define __COMMON_DEFS_H 5 | 6 | template inline T MyMin(T a, T b) { return a < b ? a : b; } 7 | template inline T MyMax(T a, T b) { return a > b ? a : b; } 8 | 9 | template inline int MyCompare(T a, T b) 10 | { return a == b ? 0 : (a < b ? -1 : 1); } 11 | 12 | inline int BoolToInt(bool v) { return (v ? 1 : 0); } 13 | inline bool IntToBool(int v) { return (v != 0); } 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/Lang.h: -------------------------------------------------------------------------------- 1 | // Common/Lang.h 2 | 3 | #ifndef __COMMON_LANG_H 4 | #define __COMMON_LANG_H 5 | 6 | #include "MyString.h" 7 | 8 | class CLang 9 | { 10 | wchar_t *_text; 11 | CRecordVector _ids; 12 | CRecordVector _offsets; 13 | 14 | bool OpenFromString(const AString &s); 15 | public: 16 | CLang(): _text(0) {} 17 | ~CLang() { Clear(); } 18 | bool Open(CFSTR fileName, const char *id); 19 | void Clear() throw(); 20 | const wchar_t *Get(UInt32 id) const throw(); 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/ListFileUtils.h: -------------------------------------------------------------------------------- 1 | // Common/ListFileUtils.h 2 | 3 | #ifndef __COMMON_LIST_FILE_UTILS_H 4 | #define __COMMON_LIST_FILE_UTILS_H 5 | 6 | #include "MyString.h" 7 | #include "MyTypes.h" 8 | 9 | #define MY__CP_UTF16 1200 10 | #define MY__CP_UTF16BE 1201 11 | 12 | // bool ReadNamesFromListFile(CFSTR fileName, UStringVector &strings, UINT codePage = CP_OEMCP); 13 | 14 | // = CP_OEMCP 15 | bool ReadNamesFromListFile2(CFSTR fileName, UStringVector &strings, UINT codePage, 16 | DWORD &lastError); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/MyException.h: -------------------------------------------------------------------------------- 1 | // Common/Exception.h 2 | 3 | #ifndef __COMMON_EXCEPTION_H 4 | #define __COMMON_EXCEPTION_H 5 | 6 | #include "MyWindows.h" 7 | 8 | struct CSystemException 9 | { 10 | HRESULT ErrorCode; 11 | CSystemException(HRESULT errorCode): ErrorCode(errorCode) {} 12 | }; 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/MyTypes.h: -------------------------------------------------------------------------------- 1 | // Common/MyTypes.h 2 | 3 | #ifndef __COMMON_MY_TYPES_H 4 | #define __COMMON_MY_TYPES_H 5 | 6 | #include "../../C/7zTypes.h" 7 | 8 | typedef int HRes; 9 | 10 | struct CBoolPair 11 | { 12 | bool Val; 13 | bool Def; 14 | 15 | CBoolPair(): Val(false), Def(false) {} 16 | 17 | void Init() 18 | { 19 | Val = false; 20 | Def = false; 21 | } 22 | 23 | void SetTrueTrue() 24 | { 25 | Val = true; 26 | Def = true; 27 | } 28 | }; 29 | 30 | #define CLASS_NO_COPY(cls) \ 31 | private: \ 32 | cls(const cls &); \ 33 | cls &operator=(const cls &); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/MyUnknown.h: -------------------------------------------------------------------------------- 1 | // MyUnknown.h 2 | 3 | #ifndef __MY_UNKNOWN_H 4 | #define __MY_UNKNOWN_H 5 | 6 | #include "MyWindows.h" 7 | 8 | /* 9 | #ifdef _WIN32 10 | #include 11 | #include 12 | #else 13 | #include "MyWindows.h" 14 | #endif 15 | */ 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/MyVector.cpp: -------------------------------------------------------------------------------- 1 | // Common/MyVector.cpp 2 | 3 | #include "StdAfx.h" 4 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/TextConfig.h: -------------------------------------------------------------------------------- 1 | // Common/TextConfig.h 2 | 3 | #ifndef __COMMON_TEXT_CONFIG_H 4 | #define __COMMON_TEXT_CONFIG_H 5 | 6 | #include "MyString.h" 7 | 8 | struct CTextConfigPair 9 | { 10 | UString ID; 11 | UString String; 12 | }; 13 | 14 | bool GetTextConfig(const AString &text, CObjectVector &pairs); 15 | 16 | int FindTextConfigItem(const CObjectVector &pairs, const char *id) throw(); 17 | UString GetTextConfigValue(const CObjectVector &pairs, const char *id); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/UTFConvert.h: -------------------------------------------------------------------------------- 1 | // Common/UTFConvert.h 2 | 3 | #ifndef __COMMON_UTF_CONVERT_H 4 | #define __COMMON_UTF_CONVERT_H 5 | 6 | #include "MyString.h" 7 | 8 | bool CheckUTF8(const char *src, bool allowReduced = false) throw(); 9 | bool ConvertUTF8ToUnicode(const AString &utfString, UString &resultString); 10 | void ConvertUnicodeToUTF8(const UString &unicodeString, AString &resultString); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Common/XzCrc64Init.cpp: -------------------------------------------------------------------------------- 1 | // XzCrc64Init.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "../../C/XzCrc64.h" 6 | 7 | static struct CCrc64Gen { CCrc64Gen() { Crc64GenerateTable(); } } g_Crc64TableInit; 8 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/CommonDialog.h: -------------------------------------------------------------------------------- 1 | // Windows/CommonDialog.h 2 | 3 | #ifndef __WINDOWS_COMMON_DIALOG_H 4 | #define __WINDOWS_COMMON_DIALOG_H 5 | 6 | #include "../Common/MyString.h" 7 | 8 | namespace NWindows { 9 | 10 | bool MyGetOpenFileName(HWND hwnd, LPCWSTR title, 11 | LPCWSTR initialDir, // can be NULL, so dir prefix in filePath will be used 12 | LPCWSTR filePath, // full path 13 | LPCWSTR filterDescription, // like "All files (*.*)" 14 | LPCWSTR filter, // like "*.exe" 15 | UString &resPath 16 | #ifdef UNDER_CE 17 | , bool openFolder = false 18 | #endif 19 | ); 20 | 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Control/Edit.h: -------------------------------------------------------------------------------- 1 | // Windows/Control/Edit.h 2 | 3 | #ifndef __WINDOWS_CONTROL_EDIT_H 4 | #define __WINDOWS_CONTROL_EDIT_H 5 | 6 | #include "../Window.h" 7 | 8 | namespace NWindows { 9 | namespace NControl { 10 | 11 | class CEdit: public CWindow 12 | { 13 | public: 14 | void SetPasswordChar(WPARAM c) { SendMsg(EM_SETPASSWORDCHAR, c); } 15 | }; 16 | 17 | }} 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Control/ImageList.cpp: -------------------------------------------------------------------------------- 1 | // Windows/Control/ImageList.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "ImageList.h" 6 | 7 | namespace NWindows { 8 | namespace NControl { 9 | 10 | }} 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Control/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Control/Trackbar.h: -------------------------------------------------------------------------------- 1 | // Windows/Control/Trackbar.h 2 | 3 | #ifndef __WINDOWS_CONTROL_TRACKBAR_H 4 | #define __WINDOWS_CONTROL_TRACKBAR_H 5 | 6 | #include "../Window.h" 7 | 8 | namespace NWindows { 9 | namespace NControl { 10 | 11 | class CTrackbar: public CWindow 12 | { 13 | public: 14 | void SetRange(int minimum, int maximum, bool redraw = true) 15 | { SendMsg(TBM_SETRANGE, BoolToBOOL(redraw), MAKELONG(minimum, maximum)); } 16 | void SetPos(int pos, bool redraw = true) 17 | { SendMsg(TBM_SETPOS, BoolToBOOL(redraw), pos); } 18 | void SetTicFreq(int freq) 19 | { SendMsg(TBM_SETTICFREQ, freq); } 20 | 21 | int GetPos() 22 | { return (int)SendMsg(TBM_GETPOS); } 23 | }; 24 | 25 | }} 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Defs.h: -------------------------------------------------------------------------------- 1 | // Windows/Defs.h 2 | 3 | #ifndef __WINDOWS_DEFS_H 4 | #define __WINDOWS_DEFS_H 5 | 6 | #include "../Common/MyWindows.h" 7 | 8 | #ifdef _WIN32 9 | inline bool LRESULTToBool(LRESULT v) { return (v != FALSE); } 10 | inline bool BOOLToBool(BOOL v) { return (v != FALSE); } 11 | inline BOOL BoolToBOOL(bool v) { return (v ? TRUE: FALSE); } 12 | #endif 13 | 14 | inline VARIANT_BOOL BoolToVARIANT_BOOL(bool v) { return (v ? VARIANT_TRUE: VARIANT_FALSE); } 15 | inline bool VARIANT_BOOLToBool(VARIANT_BOOL v) { return (v != VARIANT_FALSE); } 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/ErrorMsg.h: -------------------------------------------------------------------------------- 1 | // Windows/ErrorMsg.h 2 | 3 | #ifndef __WINDOWS_ERROR_MSG_H 4 | #define __WINDOWS_ERROR_MSG_H 5 | 6 | #include "../Common/MyString.h" 7 | 8 | namespace NWindows { 9 | namespace NError { 10 | 11 | UString MyFormatMessage(DWORD errorCode); 12 | 13 | }} 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/FileMapping.cpp: -------------------------------------------------------------------------------- 1 | // Windows/FileMapping.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "FileMapping.h" 6 | 7 | namespace NWindows { 8 | namespace NFile { 9 | namespace NMapping { 10 | 11 | 12 | }}} 13 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/FileSystem.h: -------------------------------------------------------------------------------- 1 | // Windows/FileSystem.h 2 | 3 | #ifndef __WINDOWS_FILE_SYSTEM_H 4 | #define __WINDOWS_FILE_SYSTEM_H 5 | 6 | #include "../Common/MyString.h" 7 | #include "../Common/MyTypes.h" 8 | 9 | namespace NWindows { 10 | namespace NFile { 11 | namespace NSystem { 12 | 13 | bool MyGetVolumeInformation( 14 | CFSTR rootPath , 15 | UString &volumeName, 16 | LPDWORD volumeSerialNumber, 17 | LPDWORD maximumComponentLength, 18 | LPDWORD fileSystemFlags, 19 | UString &fileSystemName); 20 | 21 | UINT MyGetDriveType(CFSTR pathName); 22 | 23 | bool MyGetDiskFreeSpace(CFSTR rootPath, UInt64 &clusterSize, UInt64 &totalSize, UInt64 &freeSize); 24 | 25 | }}} 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Handle.h: -------------------------------------------------------------------------------- 1 | // Windows/Handle.h 2 | 3 | #ifndef __WINDOWS_HANDLE_H 4 | #define __WINDOWS_HANDLE_H 5 | 6 | namespace NWindows { 7 | 8 | class CHandle 9 | { 10 | protected: 11 | HANDLE _handle; 12 | public: 13 | operator HANDLE() { return _handle; } 14 | CHandle(): _handle(NULL) {} 15 | ~CHandle() { Close(); } 16 | bool IsCreated() const { return (_handle != NULL); } 17 | bool Close() 18 | { 19 | if (_handle == NULL) 20 | return true; 21 | if (!::CloseHandle(_handle)) 22 | return false; 23 | _handle = NULL; 24 | return true; 25 | } 26 | void Attach(HANDLE handle) { _handle = handle; } 27 | HANDLE Detach() 28 | { 29 | HANDLE handle = _handle; 30 | _handle = NULL; 31 | return handle; 32 | } 33 | }; 34 | 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/ResourceString.h: -------------------------------------------------------------------------------- 1 | // Windows/ResourceString.h 2 | 3 | #ifndef __WINDOWS_RESOURCE_STRING_H 4 | #define __WINDOWS_RESOURCE_STRING_H 5 | 6 | #include "../Common/MyString.h" 7 | 8 | namespace NWindows { 9 | 10 | UString MyLoadString(UINT resourceID); 11 | void MyLoadString(HINSTANCE hInstance, UINT resourceID, UString &dest); 12 | void MyLoadString(UINT resourceID, UString &dest); 13 | 14 | } 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/StdAfx.h: -------------------------------------------------------------------------------- 1 | // StdAfx.h 2 | 3 | #ifndef __STDAFX_H 4 | #define __STDAFX_H 5 | 6 | #include "../Common/Common.h" 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /3rdparty/lzma/CPP/Windows/Synchronization.cpp: -------------------------------------------------------------------------------- 1 | // Windows/Synchronization.cpp 2 | 3 | #include "StdAfx.h" 4 | 5 | #include "Synchronization.h" 6 | 7 | namespace NWindows { 8 | namespace NSynchronization { 9 | 10 | }} 11 | -------------------------------------------------------------------------------- /3rdparty/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs: -------------------------------------------------------------------------------- 1 | // IMatchFinder.cs 2 | 3 | using System; 4 | 5 | namespace SevenZip.Compression.LZ 6 | { 7 | interface IInWindowStream 8 | { 9 | void SetStream(System.IO.Stream inStream); 10 | void Init(); 11 | void ReleaseStream(); 12 | Byte GetIndexByte(Int32 index); 13 | UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit); 14 | UInt32 GetNumAvailableBytes(); 15 | } 16 | 17 | interface IMatchFinder : IInWindowStream 18 | { 19 | void Create(UInt32 historySize, UInt32 keepAddBufferBefore, 20 | UInt32 matchMaxLen, UInt32 keepAddBufferAfter); 21 | UInt32 GetMatches(UInt32[] distances); 22 | void Skip(UInt32 num); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /3rdparty/lzma/DOC/installer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/DOC/installer.txt -------------------------------------------------------------------------------- /3rdparty/lzma/DOC/lzma-history.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/3rdparty/lzma/DOC/lzma-history.txt -------------------------------------------------------------------------------- /3rdparty/lzma/Java/SevenZip/ICodeProgress.java: -------------------------------------------------------------------------------- 1 | package SevenZip; 2 | 3 | public interface ICodeProgress 4 | { 5 | public void SetProgress(long inSize, long outSize); 6 | } 7 | -------------------------------------------------------------------------------- /3rdparty/pstl/oneDPL/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.20) 2 | include(${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/toolchains/android/build.cmake) 3 | 4 | if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") 5 | if(NOT DEFINED ONETBB_INSTALL_DIR) 6 | message(FATAL_ERROR "oneDPL submodule requires valid ONETBB_INSTALL_DIR!") 7 | endif() 8 | 9 | set(TBB_DIR ${ONETBB_INSTALL_DIR}/lib/cmake/TBB CACHE INTERNAL "" FORCE) 10 | set(ONEDPL_BACKEND tbb CACHE STRING "" FORCE) 11 | add_subdirectory(oneDPL oneDPL) 12 | 13 | if(ANDROID) 14 | add_compile_options( 15 | $<$:-glldb> 16 | ) 17 | endif() 18 | endif() -------------------------------------------------------------------------------- /cmake/FindGitBash.cmake: -------------------------------------------------------------------------------- 1 | if(NOT DEFINED GIT_EXECUTABLE) 2 | message(FATAL_ERROR "GIT_EXECUTABLE must be defined!") 3 | endif() 4 | 5 | cmake_path(GET GIT_EXECUTABLE PARENT_PATH _GIT_CMD_INSTALL_DIR_) # /cmd directory 6 | cmake_path(GET _GIT_CMD_INSTALL_DIR_ PARENT_PATH _GIT_INSTALL_DIR_) # /Git directory 7 | 8 | find_program(GIT_BASH_EXECUTABLE NAMES "git-bash.exe" PATHS "${_GIT_INSTALL_DIR_}") 9 | 10 | include(FindPackageHandleStandardArgs) 11 | find_package_handle_standard_args(GitBash REQUIRED_VARS GIT_BASH_EXECUTABLE) 12 | -------------------------------------------------------------------------------- /cmake/adjust/definitions.cmake: -------------------------------------------------------------------------------- 1 | include_guard(GLOBAL) 2 | 3 | function(nbl_adjust_definitions) 4 | add_compile_definitions( 5 | PNG_THREAD_UNSAFE_OK 6 | PNG_NO_MMX_CODE 7 | PNG_NO_MNG_FEATURES 8 | _7ZIP_ST 9 | SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS 10 | BOOST_ALL_NO_LIB 11 | ) 12 | 13 | if(MSVC) 14 | add_compile_definitions( 15 | _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR 16 | ) 17 | endif() 18 | 19 | if(ANDROID) 20 | add_compile_definitions( 21 | NBL_ANDROID_TOOLCHAIN 22 | ) 23 | endif() 24 | 25 | if(WIN32) 26 | add_compile_definitions( 27 | WIN32 28 | __GNUWIN32__ 29 | _CRT_SECURE_NO_DEPRECATE 30 | NOMINMAX 31 | ) 32 | endif() 33 | endfunction() -------------------------------------------------------------------------------- /cmake/adjust/template/vendor/CXX_Clang.cmake: -------------------------------------------------------------------------------- 1 | include_guard(GLOBAL) 2 | 3 | set(LANG CXX) 4 | include("${CMAKE_CURRENT_LIST_DIR}/impl/Clang.cmake") 5 | # append unique CXX options here -------------------------------------------------------------------------------- /cmake/adjust/template/vendor/CXX_MSVC.cmake: -------------------------------------------------------------------------------- 1 | include_guard(GLOBAL) 2 | 3 | set(LANG CXX) 4 | include("${CMAKE_CURRENT_LIST_DIR}/impl/MSVC.cmake") 5 | # append unique CXX options here -------------------------------------------------------------------------------- /cmake/adjust/template/vendor/C_Clang.cmake: -------------------------------------------------------------------------------- 1 | include_guard(GLOBAL) 2 | 3 | set(LANG C) 4 | include("${CMAKE_CURRENT_LIST_DIR}/impl/Clang.cmake") 5 | # append unique C options here -------------------------------------------------------------------------------- /cmake/adjust/template/vendor/C_MSVC.cmake: -------------------------------------------------------------------------------- 1 | include_guard(GLOBAL) 2 | 3 | set(LANG C) 4 | include("${CMAKE_CURRENT_LIST_DIR}/impl/MSVC.cmake") 5 | # append unique C options here -------------------------------------------------------------------------------- /cmake/adjust/template/vendor/impl/MSVC.cmake: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/reset.cmake") 2 | include("${CMAKE_CURRENT_LIST_DIR}/frontend/MSVC.cmake") 3 | 4 | # vendor template with options fitting for both C and CXX LANGs 5 | 6 | if(NBL_REQUEST_SSE_4_2) 7 | NBL_REQUEST_COMPILE_OPTION_SUPPORT(LANG ${LANG} COMPILE_OPTIONS 8 | /arch:SSE4.2 # https://learn.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-170 9 | ) # TODO: (****) should be (?) optional but then adjust 3rdparty options on fail 10 | endif() -------------------------------------------------------------------------------- /cmake/adjust/template/vendor/impl/reset.cmake: -------------------------------------------------------------------------------- 1 | # init profiles vars by resetting required lists 2 | 3 | foreach(LANG CXX C) 4 | foreach(WHAT COMPILE LINK DEFINITIONS) 5 | set(NBL_${LANG}_${WHAT}_OPTIONS "") 6 | foreach(CONFIG RELEASE RELWITHDEBINFO DEBUG) 7 | set(NBL_${LANG}_${CONFIG}_${WHAT}_OPTIONS "") 8 | endforeach() 9 | endforeach() 10 | endforeach() -------------------------------------------------------------------------------- /cmake/config/msvc/application.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /cmake/cpack/find/compoment/template.cmake: -------------------------------------------------------------------------------- 1 | list(TRANSFORM @_NBL_PROXY_@ PREPEND "${CMAKE_CURRENT_LIST_DIR}/") 2 | 3 | set(@_NBL_COMPOMENT_D_@ "${CMAKE_CURRENT_LIST_DIR}/@_NBL_COMPOMENT_D_V_@") 4 | 5 | include(FindPackageHandleStandardArgs) 6 | find_package_handle_standard_args(@_NBL_PACKAGE_@ DEFAULT_MSG @_NBL_PROXY_@ @_NBL_COMPOMENT_D_@) -------------------------------------------------------------------------------- /cmake/cpack/find/config/template.cmake: -------------------------------------------------------------------------------- 1 | find_package(@_NBL_PACKAGE_@ 2 | REQUIRED 3 | CONFIG 4 | GLOBAL 5 | PATHS "${CMAKE_CURRENT_LIST_DIR}/compoment" 6 | NO_DEFAULT_PATH 7 | NO_PACKAGE_ROOT_PATH 8 | NO_CMAKE_PATH 9 | NO_CMAKE_ENVIRONMENT_PATH 10 | NO_SYSTEM_ENVIRONMENT_PATH 11 | NO_CMAKE_PACKAGE_REGISTRY 12 | NO_CMAKE_SYSTEM_PATH 13 | NO_CMAKE_INSTALL_PREFIX 14 | NO_CMAKE_SYSTEM_PACKAGE_REGISTRY 15 | ) -------------------------------------------------------------------------------- /cmake/cpack/find/licence/template.cmake: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018-2025 - DevSH Graphics Programming Sp. z O.O. 2 | # This file is part of the "Nabla Engine". 3 | # For conditions of distribution and use, see copyright notice in nabla.h -------------------------------------------------------------------------------- /cmake/install/nbl/sharedDefines.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | Those defines are included to the installed define.h header 3 | if the library has been built as DLL. 4 | */ 5 | 6 | #define _NABLA_DLL_NAME_ "@_NABLA_DLL_NAME_@" 7 | #define _DXC_DLL_NAME_ "@_DXC_DLL_NAME_@" 8 | #define _NABLA_INSTALL_DIR_ @_NABLA_INSTALL_DIR_@ -------------------------------------------------------------------------------- /cmake/manifest/msvc/devshgraphicsprogramming.nabla.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | nsc: 3 | container_name: nsc-godbolt 4 | image: ghcr.io/devsh-graphics-programming/nabla-shader-compiler-godbolt:latest 5 | isolation: process 6 | ports: 7 | - "80:10240" 8 | volumes: 9 | - type: bind 10 | source: C:\Windows\Globalization\ICU 11 | target: C:\Windows\Globalization\ICU 12 | read_only: true 13 | - type: bind 14 | source: C:\Windows\System32 15 | target: C:\mount\Windows\System32 16 | read_only: true 17 | restart: always 18 | 19 | networks: 20 | default: 21 | external: true 22 | name: docker_default 23 | -------------------------------------------------------------------------------- /docker/ci-windows.env: -------------------------------------------------------------------------------- 1 | NBL_CI_MODE=ON 2 | NBL_CI_BUILD_DIRECTORY=C:\mount\nabla\build-ct -------------------------------------------------------------------------------- /docker/compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | git-cache-updater: 3 | build: 4 | context: ./git-cache 5 | dockerfile: Dockerfile 6 | image: dcr.devsh.eu/nabla/source/git-cache:latest 7 | container_name: git.cache.update 8 | networks: 9 | docker_default: 10 | nabla: 11 | build: 12 | context: . 13 | dockerfile: Dockerfile 14 | image: dcr.devsh.eu/nabla/source 15 | container_name: dev.nabla.build 16 | env_file: 17 | - .env 18 | environment: 19 | - THIS_PROJECT_WORKING_DIRECTORY=${THIS_PROJECT_WORKING_DIRECTORY} 20 | - THIS_PROJECT_NABLA_DIRECTORY=${THIS_PROJECT_NABLA_DIRECTORY} 21 | networks: 22 | docker_default: 23 | deploy: 24 | resources: 25 | limits: 26 | cpus: '6' 27 | memory: 12G 28 | depends_on: 29 | - git-cache-updater 30 | 31 | networks: 32 | docker_default: 33 | external: true -------------------------------------------------------------------------------- /docker/ninja.env: -------------------------------------------------------------------------------- 1 | NINJA_STATUS=[%r jobs, %f/%t edges, %oe/s, elapsed %ws]: -------------------------------------------------------------------------------- /include/nbl/asset/IImageView.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/include/nbl/asset/IImageView.h -------------------------------------------------------------------------------- /include/nbl/asset/RasterizationStates.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/include/nbl/asset/RasterizationStates.h -------------------------------------------------------------------------------- /include/nbl/asset/filters/CBufferToImageCopyImageFilter.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_ASSET_C_BUFFER_TO_IMAGE_COPY_IMAGE_FILTER_H_INCLUDED__ 6 | #define __NBL_ASSET_C_BUFFER_TO_IMAGE_COPY_IMAGE_FILTER_H_INCLUDED__ 7 | 8 | #include "nbl/asset/filters/CFlattenRegionsImageFilter.h" 9 | 10 | namespace nbl 11 | { 12 | namespace asset 13 | { 14 | 15 | using CBufferToImageCopyImageFilter = CFlattenRegionsImageFilter; 16 | 17 | } // end namespace asset 18 | } // end namespace nbl 19 | 20 | #endif -------------------------------------------------------------------------------- /include/nbl/asset/interchange/IImageLoader.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_ASSET_I_IMAGE_LOADER_H_INCLUDED__ 6 | #define __NBL_ASSET_I_IMAGE_LOADER_H_INCLUDED__ 7 | 8 | #include "nbl/core/declarations.h" 9 | 10 | #include "nbl/asset/ICPUImageView.h" 11 | #include "nbl/asset/interchange/IAssetLoader.h" 12 | #include "nbl/asset/interchange/IImageAssetHandlerBase.h" 13 | 14 | namespace nbl::asset 15 | { 16 | 17 | class IImageLoader : public IAssetLoader, public IImageAssetHandlerBase 18 | { 19 | public: 20 | 21 | protected: 22 | 23 | IImageLoader() {} 24 | virtual ~IImageLoader() = 0; 25 | 26 | private: 27 | }; 28 | 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /include/nbl/asset/material_compiler/CMaterialCompilerGLSLRasterBackend.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_ASSET_C_MITSUBA_MATERIAL_COMPILER_GLSL_RASTER_BACKEND_H_INCLUDED__ 6 | #define __NBL_ASSET_C_MITSUBA_MATERIAL_COMPILER_GLSL_RASTER_BACKEND_H_INCLUDED__ 7 | 8 | #include 9 | 10 | namespace nbl::asset::material_compiler 11 | { 12 | 13 | class CMaterialCompilerGLSLRasterBackend : public CMaterialCompilerGLSLBackendCommon 14 | { 15 | using base_t = CMaterialCompilerGLSLBackendCommon; 16 | 17 | public: 18 | result_t compile(SContext* _ctx, IR* _ir, E_GENERATOR_STREAM_TYPE _generatorChoiceStream=EGST_PRESENT) override; 19 | }; 20 | 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /include/nbl/asset/material_compiler/IFrontend.h: -------------------------------------------------------------------------------- 1 | #ifndef __NBL_MATERIAL_COMPILER_I_FRONTEND_H_INCLUDED__ 2 | #define __NBL_MATERIAL_COMPILER_I_FRONTEND_H_INCLUDED__ 3 | 4 | #include 5 | #include 6 | 7 | namespace nbl::asset::material_compiler 8 | { 9 | 10 | class IFrontend : public core::IReferenceCounted 11 | { 12 | public: 13 | virtual core::smart_refctd_ptr compileToIR(); 14 | }; 15 | 16 | } 17 | 18 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/cache/ICacheKeyCreator.h: -------------------------------------------------------------------------------- 1 | #ifndef __I_CACHE_KEY_CREATOR_H_INCLUDED__ 2 | #define __I_CACHE_KEY_CREATOR_H_INCLUDED__ 3 | 4 | #include "nbl/asset/IAsset.h" 5 | 6 | namespace nbl 7 | { 8 | namespace asset 9 | { 10 | class NBL_API2 ICacheKeyCreator 11 | { 12 | public: 13 | virtual std::string to_string() = 0; 14 | 15 | template 16 | _NBL_STATIC_INLINE std::string getHexString(const Type& value) 17 | { 18 | std::stringstream stream; 19 | stream << std::setfill('0') << std::hex << value; 20 | return stream.str(); 21 | }; 22 | }; 23 | } 24 | } 25 | 26 | #endif // __I_CACHE_KEY_CREATOR_H_INCLUDED__ 27 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/barycentric/extensions.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_BARYCENTRIC_EXTENSIONS_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_BARYCENTRIC_EXTENSIONS_INCLUDED_ 7 | 8 | #ifdef NBL_GL_NV_fragment_shader_barycentric 9 | #extension GL_NV_fragment_shader_barycentric : enable 10 | #elif defined(NBL_GL_AMD_shader_explicit_vertex_parameter) 11 | #extension GL_AMD_shader_explicit_vertex_parameter : enable 12 | #endif 13 | 14 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/bump_mapping/fragment.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_BUMP_MAPPING_FRAGMENT_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_BUMP_MAPPING_FRAGMENT_INCLUDED_ 7 | 8 | #ifndef _NBL_BUILTIN_GLSL_BUMP_MAPPING_DERIVATIVES_DECLARED_ 9 | #ifndef _NBL_BUILTIN_GLSL_BUMP_MAPPING_DERIVATIVES_DECLARED_ 10 | mat2x3 nbl_glsl_perturbNormal_dPdSomething(); 11 | mat2 nbl_glsl_perturbNormal_dUVdSomething(); 12 | #endif 13 | 14 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/bxdf/brdf/diffuse/fresnel_correction.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BSDF_BRDF_DIFFUSE_FRESNEL_CORRECTION_INCLUDED_ 6 | #define _NBL_BSDF_BRDF_DIFFUSE_FRESNEL_CORRECTION_INCLUDED_ 7 | 8 | vec3 nbl_glsl_diffuseFresnelCorrectionFactor(in vec3 n, in vec3 n2) 9 | { 10 | //assert(n*n==n2); 11 | bvec3 TIR = lessThan(n,vec3(1.0)); 12 | vec3 invdenum = mix(vec3(1.0), vec3(1.0)/(n2*n2*(vec3(554.33) - 380.7*n)), TIR); 13 | vec3 num = n*mix(vec3(0.1921156102251088),n*298.25 - 261.38*n2 + 138.43,TIR); 14 | num += mix(vec3(0.8078843897748912),vec3(-1.67),TIR); 15 | return num*invdenum; 16 | } 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/bxdf/bsdf/specular/common.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_BXDF_BSDF_SPECULAR_COMMON_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_BXDF_BSDF_SPECULAR_COMMON_INCLUDED_ 7 | 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | 14 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/culling_lod_selection/dispatch_indirect_params.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_GLSL_CULLING_LOD_SELECTION_DISPATCH_INDIRECT_PARAMS_GLSL_INCLUDED_ 2 | #define _NBL_GLSL_CULLING_LOD_SELECTION_DISPATCH_INDIRECT_PARAMS_GLSL_INCLUDED_ 3 | 4 | struct nbl_glsl_culling_lod_selection_dispatch_indirect_params_t 5 | { 6 | nbl_glsl_DispatchIndirectCommand_t instanceCullAndLoDSelect; // cleared to 1 by draw cull 7 | nbl_glsl_DispatchIndirectCommand_t instanceDrawCountPrefixSum; // cleared to 1 by scatter, filled out by instance Cull 8 | nbl_glsl_DispatchIndirectCommand_t instanceDrawCull; // set by the draw count prefix sum 9 | nbl_glsl_DispatchIndirectCommand_t instanceRefCountingSortScatter; // clear to 1 by draw count prefix sum, filled out by draw cull 10 | nbl_glsl_DispatchIndirectCommand_t drawCompact; // TODO 11 | }; 12 | 13 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/culling_lod_selection/potentially_visible_instance_draw_struct.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_GLSL_CULLING_LOD_SELECTION_POTENTIALLY_VISIBLE_INSTANCE_DRAW_STRUCT_GLSL_INCLUDED_ 2 | #define _NBL_GLSL_CULLING_LOD_SELECTION_POTENTIALLY_VISIBLE_INSTANCE_DRAW_STRUCT_GLSL_INCLUDED_ 3 | 4 | 5 | #ifdef __cplusplus 6 | #define uint uint32_t 7 | #endif 8 | struct nbl_glsl_culling_lod_selection_PotentiallyVisibleInstanceDraw_t 9 | { 10 | uint perViewPerInstanceID; 11 | uint drawBaseInstanceDWORDOffset; 12 | uint instanceID; 13 | }; // TODO: move 14 | #ifdef __cplusplus 15 | #undef uint 16 | #endif 17 | 18 | 19 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/ext/DepthPyramidGenerator/common.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_GLSL_EXT_DEPTH_PYRAMID_GENERATOR_COMMON_INCLUDED_ 6 | #define _NBL_GLSL_EXT_DEPTH_PYRAMID_GENERATOR_COMMON_INCLUDED_ 7 | 8 | #include 9 | 10 | layout(push_constant) uniform PushConstants 11 | { 12 | nbl_glsl_depthPyramid_PushConstantsData data; 13 | } pc; 14 | 15 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/ext/FFT/parameters_struct.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_GLSL_EXT_FFT_PARAMETERS_STRUCT_INCLUDED_ 6 | #define _NBL_GLSL_EXT_FFT_PARAMETERS_STRUCT_INCLUDED_ 7 | 8 | struct nbl_glsl_ext_FFT_Parameters_t 9 | { 10 | uvec4 input_dimensions; // settings packed into the w component : (isInverse << 31u) | (direction_u3 << 28u) | (maxChannel_u2<<26u) | (fftSizeLog2_u5 << 3u) | paddingType_u3; 11 | uvec4 input_strides; 12 | uvec4 output_strides; 13 | }; 14 | 15 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/ext/MitsubaLoader/instance_data_struct.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_EXT_MITSUBA_LOADER_INSTANCE_DATA_STRUCT_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_EXT_MITSUBA_LOADER_INSTANCE_DATA_STRUCT_INCLUDED_ 3 | 4 | 5 | #include 6 | 7 | struct nbl_glsl_ext_Mitsuba_Loader_instance_data_t 8 | { 9 | mat4x3 tform; 10 | vec3 normalMatrixRow0; 11 | uint padding0; 12 | vec3 normalMatrixRow1; 13 | uint padding1; 14 | vec3 normalMatrixRow2; 15 | uint determinantSignBit; 16 | nbl_glsl_MC_material_data_t material; 17 | }; 18 | 19 | 20 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/ext/RadeonRays/intersection.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_EXT_RADEON_RAYS_INTERSECTION_INCLUDED_ 2 | #define _NBL_EXT_RADEON_RAYS_INTERSECTION_INCLUDED_ 3 | 4 | struct nbl_glsl_ext_RadeonRays_Intersection 5 | { 6 | // Shape ID 7 | int shapeid; 8 | // Primitve ID 9 | int primid; 10 | // UV parametrization 11 | vec2 uv; 12 | }; 13 | 14 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/ext/RadeonRays/ray.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_GLSL_EXT_RADEON_RAYS_RAY_INCLUDED_ 2 | #define _NBL_GLSL_EXT_RADEON_RAYS_RAY_INCLUDED_ 3 | 4 | struct nbl_glsl_ext_RadeonRays_ray 5 | { 6 | vec3 origin; 7 | float maxT; // nbl_glsl_FLT_MAX 8 | vec3 direction; 9 | float time; 10 | int mask; // want to have it to -1 11 | int _active; // want to have it to 1 12 | uvec2 useless_padding; // can be used to forward data 13 | }; 14 | 15 | nbl_glsl_ext_RadeonRays_ray nbl_glsl_ext_RadeonRays_constructDefaultRay(in vec3 origin, in vec3 direction, in float maxLen, in uvec2 userData) 16 | { 17 | nbl_glsl_ext_RadeonRays_ray retval; 18 | retval.origin = origin; 19 | retval.maxT = maxLen; 20 | retval.direction = direction; 21 | retval.time = 0.0; 22 | retval.mask = -1; 23 | retval._active = 1; 24 | retval.useless_padding = userData; 25 | return retval; 26 | } 27 | 28 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/ext/RadixSort/parameters_struct.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_GLSL_EXT_RADIXSORT_PARAMETERS_STRUCT_INCLUDED_ 2 | #define _NBL_GLSL_EXT_RADIXSORT_PARAMETERS_STRUCT_INCLUDED_ 3 | 4 | struct nbl_glsl_ext_RadixSort_Parameters_t 5 | { 6 | uint shift; 7 | uint element_count_total; 8 | }; 9 | 10 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/loader/mtl/common.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_MTL_LOADER_COMMON_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_MTL_LOADER_COMMON_INCLUDED_ 7 | 8 | struct nbl_glsl_MTLMaterialParameters 9 | { 10 | vec3 Ka; 11 | vec3 Kd; 12 | vec3 Ks; 13 | vec3 Ke; 14 | vec4 Tf;//w component doesnt matter 15 | float Ns; 16 | float d; 17 | float bm; 18 | float Ni; 19 | float roughness; 20 | float metallic; 21 | float sheen; 22 | float clearcoatThickness; 23 | float clearcoatRoughness; 24 | float anisotropy; 25 | float anisoRotation; 26 | //extra info 27 | uint extra; 28 | }; 29 | 30 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/material_compiler/common_declarations.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2021 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_MATERIAL_COMPILER_COMMON_DECLARATIONS_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_MATERIAL_COMPILER_COMMON_DECLARATIONS_INCLUDED_ 7 | 8 | #include 9 | #include 10 | 11 | struct nbl_glsl_MC_bsdf_data_t 12 | { 13 | uvec4 data[sizeof_bsdf_data]; 14 | }; 15 | 16 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/math/constants.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_MATH_CONSTANTS_INCLUDED_ 6 | #define _NBL_MATH_CONSTANTS_INCLUDED_ 7 | 8 | #include 9 | 10 | #define nbl_glsl_PI 3.14159265359 11 | #define nbl_glsl_RECIPROCAL_PI 0.318309886183 12 | #define nbl_glsl_SQRT_RECIPROCAL_PI 0.56418958354 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/property_pool/transfer.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_GLSL_PROPERTY_POOL_TRANSFER_GLSL_INCLUDED_ 2 | #define _NBL_GLSL_PROPERTY_POOL_TRANSFER_GLSL_INCLUDED_ 3 | 4 | struct nbl_glsl_property_pool_transfer_t 5 | { 6 | int propertyDWORDsize_flags; 7 | int elementCount; 8 | uint srcIndexOffset; 9 | uint dstIndexOffset; 10 | }; 11 | #define NBL_BUILTIN_PROPERTY_POOL_TRANSFER_EF_DOWNLOAD 0x1u 12 | #define NBL_BUILTIN_PROPERTY_POOL_TRANSFER_EF_SRC_FILL 0x2u 13 | #define NBL_BUILTIN_PROPERTY_POOL_TRANSFER_EF_BIT_COUNT 2 14 | 15 | #define NBL_BUILTIN_PROPERTY_POOL_INVALID 0xdeadbeef 16 | 17 | #define NBL_BUILTIN_PROPERTY_POOL_MAX_PROPERTIES_PER_DISPATCH 128 18 | 19 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/sampling/box_muller_transform.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_BOX_MULLER_TRANSFORM_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_BOX_MULLER_TRANSFORM_INCLUDED_ 3 | 4 | #include 5 | 6 | vec2 nbl_glsl_BoxMullerTransform(in vec2 xi, in float stddev) 7 | { 8 | float sinPhi, cosPhi; 9 | nbl_glsl_sincos(2.0 * nbl_glsl_PI * xi.y - nbl_glsl_PI, sinPhi, cosPhi); 10 | return vec2(cosPhi, sinPhi) * sqrt(-2.0 * log(xi.x)) * stddev; 11 | } 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/sampling/linear.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_SAMPLING_LINEAR_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_SAMPLING_LINEAR_INCLUDED_ 3 | 4 | 5 | float nbl_glsl_sampling_generateLinearSample(in vec2 linearCoeffs, in float u) 6 | { 7 | const float rcpDiff = 1.0/(linearCoeffs[0]-linearCoeffs[1]); 8 | const vec2 squaredCoeffs = linearCoeffs*linearCoeffs; 9 | return abs(rcpDiff) 6 | 7 | 8 | struct nbl_glsl_scene_Animation_t 9 | { 10 | uint keyframeOffset; // same offset for timestamps and keyframes 11 | uint keyframesCount_interpolationMode; // 2 bits for interpolation mode 12 | }; 13 | 14 | // TODO: Design for this 15 | struct nbl_glsl_scene_AnimationBlend_t 16 | { 17 | uint nodeTargetID; 18 | uint desiredTimestamp; 19 | float weight; 20 | uint animationID; // or do we stick whole animation inside? 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/subgroup/shared_shuffle_portability.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_SUBGROUP_SHARED_SHUFFLE_PORTABILITY_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_SUBGROUP_SHARED_SHUFFLE_PORTABILITY_INCLUDED_ 3 | 4 | 5 | #include 6 | 7 | 8 | #ifdef NBL_GL_KHR_shader_subgroup_shuffle 9 | 10 | 11 | #define _NBL_GLSL_SUBGROUP_SHUFFLE_EMULATION_SHARED_SIZE_NEEDED_ 0 12 | 13 | 14 | #else 15 | 16 | 17 | #ifndef _NBL_GLSL_WORKGROUP_SIZE_ 18 | #error "_NBL_GLSL_WORKGROUP_SIZE_ should be defined." 19 | #endif 20 | 21 | #define _NBL_GLSL_SUBGROUP_SHUFFLE_EMULATION_SHARED_SIZE_NEEDED_ ((_NBL_GLSL_WORKGROUP_SIZE_+nbl_glsl_MaxSubgroupSize-1)&(-nbl_glsl_MaxSubgroupSize)) 22 | 23 | 24 | #endif // NBL_GL_KHR_shader_subgroup_shuffle 25 | 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/transform_tree/global_transform_and_normal_matrix_update.comp: -------------------------------------------------------------------------------- 1 | #version 440 core 2 | #include "nbl/builtin/glsl/transform_tree/global_transform_update_common.glsl" 3 | 4 | void nbl_glsl_transform_tree_globalTransformUpdate_updateNormalMatrix(in uint nodeID, in mat4x3 globalTransform) 5 | { 6 | mat3 sub3x3TransposeCofactors; 7 | const uint signflip = nbl_glsl_sub3x3TransposeCofactors(mat3(globalTransform),sub3x3TransposeCofactors); 8 | nodeNormalMatrix.data[nodeID] = nbl_glsl_CompressedNormalMatrix_t_encode(signflip,sub3x3TransposeCofactors); 9 | } -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/transform_tree/global_transform_update.comp: -------------------------------------------------------------------------------- 1 | #version 440 core 2 | #define NBL_GLSL_TRANSFORM_TREE_POOL_NODE_NORMAL_MATRIX_DESCRIPTOR_DECLARED 3 | #include "nbl/builtin/glsl/transform_tree/global_transform_update_common.glsl" 4 | 5 | void nbl_glsl_transform_tree_globalTransformUpdate_updateNormalMatrix(in uint nodeID, in mat4x3 globalTransform) {} -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/transform_tree/modification_request_range.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_GLSL_TRANSFORM_TREE_MODIFICATION_REQUEST_RANGE_GLSL_INCLUDED_ 2 | #define _NBL_GLSL_TRANSFORM_TREE_MODIFICATION_REQUEST_RANGE_GLSL_INCLUDED_ 3 | 4 | struct nbl_glsl_transform_tree_modification_request_range_t 5 | { 6 | uint nodeID; 7 | int requestsBegin; 8 | int requestsEnd; 9 | uint newTimestamp; 10 | }; 11 | 12 | 13 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/utils/common.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_UTILS_COMMON_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_UTILS_COMMON_INCLUDED_ 7 | 8 | #include "nbl/builtin/glsl/math/functions.glsl" 9 | 10 | 11 | struct nbl_glsl_SBasicViewParameters 12 | { 13 | mat4 MVP; 14 | mat4x3 MV; 15 | mat4x3 NormalMatAndEyePos; 16 | }; 17 | 18 | mat3 nbl_glsl_SBasicViewParameters_GetNormalMat(in mat4x3 _NormalMatAndEyePos) 19 | { 20 | return mat3(_NormalMatAndEyePos); 21 | } 22 | vec3 nbl_glsl_SBasicViewParameters_GetEyePos(in mat4x3 _NormalMatAndEyePos) 23 | { 24 | return _NormalMatAndEyePos[3]; 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/utils/compressed_normal_matrix_t.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_UTILS_COMPRESSED_NORMAL_MATRIX_T_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_UTILS_COMPRESSED_NORMAL_MATRIX_T_INCLUDED_ 3 | 4 | struct nbl_glsl_CompressedNormalMatrix_t 5 | { 6 | uvec4 data; 7 | }; 8 | 9 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/workgroup/basic.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_WORKGROUP_BASIC_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_WORKGROUP_BASIC_INCLUDED_ 3 | 4 | 5 | #include 6 | #include 7 | 8 | 9 | //! all functions must be called in uniform control flow (all workgroup invocations active) 10 | bool nbl_glsl_workgroupElect() 11 | { 12 | return gl_LocalInvocationIndex==0u; 13 | } 14 | 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/workgroup/shared_arithmetic.glsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_GLSL_WORKGROUP_SHARED_ARITHMETIC_INCLUDED_ 2 | #define _NBL_BUILTIN_GLSL_WORKGROUP_SHARED_ARITHMETIC_INCLUDED_ 3 | 4 | 5 | 6 | #include 7 | 8 | 9 | 10 | #if NBL_GLSL_WORKGROUP_SCAN_SCRATCH_BOUND(_NBL_GLSL_WORKGROUP_SIZE_-1)>_NBL_GLSL_WORKGROUP_CLUSTERED_SHARED_SIZE_NEEDED_ 11 | #define _NBL_GLSL_WORKGROUP_ARITHMETIC_SHARED_SIZE_NEEDED_ NBL_GLSL_WORKGROUP_SCAN_SCRATCH_BOUND(_NBL_GLSL_WORKGROUP_SIZE_-1) 12 | #else 13 | #define _NBL_GLSL_WORKGROUP_ARITHMETIC_SHARED_SIZE_NEEDED_ _NBL_GLSL_WORKGROUP_BALLOT_SHARED_SIZE_NEEDED_ 14 | #endif 15 | 16 | 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/nbl/builtin/glsl/workgroup/shared_fft.glsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_BUILTIN_GLSL_WORKGROUP_SHARED_FFT_INCLUDED_ 6 | #define _NBL_BUILTIN_GLSL_WORKGROUP_SHARED_FFT_INCLUDED_ 7 | 8 | 9 | #include 10 | #include 11 | 12 | 13 | // TODO: can we reduce it? 14 | #define _NBL_GLSL_WORKGROUP_FFT_SHARED_SIZE_NEEDED_ (_NBL_GLSL_WORKGROUP_SIZE_*4) 15 | 16 | 17 | #ifndef _NBL_GLSL_WORKGROUP_SIZE_LOG2_ 18 | #if NBL_GLSL_IS_NOT_POT(_NBL_GLSL_WORKGROUP_SIZE_) 19 | #error "Radix2 FFT requires workgroup to be a Power of Two!" 20 | #endif 21 | #define _NBL_GLSL_WORKGROUP_SIZE_LOG2_ findMSB(_NBL_GLSL_WORKGROUP_SIZE_) 22 | #endif 23 | 24 | 25 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/array_accessors.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_HLSL_ARRAY_ACCESSORS_HLSL_INCLUDED_ 2 | #define _NBL_BUILTIN_HLSL_ARRAY_ACCESSORS_HLSL_INCLUDED_ 3 | 4 | #include 5 | 6 | namespace nbl 7 | { 8 | namespace hlsl 9 | { 10 | template 11 | struct array_get 12 | { 13 | ComponentType operator()(NBL_CONST_REF_ARG(ArrayType) arr, const I ix) NBL_CONST_MEMBER_FUNC 14 | { 15 | return arr[ix]; 16 | } 17 | }; 18 | 19 | template 20 | struct array_set 21 | { 22 | void operator()(NBL_REF_ARG(ArrayType) arr, I index, ComponentType val) NBL_CONST_MEMBER_FUNC 23 | { 24 | arr[index] = val; 25 | } 26 | }; 27 | } 28 | } 29 | 30 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/blit/default_normalize.comp.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023-2024 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #include "nbl/builtin/hlsl/blit/parameters.hlsl" 5 | 6 | #include "nbl/builtin/hlsl/blit/common.hlsl" 7 | //#include "nbl/builtin/hlsl/blit/compute_blit.hlsl" 8 | 9 | using namespace nbl::hlsl::blit; 10 | 11 | // TODO: push constants 12 | 13 | [numthreads(ConstevalParameters::WorkGroupSize,1,1)] 14 | void main() 15 | { 16 | } -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/concepts/matrix.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2024-2025 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_BUILTIN_HLSL_CONCEPTS_MATRIX_HLSL_INCLUDED_ 5 | #define _NBL_BUILTIN_HLSL_CONCEPTS_MATRIX_HLSL_INCLUDED_ 6 | 7 | 8 | #include 9 | #include 10 | 11 | namespace nbl 12 | { 13 | namespace hlsl 14 | { 15 | namespace concepts 16 | { 17 | 18 | template 19 | NBL_BOOL_CONCEPT Matrix = is_matrix::value; 20 | 21 | template 22 | NBL_BOOL_CONCEPT Matricial = matrix_traits::IsMatrix; 23 | 24 | } 25 | } 26 | } 27 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/cpp_compat.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_HLSL_CPP_COMPAT_INCLUDED_ 2 | #define _NBL_BUILTIN_HLSL_CPP_COMPAT_INCLUDED_ 3 | 4 | #include 5 | // it includes vector and matrix 6 | #include 7 | #include 8 | 9 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/ext/FullScreenTriangle/SVertexAttributes.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2024 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_HLSL_EXT_FULL_SCREEN_TRIANGLE_S_VERTEX_ATTRIBUTE_H_ 5 | #define _NBL_HLSL_EXT_FULL_SCREEN_TRIANGLE_S_VERTEX_ATTRIBUTE_H_ 6 | 7 | namespace nbl 8 | { 9 | namespace hlsl 10 | { 11 | namespace ext 12 | { 13 | namespace FullScreenTriangle 14 | { 15 | 16 | struct SVertexAttributes 17 | { 18 | [[vk::location(0)]] float32_t2 uv : TEXCOORD0; 19 | }; 20 | 21 | } 22 | } 23 | } 24 | } 25 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/math/geometry.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_BUILTIN_HLSL_MATH_GEOMETRY_INCLUDED_ 2 | #define _NBL_BUILTIN_HLSL_MATH_GEOMETRY_INCLUDED_ 3 | 4 | namespace nbl 5 | { 6 | namespace hlsl 7 | { 8 | // TODO: add NBL_CONST_REF_ARG() 9 | template 10 | float_t cross2D(vector lhs, vector rhs) { return lhs.x*rhs.y - lhs.y*rhs.x; } 11 | } 12 | } 13 | 14 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/memory.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2024 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/builtin/hlsl/bda/__ref.hlsl" 6 | 7 | #ifndef _NBL_BUILTIN_HLSL_MEMORY_INCLUDED_ 8 | #define _NBL_BUILTIN_HLSL_MEMORY_INCLUDED_ 9 | 10 | namespace nbl 11 | { 12 | namespace hlsl 13 | { 14 | 15 | template 16 | bda::__ptr pointer_to(bda::__ref) { 17 | bda::__ptr retval; 18 | retval.addr = spirv::bitcast(__ref.get_ptr()); 19 | return retval; 20 | } 21 | 22 | } 23 | } 24 | 25 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/scan/descriptors.hlsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | // choerent -> globallycoherent -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/scan/parameters_struct.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_HLSL_SCAN_PARAMETERS_STRUCT_INCLUDED_ 2 | #define _NBL_HLSL_SCAN_PARAMETERS_STRUCT_INCLUDED_ 3 | 4 | #define NBL_BUILTIN_MAX_SCAN_LEVELS 7 5 | 6 | #ifdef __cplusplus 7 | #define uint uint32_t 8 | #endif 9 | 10 | namespace nbl 11 | { 12 | namespace hlsl 13 | { 14 | namespace scan 15 | { 16 | // REVIEW: Putting topLevel second allows better alignment for packing of constant variables, assuming lastElement has length 4. (https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-packing-rules) 17 | struct Parameters_t { 18 | uint lastElement[NBL_BUILTIN_MAX_SCAN_LEVELS/2+1]; 19 | uint topLevel; 20 | uint temporaryStorageOffset[NBL_BUILTIN_MAX_SCAN_LEVELS/2]; 21 | } 22 | } 23 | } 24 | } 25 | 26 | #ifdef __cplusplus 27 | #undef uint 28 | #endif 29 | 30 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/shapes/circle.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2023 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_BUILTIN_HLSL_SHAPES_CIRCLE_INCLUDED_ 5 | #define _NBL_BUILTIN_HLSL_SHAPES_CIRCLE_INCLUDED_ 6 | 7 | namespace nbl 8 | { 9 | namespace hlsl 10 | { 11 | namespace shapes 12 | { 13 | struct Circle_t 14 | { 15 | float2 center; 16 | float radius; 17 | 18 | static Circle_t construct(float2 center, float radius) 19 | { 20 | Circle_t c = { center, radius }; 21 | return c; 22 | } 23 | 24 | float signedDistance(float2 p) 25 | { 26 | return distance(p, center) - radius; 27 | } 28 | }; 29 | } 30 | } 31 | } 32 | 33 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/sort/common.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2024 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_BUILTIN_HLSL_SORT_COMMON_INCLUDED_ 5 | #define _NBL_BUILTIN_HLSL_SORT_COMMON_INCLUDED_ 6 | 7 | #include "nbl/builtin/hlsl/type_traits.hlsl" 8 | 9 | namespace nbl 10 | { 11 | namespace hlsl 12 | { 13 | namespace sort 14 | { 15 | 16 | template 17 | struct CountingParameters 18 | { 19 | static_assert(is_integral::value, "CountingParameters needs to be templated on integral type"); 20 | 21 | uint32_t dataElementCount; 22 | uint32_t elementsPerWT; 23 | Key minimum; 24 | Key maximum; 25 | }; 26 | 27 | 28 | } 29 | } 30 | } 31 | #endif -------------------------------------------------------------------------------- /include/nbl/builtin/hlsl/subgroup/basic.hlsl: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2023 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_BUILTIN_HLSL_SUBGROUP_BASIC_INCLUDED_ 5 | #define _NBL_BUILTIN_HLSL_SUBGROUP_BASIC_INCLUDED_ 6 | 7 | #include "nbl/builtin/hlsl/glsl_compat/subgroup_basic.hlsl" 8 | 9 | namespace nbl 10 | { 11 | namespace hlsl 12 | { 13 | namespace subgroup 14 | { 15 | 16 | static const uint32_t MinSubgroupSizeLog2 = 3u; 17 | static const uint32_t MinSubgroupSize = 0x1u< 9 | 10 | 11 | // for now we only implement declval 12 | namespace nbl 13 | { 14 | namespace hlsl 15 | { 16 | template 17 | const static bool always_true = true; 18 | #ifndef __HLSL_VERSION 19 | 20 | template 21 | std::add_rvalue_reference_t declval() noexcept 22 | { 23 | static_assert(false,"Actually calling declval is ill-formed."); 24 | } 25 | 26 | #else 27 | 28 | namespace experimental 29 | { 30 | 31 | template 32 | T declval() {} 33 | 34 | } 35 | 36 | #endif 37 | } 38 | } 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /include/nbl/builtin/material/debug/vertex_color/specialized_shader.vert: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | #extension GL_GOOGLE_include_directive : require 7 | 8 | layout(location = 0) in vec3 vPos; 9 | layout(location = 1) in vec3 vCol; 10 | 11 | #include 12 | #include 13 | 14 | layout (set = 1, binding = 0, row_major, std140) uniform UBO 15 | { 16 | nbl_glsl_SBasicViewParameters params; 17 | } CamData; 18 | 19 | layout(location = 0) out vec3 color; 20 | 21 | void main() 22 | { 23 | gl_Position = nbl_glsl_pseudoMul4x4with3x1(CamData.params.MVP, vPos); 24 | color = vCol; 25 | } -------------------------------------------------------------------------------- /include/nbl/builtin/material/debug/vertex_normal/specialized_shader.frag: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | 7 | layout(location = 0) in vec3 color; 8 | layout(location = 0) out vec4 pixelColor; 9 | 10 | void main() 11 | { 12 | pixelColor = vec4(color,1.0); 13 | } -------------------------------------------------------------------------------- /include/nbl/builtin/material/debug/vertex_normal/specialized_shader.vert: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | #extension GL_GOOGLE_include_directive : require 7 | 8 | layout(location = 0) in vec3 vPos; 9 | layout(location = 3) in vec3 vNormal; 10 | 11 | #include 12 | #include 13 | 14 | layout (set = 1, binding = 0, row_major, std140) uniform UBO 15 | { 16 | nbl_glsl_SBasicViewParameters params; 17 | } CamData; 18 | 19 | layout(location = 0) out vec3 color; 20 | 21 | void main() 22 | { 23 | gl_Position = nbl_glsl_pseudoMul4x4with3x1(CamData.params.MVP, vPos); 24 | color = vNormal*0.5+vec3(0.5); 25 | } -------------------------------------------------------------------------------- /include/nbl/builtin/material/debug/vertex_uv/specialized_shader.frag: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | 7 | layout(location = 0) in vec2 uv; 8 | layout(location = 0) out vec4 pixelColor; 9 | 10 | void main() 11 | { 12 | pixelColor = vec4(uv.x, uv.y, 1.0, 1.0); 13 | } -------------------------------------------------------------------------------- /include/nbl/builtin/material/lambertian/singletexture/specialized_shader.frag: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | 7 | layout(set = 3, binding = 0) uniform sampler2D albedo; 8 | 9 | layout(location = 0) in vec2 uv; 10 | 11 | layout(location = 0) out vec4 pixelColor; 12 | 13 | void main() 14 | { 15 | pixelColor = texture(albedo,uv); 16 | } 17 | -------------------------------------------------------------------------------- /include/nbl/builtin/material/lambertian/singletexture/specialized_shader.vert: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | 7 | layout(location = 0) in vec3 vPos; 8 | layout(location = 2) in vec2 vTexCoord; 9 | 10 | #include 11 | #include 12 | 13 | layout (set = 1, binding = 0, row_major, std140) uniform UBO 14 | { 15 | nbl_glsl_SBasicViewParameters params; 16 | } CamData; 17 | 18 | layout(location = 0) out vec2 uv; 19 | 20 | void main() 21 | { 22 | gl_Position = nbl_glsl_pseudoMul4x4with3x1(CamData.params.MVP, vPos); 23 | uv = vTexCoord; 24 | } -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/color.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | #define _DISABLE_UV_ATTRIBUTES 4 | 5 | #include "nbl/builtin/shader/loader/gltf/fragment_impl.glsl" 6 | 7 | #undef _DISABLE_UV_ATTRIBUTES -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/color.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | #define _DISABLE_UV_ATTRIBUTES 4 | 5 | #include "nbl/builtin/shader/loader/gltf/vertex_impl.glsl" 6 | 7 | #undef _DISABLE_UV_ATTRIBUTES -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/common.glsl: -------------------------------------------------------------------------------- 1 | #define _NBL_GLTF_POSITION_ATTRIBUTE_ID 0 2 | #define _NBL_GLTF_UV_ATTRIBUTE_ID 1 3 | #define _NBL_GLTF_COLOR_ATTRIBUTE_ID 2 4 | #define _NBL_GLTF_NORMAL_ATTRIBUTE_ID 3 5 | #define _NBL_GLTF_JOINTS_ATTRIBUTE_ID 4 6 | #define _NBL_GLTF_WEIGHTS_ATTRIBUTE_ID 5 7 | 8 | #define _NBL_GLTF_LOCAL_POS_INTERPOLANT 0 9 | #define _NBL_GLTF_UV_INTERPOLANT 1 10 | #define _NBL_GLTF_COLOR_INTERPOLANT 2 11 | #define _NBL_GLTF_NORMAL_INTERPOLANT 3 -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/no_uv_color.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | #define _DISABLE_UV_ATTRIBUTES 4 | #define _DISABLE_COLOR_ATTRIBUTES 5 | 6 | #include "nbl/builtin/shader/loader/gltf/fragment_impl.glsl" 7 | 8 | #undef _DISABLE_UV_ATTRIBUTES 9 | #undef _DISABLE_COLOR_ATTRIBUTES -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/no_uv_color.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | #define _DISABLE_UV_ATTRIBUTES 4 | #define _DISABLE_COLOR_ATTRIBUTES 5 | 6 | #include "nbl/builtin/shader/loader/gltf/vertex_impl.glsl" 7 | 8 | #undef _DISABLE_UV_ATTRIBUTES 9 | #undef _DISABLE_COLOR_ATTRIBUTES -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/uv.frag: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | #define _DISABLE_COLOR_ATTRIBUTES 4 | 5 | #include "nbl/builtin/shader/loader/gltf/fragment_impl.glsl" 6 | 7 | #undef _DISABLE_COLOR_ATTRIBUTES -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/gltf/uv.vert: -------------------------------------------------------------------------------- 1 | #version 430 core 2 | 3 | #define _DISABLE_COLOR_ATTRIBUTES // TODO change it 4 | #define _ALLOW_MATERIAL_PUSH_CONSTANTS 5 | 6 | #include "nbl/builtin/shader/loader/gltf/vertex_impl.glsl" 7 | 8 | #undef _DISABLE_COLOR_ATTRIBUTES 9 | #undef _ALLOW_MATERIAL_PUSH_CONSTANTS -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/mtl/fragment_no_uv.frag: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | 7 | #define _NO_UV 8 | 9 | //also turn off texture 10 | #ifndef _NBL_FRAG_SET3_BINDINGS_DEFINED_ 11 | #define _NBL_FRAG_SET3_BINDINGS_DEFINED_ 12 | #endif 13 | 14 | #include "nbl/builtin/shader/loader/mtl/fragment_impl.glsl" 15 | 16 | #undef _NO_UV -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/mtl/fragment_uv.frag: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 430 core 6 | 7 | #include "nbl/builtin/shader/loader/mtl/fragment_impl.glsl" 8 | -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/mtl/vertex_no_uv.vert: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 460 core 6 | #define _NO_UV 7 | 8 | #include "nbl/builtin/shader/loader/mtl/vertex_impl.glsl" 9 | 10 | #undef _NO_UV -------------------------------------------------------------------------------- /include/nbl/builtin/shader/loader/mtl/vertex_uv.vert: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #version 460 core 6 | 7 | #include "nbl/builtin/shader/loader/mtl/vertex_impl.glsl" 8 | -------------------------------------------------------------------------------- /include/nbl/core/IBuffer.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_CORE_I_BUFFER_H_INCLUDED__ 6 | #define __NBL_CORE_I_BUFFER_H_INCLUDED__ 7 | 8 | #include "nbl/core/decl/Types.h" 9 | #include "nbl/core/IReferenceCounted.h" 10 | #include "nbl/asset/ECommonEnums.h" 11 | 12 | namespace nbl::core 13 | { 14 | 15 | struct adopt_memory_t {}; 16 | constexpr adopt_memory_t adopt_memory{}; 17 | 18 | class IBuffer : public virtual IReferenceCounted 19 | { 20 | public: 21 | //! size in BYTES 22 | virtual uint64_t getSize() const = 0; 23 | 24 | protected: 25 | _NBL_INTERFACE_CHILD(IBuffer) {} 26 | }; 27 | 28 | } // end namespace nbl::video 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /include/nbl/core/definitions.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2024 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_CORE_DEFINITIONS_H_INCLUDED_ 5 | #define _NBL_CORE_DEFINITIONS_H_INCLUDED_ 6 | 7 | // 8 | #include "nbl/core/def/smart_refctd_ptr.h" 9 | 10 | // hash functions 11 | #include "nbl/core/hash/xxHash256.h" 12 | #include "nbl/core/hash/blake.h" 13 | 14 | // math [deprecated] 15 | #include "nbl/core/math/floatutil.tcc" 16 | #include "nbl/core/math/glslFunctions.tcc" 17 | 18 | // implementations [deprecated] 19 | #include "matrix3x4SIMD_impl.h" 20 | #include "matrix4SIMD_impl.h" 21 | 22 | #endif -------------------------------------------------------------------------------- /include/nbl/core/math/colorutil.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_CORE_COLOR_UTIL_H_INCLUDED__ 6 | #define __NBL_CORE_COLOR_UTIL_H_INCLUDED__ 7 | 8 | #include 9 | 10 | namespace nbl { namespace core 11 | { 12 | 13 | inline double lin2srgb(double _lin) 14 | { 15 | if (_lin <= 0.0031308) return _lin * 12.92; 16 | return 1.055 * pow(_lin, 1./2.4) - 0.055; 17 | } 18 | 19 | inline double srgb2lin(double _s) 20 | { 21 | if (_s <= 0.04045) return _s / 12.92; 22 | return pow((_s + 0.055) / 1.055, 2.4); 23 | } 24 | 25 | }} 26 | 27 | #endif -------------------------------------------------------------------------------- /include/nbl/core/math/matrixutil.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_MATRIX_UTIL_H_INCLUDED_ 6 | #define _NBL_MATRIX_UTIL_H_INCLUDED_ 7 | 8 | #include "matrix4SIMD.h" 9 | #include "matrix3x4SIMD.h" 10 | 11 | namespace nbl::core 12 | { 13 | 14 | 15 | //! TODO: OPTIMIZE THIS, DON'T PROMOTE THE MATRIX IF DON'T HAVE TO 16 | inline matrix4SIMD concatenateBFollowedByA(const matrix4SIMD& _a, const matrix3x4SIMD& _b) 17 | { 18 | return concatenateBFollowedByA(_a, matrix4SIMD(_b)); 19 | } 20 | /* 21 | inline matrix4SIMD concatenateBFollowedByAPrecisely(const matrix4SIMD& _a, const matrix3x4SIMD& _b) 22 | { 23 | return concatenateBFollowedByAPrecisely(_a, matrix4SIMD(_b)); 24 | } 25 | */ 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /include/nbl/core/sampling/RandomSampler.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_CORE_RANDOM_SAMPLER_H_ 6 | #define __NBL_CORE_RANDOM_SAMPLER_H_ 7 | 8 | #include 9 | #include "nbl/core/decl/Types.h" 10 | 11 | namespace nbl::core 12 | { 13 | 14 | class RandomSampler 15 | { 16 | public: 17 | RandomSampler(uint32_t _seed) 18 | { 19 | mersenneTwister.seed(_seed); 20 | } 21 | 22 | // 23 | inline uint32_t nextSample() 24 | { 25 | return mersenneTwister(); 26 | } 27 | 28 | protected: 29 | std::mt19937 mersenneTwister; 30 | }; 31 | 32 | 33 | } 34 | 35 | #endif -------------------------------------------------------------------------------- /include/nbl/core/string/StringLiteral.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2022 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_CORE_STRING_LITERAL_H_INCLUDED_ 5 | #define _NBL_CORE_STRING_LITERAL_H_INCLUDED_ 6 | 7 | #include 8 | 9 | namespace nbl::core 10 | { 11 | 12 | template 13 | struct StringLiteral 14 | { 15 | constexpr StringLiteral(const char (&str)[N]) 16 | { 17 | std::copy_n(str, N, value); 18 | } 19 | 20 | char value[N]; 21 | }; 22 | 23 | } 24 | 25 | // for compatibility's sake 26 | #define NBL_CORE_UNIQUE_STRING_LITERAL_TYPE(STRING_LITERAL) nbl::core::StringLiteral(STRING_LITERAL) 27 | 28 | #endif // _NBL_CORE_STRING_LITERAL_H_INCLUDED_ 29 | -------------------------------------------------------------------------------- /include/nbl/core/util/to_underlying.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef _NBL_CORE_C_TO_UNDERLYING_H_INCLUDED_ 6 | #define _NBL_CORE_C_TO_UNDERLYING_H_INCLUDED_ 7 | 8 | namespace nbl::core 9 | { 10 | #if defined(__cpp_lib_to_underlying) 11 | using to_underlying = std::to_underlying; 12 | #else 13 | template 14 | constexpr auto to_underlying(E e) -> typename std::underlying_type::type 15 | { 16 | return static_cast::type>(e); 17 | } 18 | #endif 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /include/nbl/ext/Bullet/README.md: -------------------------------------------------------------------------------- 1 | # Bullet3 IrrlichtBaw Extension 2 | 3 | Please note this is a work in progress but here is a short description. 4 | 5 | This extension does not plan on wrapping the Bullet library as it is quite vast but providing bridges between IrrlichtBAW and Bullet to make things much more easier while giving people using this extension more freedom compared to hiding all of Bullet's features! -------------------------------------------------------------------------------- /include/nbl/ext/ImGui/builtin/hlsl/common.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_IMGUI_EXT_COMMON_HLSL_ 2 | #define _NBL_IMGUI_EXT_COMMON_HLSL_ 3 | 4 | #include "nbl/builtin/hlsl/glsl_compat/core.hlsl" 5 | #include "nbl/builtin/hlsl/bda/struct_declare.hlsl" 6 | 7 | namespace nbl 8 | { 9 | namespace ext 10 | { 11 | namespace imgui 12 | { 13 | struct PushConstants 14 | { 15 | uint64_t elementBDA; 16 | uint64_t elementCount; 17 | nbl::hlsl::float32_t2 scale; 18 | nbl::hlsl::float32_t2 translate; 19 | nbl::hlsl::float32_t4 viewport; 20 | }; 21 | 22 | // would like to replace with our own BDA, but can't do bitfields right now (would need a different wrapper for those) 23 | struct PerObjectData 24 | { 25 | uint32_t aabbMin, aabbMax; //! snorm16_t2 packed as [uint16_t, uint16_t] 26 | uint32_t texId : 26; 27 | uint32_t samplerIx : 6; 28 | }; 29 | } 30 | } 31 | } 32 | 33 | #endif // _NBL_IMGUI_EXT_COMMON_HLSL_ 34 | -------------------------------------------------------------------------------- /include/nbl/ext/ImGui/builtin/hlsl/psinput.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_IMGUI_EXT_PSINPUT_HLSL_ 2 | #define _NBL_IMGUI_EXT_PSINPUT_HLSL_ 3 | 4 | #ifdef __HLSL_VERSION 5 | namespace nbl 6 | { 7 | namespace ext 8 | { 9 | namespace imgui 10 | { 11 | struct PSInput 12 | { 13 | float32_t4 position : SV_Position; 14 | float32_t2 uv : TEXCOORD0; 15 | float32_t4 color : COLOR0; 16 | float32_t4 clip : SV_ClipDistance; 17 | uint drawID : SV_InstanceID; 18 | }; 19 | } 20 | } 21 | } 22 | #endif // __HLSL_VERSION 23 | 24 | #endif // _NBL_IMGUI_EXT_PSINPUT_HLSL_ 25 | -------------------------------------------------------------------------------- /include/nbl/ext/OptiX/SbtRecord.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_EXT_SBT_RECORD_H_INCLUDED__ 6 | #define __NBL_EXT_SBT_RECORD_H_INCLUDED__ 7 | 8 | #include "optix.h" 9 | 10 | namespace nbl 11 | { 12 | namespace ext 13 | { 14 | namespace OptiX 15 | { 16 | 17 | template 18 | struct SbtRecord 19 | { 20 | alignas(OPTIX_SBT_RECORD_ALIGNMENT) char header[OPTIX_SBT_RECORD_HEADER_SIZE]; 21 | T data; 22 | }; 23 | 24 | } 25 | } 26 | } 27 | 28 | #endif -------------------------------------------------------------------------------- /include/nbl/logging_macros.h: -------------------------------------------------------------------------------- 1 | #if defined(NBL_LOG) || defined(NBL_LOG_ERROR) 2 | #error redefinition of NBL_LOG/NBL_LOG_ERROR. did you forgot to undefine logging macros somewhere? #include "nbl/undefine_logging_macros.h" 3 | #elif !defined(_GIT_INFO_H_INCLUDED_) 4 | #error logging macros require git meta info, include "git_info.h" 5 | #else 6 | #define NBL_LOG(SEVERITY, FORMAT, ...) NBL_LOG_FUNCTION(FORMAT" [%s][%s - %s:%d]", SEVERITY __VA_OPT__(,) __VA_ARGS__, nbl::gtml::nabla_git_info.commitShortHash, __FUNCTION__, __FILE__, __LINE__); 7 | #define NBL_LOG_ERROR(FORMAT, ...) NBL_LOG(nbl::system::ILogger::ELL_ERROR, FORMAT __VA_OPT__(,) __VA_ARGS__) 8 | #endif -------------------------------------------------------------------------------- /include/nbl/nblunpack.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2019 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine" and was originally part of the "Irrlicht Engine" 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | // See the original file in irrlicht source for authors 5 | 6 | // include this file to switch back to default alignment 7 | // file belongs to nblpack.h, see there for more info 8 | 9 | // Default alignment 10 | #if defined(_MSC_VER) || defined(__GNUC__) || defined (__clang__) 11 | # pragma pack( pop, packing ) 12 | #else 13 | # error compiler not supported 14 | #endif 15 | 16 | #undef PACK_STRUCT 17 | 18 | -------------------------------------------------------------------------------- /include/nbl/scene/scene.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_SCENE_H_INCLUDED__ 6 | #define __NBL_SCENE_H_INCLUDED__ 7 | 8 | // 9 | #include "nbl/scene/CLevelOfDetailLibrary.h" 10 | #include "nbl/scene/ITransformTreeManager.h" 11 | 12 | #include "nbl/scene/ICullingLoDSelectionSystem.h" 13 | 14 | #if 0 // not buildable on criss/vulkan branch 15 | // 16 | #include "nbl/scene/IAnimationBlendManager.h" 17 | #endif 18 | 19 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CFileViewAPKAllocator.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_FILE_VIEW_APK_ALLOCATOR_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_FILE_VIEW_APK_ALLOCATOR_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/system/IFileViewAllocator.h" 6 | 7 | 8 | namespace nbl::system 9 | { 10 | #ifdef _NBL_PLATFORM_ANDROID_ 11 | class CFileViewAPKAllocator : public IFileViewAllocator 12 | { 13 | public: 14 | using IFileViewAllocator::IFileViewAllocator; 15 | 16 | // should never be called 17 | void* alloc(size_t size) override; 18 | bool dealloc(void* data, size_t size) override; 19 | }; 20 | #endif 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CFileViewVirtualAllocatorPOSIX.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_FILE_VIEW_VIRTUAL_ALLOCATOR_POSIX_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_FILE_VIEW_VIRTUAL_ALLOCATOR_POSIX_H_INCLUDED_ 3 | 4 | namespace nbl::system 5 | { 6 | #if defined(_NBL_PLATFORM_LINUX_) || defined(_NBL_PLATFORM_ANDROID_) 7 | class CFileViewVirtualAllocatorPOSIX : public IFileViewAllocator 8 | { 9 | public: 10 | using IFileViewAllocator::IFileViewAllocator; 11 | 12 | void* alloc(size_t size) override; 13 | bool dealloc(void* data, size_t size) override; 14 | }; 15 | #endif 16 | } 17 | 18 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CFileViewVirtualAllocatorWin32.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_FILE_VIEW_VIRTUAL_ALLOCATOR_WIN32_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_FILE_VIEW_VIRTUAL_ALLOCATOR_WIN32_H_INCLUDED_ 3 | 4 | namespace nbl::system 5 | { 6 | #ifdef _NBL_PLATFORM_WINDOWS_ 7 | class NBL_API2 CFileViewVirtualAllocatorWin32 : public IFileViewAllocator 8 | { 9 | public: 10 | using IFileViewAllocator::IFileViewAllocator; 11 | 12 | void* alloc(size_t size) override; 13 | bool dealloc(void* data, size_t size) override; 14 | }; 15 | #endif 16 | } 17 | 18 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CStdoutLogger.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_STDOUT_LOGGER_INCLUDED_ 2 | #define _NBL_SYSTEM_C_STDOUT_LOGGER_INCLUDED_ 3 | 4 | #include "IThreadsafeLogger.h" 5 | #include 6 | 7 | namespace nbl::system 8 | { 9 | 10 | class CStdoutLogger : public IThreadsafeLogger 11 | { 12 | public: 13 | CStdoutLogger(core::bitflag logLevelMask = ILogger::DefaultLogMask()) : IThreadsafeLogger(logLevelMask) {} 14 | 15 | protected: 16 | virtual void threadsafeLog_impl(const std::string_view& fmt, E_LOG_LEVEL logLevel, va_list args) override 17 | { 18 | printf(constructLogString(fmt, logLevel, args).data()); 19 | fflush(stdout); 20 | } 21 | 22 | }; 23 | 24 | } 25 | 26 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CStdoutLoggerAndroid.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_STDOUT_LOGGER_ANDROID_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_STDOUT_LOGGER_ANDROID_H_INCLUDED_ 3 | 4 | #include "nbl/system/IThreadsafeLogger.h" 5 | 6 | namespace nbl::system 7 | { 8 | 9 | #ifdef _NBL_PLATFORM_ANDROID_ 10 | class CStdoutLoggerAndroid : public IThreadsafeLogger 11 | { 12 | public: 13 | CStdoutLoggerAndroid(core::bitflag logLevelMask = ILogger::DefaultLogMask()) : IThreadsafeLogger(logLevelMask) {} 14 | 15 | private: 16 | void threadsafeLog_impl(const std::string_view& fmt, E_LOG_LEVEL logLevel, va_list args) override; 17 | }; 18 | #endif 19 | 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CSystemAndroid.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_SYSTEM_ANDROID_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_SYSTEM_ANDROID_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/system/ISystem.h" 6 | 7 | #ifdef _NBL_PLATFORM_ANDROID_ 8 | #include "nbl/system/ISystemPOSIX.h" 9 | 10 | #include 11 | 12 | 13 | struct ANativeActivity; 14 | 15 | namespace nbl::system 16 | { 17 | 18 | class NBL_API2 CSystemAndroid final : public ISystemPOSIX 19 | { 20 | public: 21 | CSystemAndroid(ANativeActivity* activity, JNIEnv* jni, const path& APKResourcesPath); 22 | 23 | // 24 | SystemInfo getSystemInfo() const override; 25 | 26 | protected: 27 | ANativeActivity* m_nativeActivity; 28 | JNIEnv* m_jniEnv; 29 | }; 30 | 31 | } 32 | #endif 33 | 34 | #endif -------------------------------------------------------------------------------- /include/nbl/system/CSystemLinux.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_SYSTEM_LINUX_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_SYSTEM_LINUX_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/system/ISystem.h" 6 | #include "nbl/system/ISystemPOSIX.h" 7 | 8 | namespace nbl::system 9 | { 10 | #ifdef _NBL_PLATFORM_LINUX_ 11 | 12 | class CSystemLinux final : public ISystemPOSIX 13 | { 14 | public: 15 | inline CSystemLinux() : ISystemPOSIX() {} 16 | 17 | NBL_API2 SystemInfo getSystemInfo() const override; 18 | }; 19 | 20 | #endif 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /include/nbl/system/SBuiltinFile.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_S_BUILTIN_FILE_H_INCLUDED_ 2 | #define _NBL_S_BUILTIN_FILE_H_INCLUDED_ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace nbl::system 9 | { 10 | struct SBuiltinFile 11 | { 12 | const uint8_t* contents = nullptr; 13 | size_t size = 0u; 14 | std::array xx256Hash; 15 | std::tm modified = { // Absolute time since 1970 in UTC+0 16 | .tm_sec = 6, 17 | .tm_min = 9, 18 | .tm_hour = 6, 19 | .tm_mday = 9, 20 | .tm_mon = 6, 21 | .tm_year = 9, 22 | .tm_isdst = 0 23 | }; 24 | }; 25 | } 26 | 27 | #endif // _NBL_S_BUILTIN_FILE_H_INCLUDED_ -------------------------------------------------------------------------------- /include/nbl/system/definitions.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_SYSTEM_DEFINITIONS_H_INCLUDED__ 6 | #define __NBL_SYSTEM_DEFINITIONS_H_INCLUDED__ 7 | 8 | #include "nbl/system/declarations.h" 9 | 10 | 11 | #endif -------------------------------------------------------------------------------- /include/nbl/ui/IWindowAndroid.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_I_WINDOW_ANDROID_H_INCLUDED_ 2 | #define _NBL_I_WINDOW_ANDROID_H_INCLUDED_ 3 | 4 | #include "nbl/ui/IWindow.h" 5 | 6 | #ifdef _NBL_PLATFORM_ANDROID_ 7 | namespace nbl::ui 8 | { 9 | 10 | class NBL_API2 IWindowAndroid : public IWindow 11 | { 12 | public: 13 | using native_handle_t = struct ANativeWindow*; 14 | virtual const native_handle_t& getNativeHandle() const = 0; 15 | 16 | protected: 17 | virtual ~IWindowAndroid() = default; 18 | inline IWindowAndroid(SCreationParams&& params) : IWindow(std::move(params)) {} 19 | }; 20 | 21 | } 22 | #endif // _NBL_PLATFORM_ANDROID_ 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/nbl/ui/IWindowManagerWin32.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_UI_I_WINDOWMANAGER_WIN32_INCLUDED_ 2 | #define _NBL_UI_I_WINDOWMANAGER_WIN32_INCLUDED_ 3 | 4 | #include "nbl/ui/IWindowManager.h" 5 | 6 | #ifdef _NBL_PLATFORM_WINDOWS_ 7 | namespace nbl::ui 8 | { 9 | 10 | class IWindowManagerWin32 : public IWindowManager 11 | { 12 | public: 13 | NBL_API2 static core::smart_refctd_ptr create(); 14 | }; 15 | 16 | } 17 | #endif 18 | #endif -------------------------------------------------------------------------------- /include/nbl/ui/IWindowWin32.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_I_WINDOW_WIN32_H_INCLUDED_ 2 | #define _NBL_I_WINDOW_WIN32_H_INCLUDED_ 3 | 4 | #include "nbl/ui/IWindowManagerWin32.h" 5 | 6 | #ifdef _NBL_PLATFORM_WINDOWS_ 7 | // forward declare HWND 8 | struct HWND__; 9 | 10 | namespace nbl::ui 11 | { 12 | 13 | class NBL_API2 IWindowWin32 : public IWindow 14 | { 15 | public: 16 | using native_handle_t = HWND__*; 17 | virtual const native_handle_t& getNativeHandle() const = 0; 18 | 19 | protected: 20 | inline IWindowWin32(SCreationParams&& params) : IWindow(std::move(params)) {} 21 | virtual ~IWindowWin32() = default; 22 | }; 23 | 24 | } 25 | 26 | #endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /include/nbl/ui/declarations.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_UI_DECLARATIONS_H_INCLUDED_ 5 | #define _NBL_UI_DECLARATIONS_H_INCLUDED_ 6 | 7 | // dependencies 8 | #include "nbl/system/declarations.h" 9 | 10 | // windows 11 | #if defined(_NBL_PLATFORM_WINDOWS_) 12 | # include "nbl/ui/IWindowManagerWin32.h" 13 | #elif defined(_NBL_BUILD_WITH_WAYLAND) && defined(_NBL_TEST_WAYLAND) 14 | # include "nbl/ui/CWindowManagerWayland.h" 15 | #elif defined(_NBL_PLATFORM_LINUX_) 16 | #endif // TODO more platforms (android) 17 | 18 | // clipboards 19 | #include "nbl/ui/IClipboardManager.h" 20 | 21 | // events 22 | #include "nbl/ui/IInputEventChannel.h" 23 | 24 | 25 | #endif -------------------------------------------------------------------------------- /include/nbl/ui/definitions.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_UI_DEFINITIONS_H_INCLUDED_ 5 | #define _NBL_UI_DEFINITIONS_H_INCLUDED_ 6 | 7 | // dependencies 8 | #include "nbl/system/definitions.h" 9 | 10 | #endif -------------------------------------------------------------------------------- /include/nbl/undef_logging_macros.h: -------------------------------------------------------------------------------- 1 | #undef NBL_LOG 2 | #undef NBL_LOG_ERROR 3 | #undef NBL_LOG_FUNCTION -------------------------------------------------------------------------------- /include/nbl/video/CVulkanImage.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2023 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_VIDEO_C_VULKAN_IMAGE_H_INCLUDED_ 5 | #define _NBL_VIDEO_C_VULKAN_IMAGE_H_INCLUDED_ 6 | 7 | 8 | #include "nbl/video/CVulkanDeviceMemoryBacked.h" 9 | 10 | 11 | namespace nbl::video 12 | { 13 | 14 | class CVulkanImage : public CVulkanDeviceMemoryBacked 15 | { 16 | public: 17 | template 18 | inline CVulkanImage(Args&&... args) : CVulkanDeviceMemoryBacked(std::forward(args)...) {} 19 | 20 | void setObjectDebugName(const char* label) const override; 21 | 22 | protected: 23 | virtual ~CVulkanImage(); 24 | }; 25 | 26 | } // end namespace nbl::video 27 | #endif 28 | -------------------------------------------------------------------------------- /include/nbl/video/EApiType.h: -------------------------------------------------------------------------------- 1 | #ifndef __NBL_E_API_TYPE_H_INCLUDED__ 2 | #define __NBL_E_API_TYPE_H_INCLUDED__ 3 | 4 | #include "nbl/core/declarations.h" 5 | #include 6 | 7 | namespace nbl::video 8 | { 9 | 10 | enum E_API_TYPE : uint32_t 11 | { 12 | EAT_VULKAN, 13 | //EAT_WEBGPU 14 | }; 15 | 16 | } 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/nbl/video/IGPUFramebuffer.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_VIDEO_I_GPU_FRAMEBUFFER_H_INCLUDED_ 2 | #define _NBL_VIDEO_I_GPU_FRAMEBUFFER_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/asset/IFramebuffer.h" 6 | 7 | #include "nbl/video/IGPURenderpass.h" 8 | #include "nbl/video/IGPUImageView.h" 9 | 10 | 11 | namespace nbl::video 12 | { 13 | 14 | class IGPUFramebuffer : public IBackendObject, public asset::IFramebuffer 15 | { 16 | using base_t = asset::IFramebuffer; 17 | 18 | public: 19 | IGPUFramebuffer(core::smart_refctd_ptr&& dev, SCreationParams&& params) : IBackendObject(std::move(dev)), base_t(std::move(params)) {} 20 | 21 | protected: 22 | virtual ~IGPUFramebuffer() = default; 23 | }; 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/nbl/video/IGPURenderpass.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_VIDEO_I_GPU_RENDERPASS_H_INCLUDED_ 2 | #define _NBL_VIDEO_I_GPU_RENDERPASS_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/asset/IRenderpass.h" 6 | 7 | #include "nbl/video/decl/IBackendObject.h" 8 | 9 | 10 | namespace nbl::video 11 | { 12 | 13 | class IGPURenderpass : public IBackendObject, public asset::IRenderpass 14 | { 15 | using base_t = asset::IRenderpass; 16 | 17 | public: 18 | inline IGPURenderpass(core::smart_refctd_ptr&& dev, const SCreationParams& params, const SCreationParamValidationResult& counts) : IBackendObject(std::move(dev)), base_t(params,counts) {} 19 | }; 20 | 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /include/nbl/video/alloc/IBufferAllocator.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef _NBL_VIDEO_I_BUFFER_ALLOCATOR_BASE_H_ 5 | #define _NBL_VIDEO_I_BUFFER_ALLOCATOR_BASE_H_ 6 | 7 | #include "nbl/video/IGPUBuffer.h" 8 | 9 | namespace nbl::video 10 | { 11 | 12 | class IBufferAllocator 13 | { 14 | protected: 15 | IBufferAllocator() = default; 16 | virtual ~IBufferAllocator() = default; 17 | }; 18 | 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /include/nbl/video/debug/IDebugCallback.h: -------------------------------------------------------------------------------- 1 | #ifndef __NBL_VIDEO_I_DEBUG_CALLBACK_H_INCLUDED__ 2 | #define __NBL_VIDEO_I_DEBUG_CALLBACK_H_INCLUDED__ 3 | 4 | #include "nbl/core/declarations.h" 5 | 6 | #include 7 | 8 | #include "nbl/system/ILogger.h" 9 | 10 | namespace nbl::video 11 | { 12 | 13 | class IDebugCallback 14 | { 15 | public: 16 | system::ILogger* getLogger() const { return m_logger.get(); } 17 | void* getExtraUserData() const { return m_extraUserData; } 18 | 19 | protected: 20 | IDebugCallback(core::smart_refctd_ptr&& _logger, void* _extraUserData=nullptr) : m_logger(std::move(_logger)), m_extraUserData(_extraUserData) {} 21 | 22 | core::smart_refctd_ptr m_logger; 23 | void* m_extraUserData; 24 | }; 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /include/nbl/video/definitions.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_VIDEO_DEFINTIONS_H_INCLUDED__ 6 | #define __NBL_VIDEO_DEFINTIONS_H_INCLUDED__ 7 | 8 | // dependencies 9 | #include "nbl/asset/asset.h" 10 | #include "nbl/ui/definitions.h" 11 | 12 | // 13 | #include "nbl/video/def/IBackendObject.h" 14 | 15 | 16 | #endif -------------------------------------------------------------------------------- /include/nbl/video/utilities/renderdoc.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_VIDEO_UTILITIES_RENDERDOC_H_INCLUDED_ 2 | #define _NBL_VIDEO_UTILITIES_RENDERDOC_H_INCLUDED_ 3 | 4 | #include "renderdoc/renderdoc_app.h" // renderdoc_app from /3rdparty 5 | 6 | namespace nbl::video 7 | { 8 | using renderdoc_api_t = RENDERDOC_API_1_4_1; 9 | constexpr static inline auto MinRenderdocVersion = eRENDERDOC_API_Version_1_4_1; 10 | } 11 | 12 | #endif //__NBL_VIDEO_UTILITIES_RENDERDOC_H_INCLUDED_ -------------------------------------------------------------------------------- /jobs-email.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/jobs-email.gif -------------------------------------------------------------------------------- /source/Nabla/COSOperator.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2019 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine" and was originally part of the "Irrlicht Engine" 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | // See the original file in irrlicht source for authors 5 | 6 | #ifndef __NBL_C_OS_OPERATOR_H_INCLUDED__ 7 | #define __NBL_C_OS_OPERATOR_H_INCLUDED__ 8 | 9 | // TODO: @sadiuk 10 | virtual std::string getOperatingSystemVersion() const; 11 | 12 | // TODO: @sadiuk 13 | virtual bool getSystemMemory(uint32_t* Total, uint32_t* Avail) const; 14 | 15 | #endif 16 | 17 | -------------------------------------------------------------------------------- /src/nbl/asset/IAsset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/asset/IAsset.h" 6 | 7 | using namespace nbl::asset; 8 | 9 | IAsset::~IAsset() 10 | { 11 | } -------------------------------------------------------------------------------- /src/nbl/asset/filters/CBasicImageFilterCommon.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/asset/filters/CBasicImageFilterCommon.h" 6 | 7 | using namespace nbl::asset; 8 | 9 | CBasicImageFilterCommon::~CBasicImageFilterCommon() 10 | { 11 | } 12 | 13 | CBasicInImageFilterCommon::~CBasicInImageFilterCommon() 14 | { 15 | } 16 | 17 | CBasicInOutImageFilterCommon::~CBasicInOutImageFilterCommon() 18 | { 19 | } 20 | 21 | CBasicOutImageFilterCommon::~CBasicOutImageFilterCommon() 22 | { 23 | } -------------------------------------------------------------------------------- /src/nbl/asset/interchange/CGLTFWriter.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2020 AnastaZIuk 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in irrlicht.h 4 | 5 | #include "CGLTFWriter.h" 6 | 7 | #ifdef _NBL_COMPILE_WITH_GLTF_WRITER_ 8 | 9 | namespace nbl 10 | { 11 | namespace asset 12 | { 13 | bool CGLTFWriter::writeAsset(system::IFile* _file, const SAssetWriteParams& _params, IAssetWriterOverride* _override) 14 | { 15 | // TODO: implementation 16 | return false; 17 | } 18 | } 19 | } 20 | 21 | #endif // _NBL_COMPILE_WITH_GLTF_WRITER_ 22 | -------------------------------------------------------------------------------- /src/nbl/asset/interchange/IAssetWriter.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/asset/interchange/IAssetWriter.h" 6 | 7 | nbl::asset::IAssetWriter::IAssetWriterOverride nbl::asset::IAssetWriter::s_defaultOverride; 8 | -------------------------------------------------------------------------------- /src/nbl/asset/interchange/IImageAssetHandlerBase.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/asset/interchange/IImageAssetHandlerBase.h" 6 | 7 | using namespace nbl; 8 | using namespace asset; 9 | 10 | IImageAssetHandlerBase::~IImageAssetHandlerBase() 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /src/nbl/asset/interchange/IImageLoader.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/asset/interchange/IImageLoader.h" 6 | 7 | using namespace nbl; 8 | using namespace asset; 9 | 10 | IImageLoader::~IImageLoader() 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /src/nbl/asset/interchange/IImageWriter.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/asset/interchange/IImageWriter.h" 6 | 7 | using namespace nbl; 8 | using namespace asset; 9 | 10 | IImageWriter::~IImageWriter() 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /src/nbl/asset/material_compiler/CMaterialCompilerGLSLRasterBackend.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include 6 | 7 | namespace nbl::asset::material_compiler 8 | { 9 | 10 | auto CMaterialCompilerGLSLRasterBackend::compile(SContext* _ctx, IR* _ir, E_GENERATOR_STREAM_TYPE _generatorChoiceStream) -> result_t 11 | { 12 | result_t res = base_t::compile(_ctx, _ir, _generatorChoiceStream); 13 | 14 | res.fragmentShaderSource = 15 | R"( 16 | #include 17 | )"; 18 | 19 | return res; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/nbl/builtin/MTLdefaults.h: -------------------------------------------------------------------------------- 1 | constexpr const char* DUMMY_MTL_CONTENT = R"(== 2 | newmtl defaultMaterial 3 | Ns 10.0000 4 | Ni 1.5000 5 | d 1.0000 6 | Tr 0.0000 7 | Tf 1.0000 1.0000 1.0000 8 | illum 2 9 | Ka 1 1 1 10 | Kd 1 1 1 11 | Ks 0.0000 0.0000 0.0000 12 | Ke 0.0000 0.0000 0.0000 13 | map_Kd missing_checkerboard_texture.png 14 | ==)"; 15 | -------------------------------------------------------------------------------- /src/nbl/core/IReferenceCounted.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/core/IReferenceCounted.h" 6 | 7 | using namespace nbl; 8 | using namespace core; 9 | 10 | IReferenceCounted::~IReferenceCounted() 11 | { 12 | _NBL_DEBUG_BREAK_IF(ReferenceCounter!=0); 13 | } 14 | -------------------------------------------------------------------------------- /src/nbl/core/hash/blake.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/core/hash/blake.h" 2 | 3 | namespace nbl::core 4 | { 5 | 6 | blake3_hasher::blake3_hasher() 7 | { 8 | ::blake3_hasher_init(&m_state); 9 | } 10 | 11 | blake3_hasher& blake3_hasher::update(const void* data, const size_t bytes) 12 | { 13 | ::blake3_hasher_update(&m_state, data, bytes); 14 | return *this; 15 | } 16 | 17 | void blake3_hasher::reset() { 18 | ::blake3_hasher_reset(&m_state); 19 | } 20 | 21 | blake3_hasher::operator blake3_hash_t() const 22 | { 23 | blake3_hash_t retval; 24 | // the blake3 docs say that the hasher can be finalized multiple times 25 | ::blake3_hasher_finalize(&m_state, retval.data, sizeof(retval)); 26 | return retval; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/nbl/core/pch_core.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #ifndef __NBL_CORE_PCH_CORE_H_INCLUDED__ 6 | #define __NBL_CORE_PCH_CORE_H_INCLUDED__ 7 | 8 | #include "nbl/core/declarations.h" 9 | 10 | // private headers 11 | 12 | 13 | #endif -------------------------------------------------------------------------------- /src/nbl/ext/Bullet/BulletUtility.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/ext/Bullet/BulletUtility.h" 6 | 7 | #include 8 | 9 | namespace nbl 10 | { 11 | namespace ext 12 | { 13 | 14 | namespace Bullet3 15 | { 16 | 17 | /* 18 | 01 02 03 00 | 04 05 06 00 | 07 08 09 00 | 10 11 12 00 19 | 20 | 05 02 08 10 | 04 01 07 11 | 06 03 09 12 21 | */ 22 | 23 | 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/nbl/ext/Bullet/CInstancedMotionState.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | 5 | #include "nbl/ext/Bullet/CInstancedMotionState.h" 6 | 7 | #include "nbl/ext/DebugDraw/CDraw3DLine.h" 8 | using namespace nbl; 9 | using namespace ext; 10 | using namespace Bullet3; 11 | 12 | 13 | void CInstancedMotionState::getWorldTransform(btTransform &worldTrans) const { 14 | worldTrans = convertMatrixSIMD(m_node->getInstanceTransform(m_index)); 15 | } 16 | 17 | void CInstancedMotionState::setWorldTransform(const btTransform &worldTrans) { 18 | m_node->setInstanceTransform(m_index, convertbtTransform(worldTrans)); 19 | } -------------------------------------------------------------------------------- /src/nbl/ext/OptiX/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include(${NBL_ROOT_PATH}/cmake/common.cmake) 2 | set(NBL_EXT_INTERNAL_INCLUDE_DIR "${NBL_ROOT_PATH}/include/nbl/ext/OptiX") 3 | 4 | set(NBL_EXT_OPTIX_H 5 | ${NBL_EXT_INTERNAL_INCLUDE_DIR}/SbtRecord.h 6 | ${NBL_EXT_INTERNAL_INCLUDE_DIR}/IModule.h 7 | ${NBL_EXT_INTERNAL_INCLUDE_DIR}/IContext.h 8 | ${NBL_EXT_INTERNAL_INCLUDE_DIR}/IDenoiser.h 9 | ${NBL_EXT_INTERNAL_INCLUDE_DIR}/Manager.h 10 | ) 11 | 12 | set(NBL_EXT_OPTIX_SRC 13 | Manager.cpp 14 | IContext.cpp 15 | ) 16 | 17 | set(NBL_EXT_OPTIX_EXTERNAL_INCLUDE 18 | "${NBL_ROOT_PATH}/3rdparty" 19 | "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}" 20 | "${OPTIX_INCLUDE_DIR}" 21 | ) 22 | 23 | nbl_create_ext_library_project( 24 | OPTIX 25 | "${NBL_EXT_OPTIX_H}" 26 | "${NBL_EXT_OPTIX_SRC}" 27 | "${NBL_EXT_OPTIX_EXTERNAL_INCLUDE}" 28 | "" 29 | "" 30 | ) -------------------------------------------------------------------------------- /src/nbl/gtml.cpp: -------------------------------------------------------------------------------- 1 | #include "git_info.h" 2 | 3 | namespace nbl { 4 | const gtml::GitInfo& getGitInfo(gtml::E_GIT_REPO_META repo) { 5 | return gtml::gitMeta[repo]; 6 | } 7 | } -------------------------------------------------------------------------------- /src/nbl/system/CAPKResourcesArchive.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_SYSTEM_C_APK_RESOURCES_ARCHIVE_LOADER_H_INCLUDED_ 2 | #define _NBL_SYSTEM_C_APK_RESOURCES_ARCHIVE_LOADER_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/system/CFileArchive.h" 6 | 7 | #ifdef _NBL_PLATFORM_ANDROID_ 8 | #include 9 | 10 | 11 | struct AAssetManager; 12 | struct ANativeActivity; 13 | 14 | namespace nbl::system 15 | { 16 | 17 | class CAPKResourcesArchive final : public CFileArchive 18 | { 19 | public: 20 | CAPKResourcesArchive(const path& _path, system::logger_opt_smart_ptr&& logger, ANativeActivity* activity, JNIEnv* jniEnv); 21 | 22 | protected: 23 | static core::vector computeItems(const std::string& asset_path, ANativeActivity* activity, JNIEnv* jniEnv); 24 | 25 | file_buffer_t getFileBuffer(const IFileArchive::SFileList::SEntry* item) override; 26 | 27 | 28 | AAssetManager* m_mgr; 29 | }; 30 | 31 | } 32 | #endif 33 | 34 | #endif -------------------------------------------------------------------------------- /src/nbl/system/CColoredStdoutLoggerWin32.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/system/CColoredStdoutLoggerWin32.h" 2 | 3 | using namespace nbl; 4 | using namespace nbl::system; 5 | 6 | #ifdef _NBL_PLATFORM_WINDOWS_ 7 | #define WIN32_LEAN_AND_MEAN 8 | #include 9 | 10 | CColoredStdoutLoggerWin32::CColoredStdoutLoggerWin32(core::bitflag logLevelMask) : IThreadsafeLogger(logLevelMask) 11 | { 12 | m_native_console = GetStdHandle(STD_OUTPUT_HANDLE); 13 | } 14 | 15 | void CColoredStdoutLoggerWin32::threadsafeLog_impl(const std::string_view& fmt, E_LOG_LEVEL logLevel, va_list args) 16 | { 17 | SetConsoleTextAttribute(m_native_console, getConsoleColor(logLevel)); 18 | printf(constructLogString(fmt, logLevel, args).data()); 19 | fflush(stdout); 20 | SetConsoleTextAttribute(m_native_console, 15); // restore to white 21 | } 22 | #endif -------------------------------------------------------------------------------- /src/nbl/system/CFileViewAPKAllocator.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/system/CFileViewAPKAllocator.h" 2 | 3 | using namespace nbl::system; 4 | 5 | #ifdef _NBL_PLATFORM_ANDROID_ 6 | #include 7 | #include 8 | 9 | void* CFileViewAPKAllocator::alloc(size_t size) 10 | { 11 | assert(false); 12 | exit(-0x45); 13 | return nullptr; 14 | } 15 | 16 | bool CFileViewAPKAllocator::dealloc(void* data, size_t size) 17 | { 18 | AAsset_close(reinterpret_cast(m_state)); 19 | return true; 20 | } 21 | #endif -------------------------------------------------------------------------------- /src/nbl/system/CFileViewVirtualAllocatorPOSIX.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/system/IFileViewAllocator.h" 2 | 3 | using namespace nbl::system; 4 | 5 | #if defined(_NBL_PLATFORM_LINUX_) || defined(_NBL_PLATFORM_ANDROID_) 6 | #include 7 | 8 | void* CFileViewVirtualAllocatorPOSIX::alloc(size_t size) 9 | { 10 | return mmap((caddr_t)0, size, PROT_WRITE|PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); 11 | } 12 | bool CFileViewVirtualAllocatorPOSIX::dealloc(void* data, size_t size) 13 | { 14 | const auto ret = munmap(data,size); 15 | return ret != -1; 16 | } 17 | #endif -------------------------------------------------------------------------------- /src/nbl/system/CFileViewVirtualAllocatorWin32.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/system/IFileViewAllocator.h" 2 | 3 | using namespace nbl::system; 4 | 5 | #ifdef _NBL_PLATFORM_WINDOWS_ 6 | #include "Windows.h" 7 | 8 | void* CFileViewVirtualAllocatorWin32::alloc(size_t size) 9 | { 10 | return VirtualAlloc(nullptr, size, MEM_COMMIT|MEM_RESERVE, PAGE_READWRITE); // TODO: are these even the right flags? Do we want to commit everything right away? 11 | } 12 | bool CFileViewVirtualAllocatorWin32::dealloc(void* data, size_t size) 13 | { 14 | return VirtualFree(data, 0, MEM_RELEASE); 15 | } 16 | #endif -------------------------------------------------------------------------------- /src/nbl/system/ILogger.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/system/ILogger.h" 2 | 3 | namespace nbl::system 4 | { 5 | core::bitflag ILogger::DefaultLogMask() 6 | { 7 | #ifdef _NBL_DEBUG 8 | return core::bitflag(ELL_DEBUG) | ELL_INFO | ELL_WARNING | ELL_PERFORMANCE | ELL_ERROR; 9 | #elif defined(_NBL_RELWITHDEBINFO) 10 | return core::bitflag(ELL_INFO) | ELL_WARNING | ELL_PERFORMANCE | ELL_ERROR; 11 | #else 12 | return core::bitflag(ELL_WARNING) | ELL_PERFORMANCE | ELL_ERROR; 13 | #endif 14 | 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/nbl/video/CVulkanDescriptorSet.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/CVulkanDescriptorSet.h" 2 | 3 | #include "nbl/video/CVulkanLogicalDevice.h" 4 | 5 | namespace nbl::video 6 | { 7 | 8 | CVulkanDescriptorSet::~CVulkanDescriptorSet() 9 | { 10 | if (!isZombie() && getPool()->allowsFreeing()) 11 | { 12 | const CVulkanLogicalDevice* vulkanDevice = static_cast(getOriginDevice()); 13 | auto* vk = vulkanDevice->getFunctionTable(); 14 | 15 | const auto* vk_dsPool = IBackendObject::device_compatibility_cast(getPool(), getOriginDevice()); 16 | assert(vk_dsPool); 17 | 18 | vk->vk.vkFreeDescriptorSets(vulkanDevice->getInternalObject(), vk_dsPool->getInternalObject(), 1u, &m_descriptorSet); 19 | } 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/nbl/video/CVulkanDeviceFunctionTable.h: -------------------------------------------------------------------------------- 1 | #ifndef _C_VULKAN_FUNCTION_TABLE_H_INCLUDED_ 2 | #define _C_VULKAN_FUNCTION_TABLE_H_INCLUDED_ 3 | 4 | #include 5 | 6 | namespace nbl::video 7 | { 8 | 9 | class CVulkanDeviceFunctionTable 10 | { 11 | public: 12 | CVulkanDeviceFunctionTable(VkDevice dev) 13 | { 14 | volkLoadDeviceTable(&vk, dev); 15 | } 16 | 17 | VolkDeviceTable vk; 18 | }; 19 | 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /src/nbl/video/CVulkanFramebuffer.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_C_VULKAN_FRAMEBUFFER_H_INCLUDED_ 2 | #define _NBL_C_VULKAN_FRAMEBUFFER_H_INCLUDED_ 3 | 4 | #include "nbl/video/IGPUFramebuffer.h" 5 | 6 | #include 7 | 8 | namespace nbl::video 9 | { 10 | 11 | class ILogicalDevice; 12 | 13 | class CVulkanFramebuffer final : public IGPUFramebuffer 14 | { 15 | public: 16 | CVulkanFramebuffer(core::smart_refctd_ptr&& dev, SCreationParams&& params, const VkFramebuffer vk_framebuffer) 17 | : IGPUFramebuffer(std::move(dev),std::move(params)), m_vkfbo(vk_framebuffer) {} 18 | 19 | ~CVulkanFramebuffer(); 20 | 21 | inline VkFramebuffer getInternalObject() const {return m_vkfbo;} 22 | 23 | void setObjectDebugName(const char* label) const override; 24 | 25 | private: 26 | const VkFramebuffer m_vkfbo; 27 | }; 28 | 29 | } 30 | 31 | #endif -------------------------------------------------------------------------------- /src/nbl/video/CVulkanGraphicsPipeline.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/CVulkanGraphicsPipeline.h" 2 | 3 | #include "nbl/video/CVulkanLogicalDevice.h" 4 | 5 | namespace nbl::video 6 | { 7 | 8 | CVulkanGraphicsPipeline::~CVulkanGraphicsPipeline() 9 | { 10 | const CVulkanLogicalDevice* vulkanDevice = static_cast(getOriginDevice()); 11 | auto* vk = vulkanDevice->getFunctionTable(); 12 | vk->vk.vkDestroyPipeline(vulkanDevice->getInternalObject(), m_vkPipeline, nullptr); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /src/nbl/video/CVulkanQueryPool.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/CVulkanQueryPool.h" 2 | 3 | #include "nbl/video/CVulkanLogicalDevice.h" 4 | 5 | namespace nbl::video 6 | { 7 | 8 | CVulkanQueryPool::~CVulkanQueryPool() 9 | { 10 | if(VK_NULL_HANDLE != m_queryPool) 11 | { 12 | const auto* vulkanDevice = static_cast(getOriginDevice()); 13 | auto* vk = vulkanDevice->getFunctionTable(); 14 | vk->vk.vkDestroyQueryPool(vulkanDevice->getInternalObject(), m_queryPool, nullptr); 15 | } 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/nbl/video/CVulkanSampler.h: -------------------------------------------------------------------------------- 1 | #ifndef __NBL_VIDEO_C_VULKAN_SAMPLER_H_INCLUDED__ 2 | 3 | #include "nbl/video/IGPUSampler.h" 4 | 5 | #define VK_NO_PROTOTYPES 6 | #include 7 | 8 | namespace nbl::video 9 | { 10 | 11 | class CVulkanSampler : public IGPUSampler 12 | { 13 | public: 14 | CVulkanSampler(core::smart_refctd_ptr&& dev, const SParams& params, 15 | const VkSampler vk_sampler) 16 | : IGPUSampler(std::move(dev), params), m_sampler(vk_sampler) 17 | {} 18 | 19 | ~CVulkanSampler(); 20 | 21 | const void* getNativeHandle() const override {return &m_sampler;} 22 | inline VkSampler getInternalObject() const {return m_sampler;} 23 | 24 | void setObjectDebugName(const char* label) const override; 25 | 26 | private: 27 | VkSampler m_sampler; 28 | }; 29 | 30 | } 31 | 32 | #define __NBL_VIDEO_C_VULKAN_SAMPLER_H_INCLUDED__ 33 | #endif 34 | -------------------------------------------------------------------------------- /src/nbl/video/CVulkanShader.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/CVulkanShader.h" 2 | 3 | #include "nbl/video/CVulkanLogicalDevice.h" 4 | 5 | namespace nbl::video 6 | { 7 | 8 | CVulkanShader::~CVulkanShader() 9 | { 10 | const CVulkanLogicalDevice* vulkanDevice = static_cast(getOriginDevice()); 11 | auto* vk = vulkanDevice->getFunctionTable(); 12 | vk->vk.vkDestroyShaderModule(vulkanDevice->getInternalObject(), m_vkShaderModule, nullptr); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /src/nbl/video/CVulkanShader.h: -------------------------------------------------------------------------------- 1 | #ifndef _NBL_VIDEO_C_VULKAN_SHADER_H_INCLUDED_ 2 | #define _NBL_VIDEO_C_VULKAN_SHADER_H_INCLUDED_ 3 | 4 | 5 | #include "nbl/video/IGPUShader.h" 6 | 7 | 8 | namespace nbl::video 9 | { 10 | 11 | class ILogicalDevice; 12 | 13 | class CVulkanShader : public IGPUShader 14 | { 15 | public: 16 | CVulkanShader(const ILogicalDevice* dev, const E_SHADER_STAGE stage, std::string&& filepathHint, const VkShaderModule vk_shaderModule) : 17 | IGPUShader(core::smart_refctd_ptr(dev), stage, std::move(filepathHint)), m_vkShaderModule(vk_shaderModule) {} 18 | 19 | inline VkShaderModule getInternalObject() const { return m_vkShaderModule; } 20 | 21 | private: 22 | ~CVulkanShader(); 23 | 24 | VkShaderModule m_vkShaderModule = VK_NULL_HANDLE; 25 | 26 | }; 27 | 28 | } 29 | #endif 30 | -------------------------------------------------------------------------------- /src/nbl/video/IDeviceMemoryAllocation.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/IDeviceMemoryAllocation.h" 2 | 3 | namespace nbl::video 4 | { 5 | 6 | E_API_TYPE IDeviceMemoryAllocation::getAPIType() const 7 | { 8 | assert(m_originDevice); // any device memory shouldn't be allocated without creating a logical device 9 | 10 | return m_originDevice->getAPIType(); 11 | } 12 | 13 | IDeviceMemoryAllocation::MemoryRange IDeviceMemoryAllocation::alignNonCoherentRange(MemoryRange range) const 14 | { 15 | const auto alignment = m_originDevice->getPhysicalDevice()->getLimits().nonCoherentAtomSize; 16 | range.offset = core::alignDown(range.offset,alignment); 17 | range.length = core::min(core::alignUp(range.length,alignment),m_allocationSize); 18 | return range; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /src/nbl/video/IDeviceMemoryBacked.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/IDeviceMemoryBacked.h" 2 | 3 | namespace nbl::video 4 | { 5 | 6 | ICleanup::~ICleanup() {} 7 | 8 | } -------------------------------------------------------------------------------- /src/nbl/video/ISemaphore.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/ILogicalDevice.h" 2 | 3 | namespace nbl::video 4 | { 5 | 6 | ISemaphore::WAIT_RESULT ISemaphore::future_base_t::wait() const 7 | { 8 | if (!m_semaphore) 9 | return ISemaphore::WAIT_RESULT::SUCCESS; 10 | auto* device = const_cast(m_semaphore->getOriginDevice()); 11 | const SWaitInfo waitInfos[] = {{.semaphore=m_semaphore.get(),.value=m_waitValue}}; 12 | return device->blockForSemaphores(waitInfos); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/nbl/video/pch_video.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2018-2020 - DevSH Graphics Programming Sp. z O.O. 2 | // This file is part of the "Nabla Engine". 3 | // For conditions of distribution and use, see copyright notice in nabla.h 4 | #ifndef __NBL_VIDEO_PCH_VIDEO_H_INCLUDED__ 5 | #define __NBL_VIDEO_PCH_VIDEO_H_INCLUDED__ 6 | 7 | 8 | #include "nbl/video/declarations.h" 9 | #include "nbl/video/definitions.h" 10 | 11 | 12 | // private headers 13 | // TODO: @AnastaZIuk what is this about? 14 | #ifndef _NBL_PCH_IGNORE_PRIVATE_HEADERS 15 | 16 | // 17 | 18 | #endif //_NBL_PCH_IGNORE_PRIVATE_HEADERS 19 | 20 | #endif -------------------------------------------------------------------------------- /src/nbl/video/utilities/ICommandPoolCache.cpp: -------------------------------------------------------------------------------- 1 | #include "nbl/video/IPhysicalDevice.h" 2 | #include "nbl/video/ILogicalDevice.h" 3 | #include "nbl/video/utilities/ICommandPoolCache.h" 4 | 5 | using namespace nbl; 6 | using namespace video; 7 | 8 | 9 | void ICommandPoolCache::releaseSet(const uint32_t poolIx) 10 | { 11 | m_cache[poolIx]->reset(); 12 | m_cmdPoolAllocator.free_addr(poolIx,1); 13 | } 14 | 15 | void ICommandPoolCache::DeferredCommandPoolResetter::operator()() 16 | { 17 | #ifdef _NBL_DEBUG 18 | assert(m_cache && m_poolIxgetCapacity()); 19 | #endif // _NBL_DEBUG 20 | m_cache->releaseSet(m_poolIx); 21 | } -------------------------------------------------------------------------------- /tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(nsc) 2 | add_subdirectory(xxHash256) 3 | 4 | if(NBL_BUILD_IMGUI) 5 | add_subdirectory(nite) 6 | endif() -------------------------------------------------------------------------------- /tools/debug/VisualStudio/DynamicArrayVisualizer.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | size={item_count} elementType={"$T1"} 6 | 7 | item_count 8 | 9 | item_count 10 | reinterpret_cast<$T1*>(this)+dummy_item_count 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tools/nsc/.profiles/0.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake" : 3 | { 4 | "buildModes" : [], 5 | "configurations" : [ "Release", "Debug", "RelWithDebInfo" ], 6 | "requiredOptions" : [] 7 | }, 8 | "enableParallelBuild" : true, 9 | "input" : 10 | { 11 | "data" : 12 | [ 13 | { 14 | "command" : "../bin/nsc.exe", 15 | "dependencies" : [] 16 | } 17 | ], 18 | "dependencies" : [] 19 | }, 20 | "isExecuted" : true, 21 | "profile" : 22 | { 23 | "backend" : "vulkan", 24 | "buildModes" : [], 25 | "gpuArchitectures" : [], 26 | "platform" : "windows", 27 | "runConfiguration" : "Release" 28 | }, 29 | "scriptPath" : "../test/test.py", 30 | "threadsPerBuildProcess" : 2 31 | } -------------------------------------------------------------------------------- /tools/nsc/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "nsc test module", 6 | "type": "python", 7 | "request": "launch", 8 | "module": "nsc", 9 | "justMyCode": true, 10 | "cwd": "${workspaceFolder}/../", 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /tools/nsc/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.analysis.extraPaths": [ 3 | "../../tests/src" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /tools/nsc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Devsh-Graphics-Programming/Nabla/3b3d45c83c7ae6f1a4ae05a3fdd69844a4b94bf1/tools/nsc/__init__.py -------------------------------------------------------------------------------- /tools/nsc/config.json.template: -------------------------------------------------------------------------------- 1 | { 2 | "enableParallelBuild": true, 3 | "threadsPerBuildProcess" : 2, 4 | "isExecuted": true, 5 | "scriptPath": "test/test.py", 6 | "cmake": { 7 | "configurations": [ "Release", "Debug", "RelWithDebInfo" ], 8 | "buildModes": [], 9 | "requiredOptions": [] 10 | }, 11 | "profiles": [ 12 | { 13 | "backend": "vulkan", 14 | "platform": "windows", 15 | "buildModes": [], 16 | "runConfiguration": "Release", 17 | "gpuArchitectures": [], 18 | "inputs": [ 19 | "test/config/release.json.template" 20 | ] 21 | } 22 | ], 23 | "inputs": [] 24 | } -------------------------------------------------------------------------------- /tools/nsc/test/config/release.json.template: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [], 3 | "data": [ 4 | { 5 | "dependencies": [], 6 | "command": [ 7 | "${NBL_EXECUTABLE_GEN_EXP_FILEPATH}" 8 | ] 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /tools/nsc/test/hlsl/input.hlsl: -------------------------------------------------------------------------------- 1 | [numthreads(256,1,1)] 2 | void main() 3 | { 4 | 5 | } -------------------------------------------------------------------------------- /tools/nsc/test/test.py: -------------------------------------------------------------------------------- 1 | import framework as nbl 2 | 3 | def main(args = None, config_json_filepaths = None, nabla_dir = None, warnings = None): 4 | if config_json_filepaths is None: 5 | args, config_json_filepaths, nabla_dir, warnings = nbl.get_args() 6 | if nbl.ExpectedFileAsDependencyTest("Nabla DXC Tool", config_json_filepaths, nabla_dir, warnings).run(): 7 | print("Test finished, passed") 8 | exit(0) 9 | else: 10 | print() 11 | exit(1) -------------------------------------------------------------------------------- /tools/xxHash256/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(EXECUTABLE_NAME xxHash256) 2 | 3 | project(${EXECUTABLE_NAME}) 4 | add_executable(${EXECUTABLE_NAME} main.cpp) 5 | 6 | add_dependencies(${EXECUTABLE_NAME} argparse) 7 | target_include_directories(${EXECUTABLE_NAME} PUBLIC 8 | $ 9 | $ # only for xxHash256 include directory, we DO NOT want to link it nor use it 10 | ) 11 | 12 | nbl_adjust_flags(MAP_RELEASE Release MAP_RELWITHDEBINFO RelWithDebInfo MAP_DEBUG Debug) 13 | nbl_adjust_definitions() --------------------------------------------------------------------------------