Files
obs-studio/plugins/win-capture/graphics-hook/dxgi-helpers.hpp
T

53 lines
1.6 KiB
C++

#pragma once
#include "graphics-hook.h"
static inline DXGI_FORMAT strip_dxgi_format_srgb(DXGI_FORMAT format)
{
switch (format) {
case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
return DXGI_FORMAT_B8G8R8A8_UNORM;
case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
return DXGI_FORMAT_R8G8B8A8_UNORM;
}
return format;
}
static inline DXGI_FORMAT apply_dxgi_format_typeless(DXGI_FORMAT format, bool allow_srgb_alias)
{
if (allow_srgb_alias) {
switch (format) {
case DXGI_FORMAT_B8G8R8A8_UNORM:
return DXGI_FORMAT_B8G8R8A8_TYPELESS;
case DXGI_FORMAT_R8G8B8A8_UNORM:
return DXGI_FORMAT_R8G8B8A8_TYPELESS;
}
}
return format;
}
static void print_swap_desc(const DXGI_SWAP_CHAIN_DESC *desc)
{
hlog("DXGI_SWAP_CHAIN_DESC:\n"
" BufferDesc.Width: %u\n"
" BufferDesc.Height: %u\n"
" BufferDesc.RefreshRate.Numerator: %u\n"
" BufferDesc.RefreshRate.Denominator: %u\n"
" BufferDesc.Format: %u\n"
" BufferDesc.ScanlineOrdering: %u\n"
" BufferDesc.Scaling: %u\n"
" SampleDesc.Count: %u\n"
" SampleDesc.Quality: %u\n"
" BufferUsage: %u\n"
" BufferCount: %u\n"
" Windowed: %u\n"
" SwapEffect: %u\n"
" Flags: %u",
desc->BufferDesc.Width, desc->BufferDesc.Height, desc->BufferDesc.RefreshRate.Numerator,
desc->BufferDesc.RefreshRate.Denominator, desc->BufferDesc.Format, desc->BufferDesc.ScanlineOrdering,
desc->BufferDesc.Scaling, desc->SampleDesc.Count, desc->SampleDesc.Quality, desc->BufferUsage,
desc->BufferCount, desc->Windowed, desc->SwapEffect, desc->Flags);
}