* change tpfconvert functionality to backup into backup folder
* use vcpkg for more packages
* update readme, bump to 1.7.0.2
* rework dll path
* https://github.com/gwdevhub/gMod/issues/33
* v1.7.0.3
* use image.OverrideFormat()
* 1.6.4
* import std
* uninitialised member variable
* debug statement for 64 bit hash testing
* nopetynope
* uint32_t
* support for 64 bit hashes, but rip compute time :/
* refactor weird comments and constructors
* 1.7.0.0 because of 64 bit hashes
* only check crc64 if at least one mod with crc64 is loaded
* do some dumb shit to deal with incorrect bmps somehow (needs work)
* remove image interpretation for bmps
* create TpfConvert.exe to convert tpf files easily
* attempt
* set up vcpkg and install d3dx though that
* missing env variable?
* Win32 architecture
* update ci to tag TpfConvert.exe and d3dx9.dll as well (required to run TpfConvert)
* documentation
* add gsl library to track memory allocations
* rework creation to respect mod order
slight slowdown but just to be safe
* 1.6.1
* print info on timing
* specify largeaddressaware (shouldn't matter since gw is linked with it, but can't hurt)
* basic tga/hdr image loading
* bgr tga tex
* convert to dds during loading
doesn't work yet, fails to create textures from dds memory
* remove ext member from TextureFileStruct
* do not convert images, leads to weird loading problems...
* use regex matching for tpf loading
* convert non-RGBA images to RGBA
* remove d3dx (mostly)
* fix moving wrong image
* move TextureFunction to module
* move FileLoader to ModfileLoader module
* move TextureClient to module
* spaces
* ifdef debug
* 1.6.0
* compress images to dxt5 (bc3_unorm) to use less memory
* remove unnecessary directxtex source code patch
* don't move unnecessarily
* only compress if mods in filesystem use up more than 400mb
* use std::future to prepare to multithread image loading
fails when using std::launch::async though, maybe something in the directxtex library is not thread safe
* remove d3dx sdk from workflows
* remove extern "C"
* catch exception when saving texture
* make loading async (call CoInitializeEx)
* support DXGI_FORMAT_BC1_UNORM (DXT1) compressed textures without warning
* don't warn for BC2 BC4 or BC5 either
* update README.md
* remove d3dx9.dll dependency (still requires dx legacy sdk for development, but not for end users)
* fix
* Fix to allow gMod to be loaded as "d3d9.dll"
Don't check for d3d9 functions when checking dll's, its not that deep.
Fix to allow gMod to load "d3d9.dll" using the default method rather than defaulting to system directory
* use d3dx sdk for wic texture loading until we figure out how to load volume/cube textures without it
* fix jons commit
* 1.5.7
* create warning message
* pass correct pointer type, shouldn't matter but lets see
* use Warning instead of Message for failed actions
* need to use d3dpool_managed...
* use specialised methods
* actually do something in the Direct3DCreate9Ex method?
* spaces
* test loading WIC textures with modified WICTextureLoader9.cpp
* include
* Hook into GetProcAddress instead of d3d9 dll
* extern "C" the Direct3DCreate9/Ex functions
* turn on debug messages
* add back in creating of our replacement textures, woopsies
* add messages back in, not loading yet, debug later
* remove SingleTexture stuff
* dont rely on d3dx anymore :)
* Tidied up assertion error box
Added logic to use gmod as d3d9.dll or gmod.dll
Added check to avoid recursive calls to create d3d9
* Remove unused func
* use directxtex for dds textures
* use d3dx sdk for wic texture loading until we figure out how to load volume/cube textures without it
* update d3d9 loading
* remove more unnecessary code
* todo?
* 1.5.5.0
* change GetHash from in_out parameter to return the hash
* remove ForceReload bool for textures
* remove textureserver, place logic in textureclient, not yet finished
next up change FileToMod and shit to use modded_textures map
* fix debug compilation errors
* fix typo
* should_update boolean, replace the entire MergeUpdate logic later
* tidy up d3d9_dll.cpp and bits (#12)
* define `ASSERT`
Added minhook lib to tidy up hooks
Remove cruft from dx9_dll.cpp
* Bug fix
* Another typo
---------
Co-authored-by: Jon <>
* gitignore
* Proxy functions, cache dx9 device type
* simplify LoadModsFromFile
* move minhook dependency to fetch content
* Make it work
* Tweaked debug for file reads
* Fixed inverse check
* unordered_map
* set should_update (yikes)
* simplify libzippp.cmake
* remove unnecessary code
* rename project files (keep uMod_ prefix only for d3d9 classes)
* remove unused Nothing() function
* remove unnecessary fields
* remove some code duplication
refactor methods together
* refactor SwitchTextures and UnswitchTextures together
* move loaded_size into function
* enable libzippp encryption again
* copy data from opened zipentry and then delete the entry
* fix hash bug in volume textures
* const
* change uMod_TextureClient to TextureClient
* revert libzippp.cmake
* 1.5.6
* toggle use_folders on
* Rename pipelines
* its a strcpy :(
* add miniz, add xorstream, add non-working ziploader
* start integrating libzip (WIP)
* use ExternalProject test (doesnt work maybe?!)
* further work in integrating libzippp [WIP]
can't build libzip yet (neither manually nor in the vs build), as it doesn't find zlib
* LibZip build script
* make libzip build too
todo: specify cmake find_library to check the paths we install to
* prepare everything in cmake
* fix rebuilding of libzip/zlib
* fix stupid double quotes
* libzippp works
* Setup libzippp archive loading
* Remove allocation of new data when adding file to TextureServer
* Enable CI on dev
* Create LICENSE (#5)
* add mbedtls
* fix cmake (forgot to substitute, woops)
* fix %lu warnings for printing addresses
* enable debug messages, some formatting
* remove mbedtls, fix libzip for /MD(d)
* some code changes
* fix cmake logic, str replace min cmake version in libzip-src/CMakeLists.txt to 3.15
* linker errors in release
* c++ify a little
* remove unnecessary duplicate c++23 definition
* Fixes to gMod_XorStream when calculating stream length
* Fix loading tpf contents with password
* Implemented complete parsing
* Cleanup file loading
* Change to NI
* Revert "Change to NI"
This reverts commit 19b511d907.
* update XorStreamReader to read whole file, then xor
* delete a lot of unused code
* loading logic
* rename console window
* 1.5.4
* remove pointless mutex
* wtf is this code
---------
Co-authored-by: Alex Macocian <amacocian@yahoo.com>
* remove GUI parts as those will not be updated
* move to header/source
* add cmakelist to create solution
* Change Readme
* Implement modlist.txt loading
* Setup versioning and CD pipeline
* Setup DirectX in pipeline
* Make uMod load from uMod.dll directory
* Fix file loading
* Remove break
* Fix CD pipeline (#1)
* Test cd pipeline
* See what's in Lib directory
* See inside lib/x86
* Manually adjust the build environment
* Disable CD pipeline in PRs
Create CI pipeline
* Fix slashes in path
* Fix build call
* Attempt to fix paths
* Copy dx headers inside the /header folder
* Use ps
* Change cache location
* Path changes
* Improve CMake to look for lib and header files
* Fix missing Lib folder
* Move changes to CD pipeline
* Disable CI on merge and fix CD (#2)
* Fix CD tag (#4)
* Hijack existing DirectX calls (#5)
* Create a dll without listener (#6)
* Fix asset creation in CD pipeline (#7)
* Setup file loading
* create necessary files
* merge latest changes, set output dir
* Change main to master in pipelines
Add fallback for DX libs in CMakeLists
* Setup new generator
* formatting
* remove listener
* Change CD to pick the dll from bin
Change release name to gMod
* more formatting
* add editorconfig
* Setup versioning
* Remove CODEOWNERS
---------
Co-authored-by: Alex Macocian <amacocian@yahoo.com>
- OTM_TextureClient::MergeUpdate: force reload does now switch the correct texture (previously it lead to a crash)
- OTM_TextureClient::MergeUpdate: volume and cube textures are now loaded (if they were not loaded before)
- OTM_TextureServer: if textures were added more than once, they could not be deleted correctly
- OTM_Sender::SendTextures: if texture were loaded, but get unloaded due to a rearranging of the list, they are now marked correctly as unloaded
Improvements:
- OTM keeps in mind the actual window position
- added a MORE_TEXTURES flag for the pipe comunication: if more data is written to the pipe, than the size of the buffer, the Mainloop of the OTM_TextureServer will wait for the rest of the date before it prepare an update for the OTM_TextureClient.
- added the last missing texture formats of D3DFORMAT (except two formats)
Improvements:
- DLL: The fake textures are sorted according their hash values (see previous commit) and now the MergeUpdate() function is improved in speed.
DLL: Fake textures are sorted by their hash values and therefore the search is faster (if the game loads a texture).
I rearranged the code in the OTM_DX9/OTM_DX9_dll.cpp, I hope it is now easier to read.
Changed c-runtime linkage of the GUI to static.
The use of Mutex is enabled, for a secure execution of the server thread in the dll.
BugFix:
- GUI: If texture are removed (which were previously loaded) they are now marked as not loaded.
- DLL: Added AddRef/Release counter to ensure a clean up before the device is destroyed.
- DLL: The reference to the FileToMod array is now update to the new value (after merging an updated).
- DLL: SingleTexture is now unswitched, if it was switched with a texture, which shall be replaced with a texture due to a new update.
- when loading a template, the layout function of the sizer is called, thus the new packages are also shown
- Author and NoComment are also loaded from a language pack
- append '\0' at the end of game name (dll injection)
- Release() fake texture (if force reload) instead of calling RemoveTexture(..)
Improvements:
- template support, you can now have more than one template set one of them as default.
- update function will only update the texture if this is needed or the reload button is pressed.
- textures will also be removed, if they are removed from the package list.
- OTM_IDirect3DDevice9::UpdateTexture passes not the correct textures to the original function
- OTM_IDirect3DTexture9: functions which handle with the original data are now redirected to the cross reference (if the texture was switched)
- GUI: memory expand function: more then 10 games can be started and mor then 100 texture packs be added.
- remove dots, slash and backslash at the beginning of filenames in the texmod.def
- selected language will now be stored
- now one has to set all keys, if save single texture is set to true
BugFix:
- removed CheckBoxVSizer, it was unused, but object were detached
- correct estimation of the number of hash entries in OTM_Sender::SendTextures
Improvements:
- added a comment support for tpf and zip files
- a bug prevented to unload Mods, which were new added to the list
Improvements:
- OpenTexMod can now be started only once
- language support (German package provided)
- added more error comments
-BoolSaveSingleTexture was not initialized on start of OTM_TextureServer
Improvements:
-add error handling for all operations in the GUI
-colour support for font an switched texture (if save single texture is enabled)