Closed chyyran closed 7 months ago
This sounds really great!!! I'm curious if you have support for the reference chaining and params files what I put into Retroarch. feel free to contact me on the libretro forum, or at HyperspaceMadness@outlook.com I have some ideas I'd like to discuss with you if you are interested :)
Reference chains and params files should already work with similar resolution logic as RetroArch.
On Thu, May 25, 2023 at 11:38 AM HyperspaceMadness @.***> wrote:
This sounds really great!!! I'm curious if you have support for the reference chaining and params files what I put into Retroarch. feel free to contact me on the libretro forum, or at @.*** I have some ideas I'd like to discuss with you if you are interested :)
— Reply to this email directly, view it on GitHub https://github.com/SnowflakePowered/librashader/issues/16#issuecomment-1562175161, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHUIN3XMMYMULJXBVBIIUTXH3A2DANCNFSM6AAAAAAVZ5ZB54 . You are receiving this because you authored the thread.Message ID: @.***>
Implement path wildcard replacement from https://github.com/libretro/RetroArch/pull/15023
It remains to be seen whether or not presets will use these wildcards but librashader should eventually add support for them via a context object if they see common use.
Some wildcards can be inferred from when loading from path.
$VID-DRV-SHADER-EXT$
is always.slang
for librashader.$VID-DRV-PRESET-EXT$
is always.slangp
for librashader.$PRESET_DIR$
can be inferred at load time.$PRESET$
can be inferred at load time.The remaining wildcards can be represented with structs; this gives a the context object that can be
#[repr(C)]
.$VID_DRIV$
is a static enum$CORE-REQ-ROT$
,$VID-USER-ROT$
,$SCREEN-ORIENT$
can be represented by an integer mod 4 as quarter-rotations on the unit circle (i.e. 0 = 0, 1 = 90deg, 2 = 180deg, 3 = 270deg).$VID-FINAL-ROT$
is calculated as the sum of$CORE-REQ-ROT$
and$VID-USER-ROT$
.$VIEW-ASPECT-ORIENT$
,$CORE-ASPECT-ORIENT$
,$VID-ALLOW-CORE-ROT$
will be encoded as booleans.$CORE$
,$GAME$
, and$CONTENT-DIR$
will have to be parsed from C strings owned by the caller.Example C struct definition:
Because paths are canonicalized, this information needs to be available at preset parse time.