obs-studio/libobs-d3d11
jpark37 66259560e0 libobs: Add dormant SRGB format support
GS_RGBA, GS_BGRX, and GS_BGRA now use TYPELESS DXGI formats, so we can
alias them between UNORM and UNORM_SRGB as necessary. GS_RGBA_UNORM,
GS_BGRX_UNORM, and GS_BGRA_UNORM have been added to support straight
UNORM types, which Windows requires for sharing textures from D3D9 and
OpenGL. The D3D path aliases via views, and GL aliases via
GL_EXT_texture_sRGB_decode/GL_FRAMEBUFFER_SRGB.

A significant amount of code has changed in the D3D/GL backends, but the
concepts are simple. On the D3D side, we need separate SRVs and RTVs to
support nonlinear/linear reads and writes. On the GL side, we need to
set the proper GL parameters to emulate the same.

Add gs_enable_framebuffer_srgb/gs_framebuffer_srgb_enabled to set/get
the framebuffer as SRGB or not.

Add gs_linear_srgb_active/gs_set_linear_srgb to instruct sources that
they should render as SRGB. Legacy sources can ignore this setting
without regression.

Update obs_source_draw to use linear SRGB as needed.

Update render_filter_tex to use linear SRGB as needed.

Add gs_effect_set_texture_srgb next to gs_effect_set_texture to set
texture with SRGB view instead.

Add SRGB helpers for vec4 struct.

Create GDI-compatible textures without SRGB support. Doesn't seem to
work with SRGB formats.
2021-01-21 07:42:13 -08:00
..
CMakeLists.txt cmake: Add cmake folders 2020-05-13 06:52:37 -07:00
d3d11-config.h.in libobs-d3d11: Set maximum GPU priority 2019-10-10 00:51:47 -07:00
d3d11-duplicator.cpp Revert "win-capture, libobs: Show names of displays in Display Capture" 2020-03-19 06:43:57 -07:00
d3d11-indexbuffer.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
d3d11-rebuild.cpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-samplerstate.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
d3d11-shader.cpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-shaderprocessor.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
d3d11-shaderprocessor.hpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
d3d11-stagesurf.cpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-subsystem.cpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-subsystem.hpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-texture2d.cpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-texture3d.cpp libobs: Add dormant SRGB format support 2021-01-21 07:42:13 -08:00
d3d11-vertexbuffer.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
d3d11-zstencilbuffer.cpp clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
intel-nv12-support.hpp libobs-d3d11: Enable NV12 for Intel on newer platforms 2020-02-26 05:49:13 -08:00