Add changes for community shaders#70
Conversation
|
Ok I think I figured out the NG format. This also includes all of po3s updates till today. My plan is to help keep you synced with po3 too and I'll probably stop doing commonlibvr separately. |
There was a problem hiding this comment.
Pull Request Overview
This pull request integrates community shader improvements, graphics edits, and VR wand input support. The changes include updated VTABLE constants, improved enum handling, enhanced VR compatibility, and new VR touchpad input support.
Key changes:
- Replace
stl::enumerationwithREX::EnumSetthroughout the codebase - Add VTABLE constants and KEEP_FOR_RE macros to numerous classes
- Implement VR-specific input event handling with touchpad support
- Update version compatibility macros for better VR/non-VR differentiation
Reviewed Changes
Copilot reviewed 300 out of 1866 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| BSInputEventQueue.h | Added VR touchpad input support with new event types and data structures |
| BSImagespaceShader.h | Enhanced with compute shader support and better virtual function handling |
| BSLightingShaderProperty.h | Added rendering methods and improved material handling |
| BSGeometry.h | Added utility method for lighting shader property casting |
| BGSSaveLoadManager.h | Improved save file management with better character tracking |
| Multiple shader files | Replaced enum types and added missing VTABLE constants |
| @@ -5,6 +5,10 @@ | |||
| #include "RE/B/BSTHashMap.h" | |||
There was a problem hiding this comment.
[nitpick] Consider moving the large input device state structures to a separate header file. Adding 160+ lines of new functionality to an existing header creates a very large file that may be difficult to maintain.
| virtual ~BSModelProcessor(); | ||
|
|
||
| // add | ||
| virtual void PostCreate(const DBTraits::ArgsType& a_args, const char* modelName, NiPointer<NiNode>& a_root, std::uint32_t& a_typeOut); |
There was a problem hiding this comment.
The PostCreate method takes a non-const reference to a_typeOut but it's unclear what values are expected or what the method should set. Consider documenting the expected behavior or using an enum for the output type.
| virtual void PostCreate(const DBTraits::ArgsType& a_args, const char* modelName, NiPointer<NiNode>& a_root, std::uint32_t& a_typeOut); | |
| enum class ModelType : std::uint32_t | |
| { | |
| Unknown = 0, | |
| Static = 1, | |
| Dynamic = 2, | |
| Skinned = 3 | |
| }; | |
| virtual void PostCreate(const DBTraits::ArgsType& a_args, const char* modelName, NiPointer<NiNode>& a_root, ModelType& a_typeOut); |
| inline static constexpr auto VTABLE = VTABLE_BSLightingShaderMaterialBase; | ||
|
|
||
| ~BSLightingShaderMaterialBase() override; // 00 | ||
| ~BSLightingShaderMaterialBase() override = default; // 00 |
There was a problem hiding this comment.
Changing a virtual destructor from a custom implementation to = default could break binary compatibility if the original destructor had side effects or specific cleanup logic. This change should be carefully reviewed.
| ~BSLightingShaderMaterialBase() override = default; // 00 | |
| ~BSLightingShaderMaterialBase() override // 00 | |
| { | |
| // Explicitly reset smart pointers to release resources | |
| diffuseTexture.reset(); | |
| normalTexture.reset(); | |
| rimSoftLightingTexture.reset(); | |
| specularBackLightingTexture.reset(); | |
| textureSet.reset(); | |
| } |
BSScriptObjectBindPolicy - via SeaSparrow's fork
Misc Rendering RE, some grass RE
add FlashHUDMeter to Misc.h/cpp
Fix wrong member order for BSTScatterTable
Change ExtraCharge type from kCannotWear to kCharge
## [4.3.0](v4.2.0...v4.3.0) (2026-02-22) ### Features * merge po3 ([d3e2a39](d3e2a39))
## [4.4.0](v4.3.0...v4.4.0) (2026-02-24) ### Features * sync with max-su-2019 ([#124](#124)) ([31c5709](31c5709))
## [4.5.0](v4.4.0...v4.5.0) (2026-03-03) ### Features * update BSStorage, IVMSaveLoadInterface, VM ([7275c85](7275c85)) ### Bug Fixes * accumulate signature ([c02cf2a](c02cf2a))
EDIT: For those visiting Charmed repo, note he's no longer maintaining. I'm leaving this up here primarily so you know where to go to see the active fork.
Doodles did some graphics edits for community shaders. I also pulled in po3's latest to fix some wrong addresses. Lastly I have parapet's VR wand edits for button events. Can you please let me know if I'm doing something wrong for the VR specific class inheritance? 1d1981a.