Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kirides/go-d3d
Implements some d3d11 and dxgi interfaces for use with e.g. IDXGIOutputDuplication
https://github.com/kirides/go-d3d
com-interop d3d11 go golang idxgioutputduplication screen-capture screen-sharing windows
Last synced: 7 days ago
JSON representation
Implements some d3d11 and dxgi interfaces for use with e.g. IDXGIOutputDuplication
- Host: GitHub
- URL: https://github.com/kirides/go-d3d
- Owner: kirides
- License: other
- Created: 2022-12-27T09:22:52.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-17T17:03:00.000Z (6 months ago)
- Last Synced: 2024-08-03T23:30:12.582Z (4 months ago)
- Topics: com-interop, d3d11, go, golang, idxgioutputduplication, screen-capture, screen-sharing, windows
- Language: Go
- Homepage:
- Size: 38.1 KB
- Stars: 28
- Watchers: 4
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
- awesome-golang-repositories - go-d3d
README
This code allows to use D3D11 IDXGIOutputDuplication in Go
## Examples- Encoding an mjpeg stream [examples/mjpegstream](./examples/mjpegstream)
- Recording an h264 video using ffmpeg for transcoding [examples/recording](./examples/recording)## Libaries used
- `golang.org/x/exp/shiny/driver/internal/swizzle` for faster BGRA -> RGBA conversion (see [shiny LICENSE](./outputduplication/swizzle/LICENSE))
## app.manifest
To make use of `IDXGIOutput5::DuplicateOutput1`, an application has to provide support for PerMonitorV2 DPI-Awareness (Windows 10 1703+) This is usually done by providing an `my-executable.exe.manifest` file either next to the executable, or as an embedded resource.
In the examples there are calls to `IsValidDpiAwarenessContext` and `SetThreadDpiAwarenessContext` which circumvent the requirement.