RFR: 8092272: [D3D 3D] Need a robust 3D states management for texture
Nir Lisker
nlisker at openjdk.org
Wed Nov 8 23:45:21 UTC 2023
Moves the filter setting of the samplers from the device parameters configuration to the use-site, allowing for dynamic changes in the sampler. This PR does internal plumbing work only to bring it close to the ES2 pipeline. A followup PR will create the public API.
Summary of the changes:
* Created a new (internal for now) `TextureData` object that is intended to contain all the data of texture (map) of `PhongMaterial`, such as filters, addressing, wrapping mode, mipmaps etc. **This PR deals only with filters** as a starting point, more settings can be added later.
* Creates an update mechanism from the Java side material to the native D3D layer. The public API `PhoneMaterial` is *not* changed yet. The peer `NGPhongMaterial` is configured to receive update from the public `PhongMaterial` when the public API is created via new `ObjectProperty<TextureData>` properties.
* Small refactoring in the D3D layer with a new map types enum to control the texture settings more easily.
The JBS issue lists some regressions in a comment, but I couldn't reproduce them. It looks like the sampler settings needed to be added anywhere, and that was the easiest to do at the time. Now they were just moved.
-------------
Commit messages:
- Removed whitespaces
- Remove printing/comments
- Java side files update
- Add filter type management to native material and meshview
Changes: https://git.openjdk.org/jfx/pull/1281/files
Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1281&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8092272
Stats: 260 lines in 10 files changed: 200 ins; 21 del; 39 mod
Patch: https://git.openjdk.org/jfx/pull/1281.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1281/head:pull/1281
PR: https://git.openjdk.org/jfx/pull/1281
More information about the openjfx-dev
mailing list