Skip to content

Support Wide Displays #6

@jbienz

Description

@jbienz

Is your feature request related to a problem? Please describe.
Currently Refract only works with Looking Glass Portrait and only displays the center 1/3 of the game.

Describe the solution you'd like
Support for wide screen LKG displays and full-frame games.

Describe alternatives you've considered
N/A

Additional context

I can think of 3 potential ways of doing this:

  1. Switch to rendering horizontal. The problem with this is that you have to get the game to render in half the vertical resolution but at the 2:1 compress ratio. This has to be done in Reglass (Reshade) before you can try to stretch it back out in Refrat to the full height and proper aspect ratio. You would need to add another shader pass in Reglass and expose an option for it in the shader settings. In Refract, you'd have to change the parameters on the UDD (desktop capture) object to capture the vertical half rather than the horizontal half. And you'd have to add an extra pass in the Refract displacement shader to stretch the result.

  2. Interlace. Rather than splitting the screen half and half, you would do every-other line. This might require less effort because you wouldn't have to squish. You'd only have to stretch. But the process would be similar to the above.

  3. The right way to do it would be to write a Reshade native plugin. These are new and are in Reshade 5. They're written in C++. The plugin would theoretically have access to the full color frame and the full depth buffer frame without screen splitting at all. The C++ plugin would then have to send this data to Refract over ICP (inter-process communication). Refract would need to be modified to receive frames over ICP rather than screen scraping. This is no small undertaking, but it's really the right way to do it if possible. It would get around the desktop duplication limitations some users are facing, and it would allow Refract to work on a much wider range of displays.

I haven't started this work because I don't have a wide screen display to test it on. If any users are thinking about implementing this, I highly recommend trying to implement it this way.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions