Browse Source
Merge pull request #2857 from ReinUsesLisp/surface-srgb
video_core/surface: Add function to detect sRGB surfaces
pull/15/merge
Fernando Sahmkow
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
22 additions and
0 deletions
-
src/video_core/surface.cpp
-
src/video_core/surface.h
|
|
|
@ -513,6 +513,26 @@ bool IsPixelFormatASTC(PixelFormat format) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
bool IsPixelFormatSRGB(PixelFormat format) { |
|
|
|
switch (format) { |
|
|
|
case PixelFormat::RGBA8_SRGB: |
|
|
|
case PixelFormat::BGRA8_SRGB: |
|
|
|
case PixelFormat::DXT1_SRGB: |
|
|
|
case PixelFormat::DXT23_SRGB: |
|
|
|
case PixelFormat::DXT45_SRGB: |
|
|
|
case PixelFormat::BC7U_SRGB: |
|
|
|
case PixelFormat::ASTC_2D_4X4_SRGB: |
|
|
|
case PixelFormat::ASTC_2D_8X8_SRGB: |
|
|
|
case PixelFormat::ASTC_2D_8X5_SRGB: |
|
|
|
case PixelFormat::ASTC_2D_5X4_SRGB: |
|
|
|
case PixelFormat::ASTC_2D_5X5_SRGB: |
|
|
|
case PixelFormat::ASTC_2D_10X8_SRGB: |
|
|
|
return true; |
|
|
|
default: |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
std::pair<u32, u32> GetASTCBlockSize(PixelFormat format) { |
|
|
|
return {GetDefaultBlockWidth(format), GetDefaultBlockHeight(format)}; |
|
|
|
} |
|
|
|
|
|
|
|
@ -547,6 +547,8 @@ SurfaceType GetFormatType(PixelFormat pixel_format); |
|
|
|
|
|
|
|
bool IsPixelFormatASTC(PixelFormat format); |
|
|
|
|
|
|
|
bool IsPixelFormatSRGB(PixelFormat format); |
|
|
|
|
|
|
|
std::pair<u32, u32> GetASTCBlockSize(PixelFormat format); |
|
|
|
|
|
|
|
/// Returns true if the specified PixelFormat is a BCn format, e.g. DXT or DXN |
|
|
|
|