MW v1.8
Real on-demand texture swap implemented:
- Texture loading using IOCP (Windows I/O Completion Ports, CPU based Dynamic thread count for IOCP worker for faster loading)
- Multithreaded D3DX calls with proper synchronization
- Device pointer passed as pointer-to-pointer and dereferenced at load time
- D3DCREATE_MULTITHREADED flag prevents D3DX state corruption
- Crooked json 'texturePath' errors handling
- Migrated to minhook from injector
- Integrated fastmem usage
- Replaced all global STL objects with raw Windows primitives or pointers that we never delete for clean shutdown
- Introduced old Texmod .tpf support (just throw .tpf into game Texmod folder)
- Simplified logger (shouldn't issue thread throttles or locks)
Note: d3d9.dll wrapper is required