obs-studio/plugins/win-capture/graphics-hook/dxgi-helpers.hpp
2022-09-10 15:36:53 -07:00

56 lines
1.6 KiB
C++

#pragma once
#include "graphics-hook.h"
static inline DXGI_FORMAT strip_dxgi_format_srgb(DXGI_FORMAT format)
{
switch ((unsigned long)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 ((unsigned long)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);
}