dxgi-helpers.hpp 641 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. static inline DXGI_FORMAT strip_dxgi_format_srgb(DXGI_FORMAT format)
  3. {
  4. switch ((unsigned long)format) {
  5. case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
  6. return DXGI_FORMAT_B8G8R8A8_UNORM;
  7. case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
  8. return DXGI_FORMAT_R8G8B8A8_UNORM;
  9. }
  10. return format;
  11. }
  12. static inline DXGI_FORMAT apply_dxgi_format_typeless(DXGI_FORMAT format,
  13. bool allow_srgb_alias)
  14. {
  15. if (allow_srgb_alias) {
  16. switch ((unsigned long)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. }