dxgi-helpers.hpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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,
  14. bool allow_srgb_alias)
  15. {
  16. if (allow_srgb_alias) {
  17. switch (format) {
  18. case DXGI_FORMAT_B8G8R8A8_UNORM:
  19. return DXGI_FORMAT_B8G8R8A8_TYPELESS;
  20. case DXGI_FORMAT_R8G8B8A8_UNORM:
  21. return DXGI_FORMAT_R8G8B8A8_TYPELESS;
  22. }
  23. }
  24. return format;
  25. }
  26. static void print_swap_desc(const DXGI_SWAP_CHAIN_DESC *desc)
  27. {
  28. hlog("DXGI_SWAP_CHAIN_DESC:\n"
  29. " BufferDesc.Width: %u\n"
  30. " BufferDesc.Height: %u\n"
  31. " BufferDesc.RefreshRate.Numerator: %u\n"
  32. " BufferDesc.RefreshRate.Denominator: %u\n"
  33. " BufferDesc.Format: %u\n"
  34. " BufferDesc.ScanlineOrdering: %u\n"
  35. " BufferDesc.Scaling: %u\n"
  36. " SampleDesc.Count: %u\n"
  37. " SampleDesc.Quality: %u\n"
  38. " BufferUsage: %u\n"
  39. " BufferCount: %u\n"
  40. " Windowed: %u\n"
  41. " SwapEffect: %u\n"
  42. " Flags: %u",
  43. desc->BufferDesc.Width, desc->BufferDesc.Height,
  44. desc->BufferDesc.RefreshRate.Numerator,
  45. desc->BufferDesc.RefreshRate.Denominator, desc->BufferDesc.Format,
  46. desc->BufferDesc.ScanlineOrdering, desc->BufferDesc.Scaling,
  47. desc->SampleDesc.Count, desc->SampleDesc.Quality,
  48. desc->BufferUsage, desc->BufferCount, desc->Windowed,
  49. desc->SwapEffect, desc->Flags);
  50. }