d3d11 backend for the Render API
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 37k
- Forks
- 3.5k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 22
Description
It would be very nice to have d3d11 interface accessible within libmpv/render.h for external applications.
It could be a solution which allows to get directx 2D texture/shader resource view handles which can be used in a user application with its own dx11 device/context (i.e. shared immutable or dynamic texture). The final video frames are to be rendered into that texture (app tells needed resolution to mpv)
The alternative solution is to pass a d3d11 device from host app to mpv and then either
(a) again, create a texture inside mpv and pass back to an app or
(b) do it similar to how GL render API works now, i.e. render to a user-provided render target (which I don't like that much though, since having a texture is more convenient to me, though it still serves its needs)
I started do implement this feature on my own some time ago, but I'm a bit lost inside mpv's internal rendering structures, and debugging is quite tricky under windows (although I have a pdb file which I can use for debugging under Visual Studio, but it's not ideal).
Just wondering if someone can guide me a bit?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at libmpv/render.h and trace the existing Render API into mpv’s internal rendering structures. Use the Windows Visual Studio debugging setup described in the issue as needed; done means defining a d3d11 interface that supports the requested external texture or device flow and renders final frames at the application’s requested resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- api, computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100