dxgi-helpers.hpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include "graphics-hook.h"
  3. static inline DXGI_FORMAT strip_dxgi_format_srgb(DXGI_FORMAT format)
  4. {
  5. switch (format) {
  6. case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
  7. return DXGI_FORMAT_B8G8R8A8_UNORM;
  8. case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
  9. return DXGI_FORMAT_R8G8B8A8_UNORM;
  10. }
  11. return format;
  12. }
  13. static inline DXGI_FORMAT apply_dxgi_format_typeless(DXGI_FORMAT format, bool allow_srgb_alias)
  14. {
  15. if (allow_srgb_alias) {
  16. switch (format) {
  17. case DXGI_FORMAT_B8G8R8A8_UNORM:
  18. return DXGI_FORMAT_B8G8R8A8_TYPELESS;
  19. case DXGI_FORMAT_R8G8B8A8_UNORM:
  20. return DXGI_FORMAT_R8G8B8A8_TYPELESS;
  21. }
  22. }
  23. return format;
  24. }
  25. static void print_swap_desc(const DXGI_SWAP_CHAIN_DESC *desc)
  26. {
  27. hlog("DXGI_SWAP_CHAIN_DESC:\n"
  28. " BufferDesc.Width: %u\n"
  29. " BufferDesc.Height: %u\n"
  30. " BufferDesc.RefreshRate.Numerator: %u\n"
  31. " BufferDesc.RefreshRate.Denominator: %u\n"
  32. " BufferDesc.Format: %u\n"
  33. " BufferDesc.ScanlineOrdering: %u\n"
  34. " BufferDesc.Scaling: %u\n"
  35. " SampleDesc.Count: %u\n"
  36. " SampleDesc.Quality: %u\n"
  37. " BufferUsage: %u\n"
  38. " BufferCount: %u\n"
  39. " Windowed: %u\n"
  40. " SwapEffect: %u\n"
  41. " Flags: %u",
  42. desc->BufferDesc.Width, desc->BufferDesc.Height, desc->BufferDesc.RefreshRate.Numerator,
  43. desc->BufferDesc.RefreshRate.Denominator, desc->BufferDesc.Format, desc->BufferDesc.ScanlineOrdering,
  44. desc->BufferDesc.Scaling, desc->SampleDesc.Count, desc->SampleDesc.Quality, desc->BufferUsage,
  45. desc->BufferCount, desc->Windowed, desc->SwapEffect, desc->Flags);
  46. }