diff options
| -rw-r--r-- | src/video_core/textures/texture.h | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/src/video_core/textures/texture.h b/src/video_core/textures/texture.h index 8c278c0e2..a2b98245b 100644 --- a/src/video_core/textures/texture.h +++ b/src/video_core/textures/texture.h | |||
| @@ -283,31 +283,36 @@ enum class TextureMipmapFilter : u32 { | |||
| 283 | 283 | ||
| 284 | struct TSCEntry { | 284 | struct TSCEntry { |
| 285 | union { | 285 | union { |
| 286 | BitField<0, 3, WrapMode> wrap_u; | 286 | struct { |
| 287 | BitField<3, 3, WrapMode> wrap_v; | 287 | union { |
| 288 | BitField<6, 3, WrapMode> wrap_p; | 288 | BitField<0, 3, WrapMode> wrap_u; |
| 289 | BitField<9, 1, u32> depth_compare_enabled; | 289 | BitField<3, 3, WrapMode> wrap_v; |
| 290 | BitField<10, 3, DepthCompareFunc> depth_compare_func; | 290 | BitField<6, 3, WrapMode> wrap_p; |
| 291 | BitField<13, 1, u32> srgb_conversion; | 291 | BitField<9, 1, u32> depth_compare_enabled; |
| 292 | BitField<20, 3, u32> max_anisotropy; | 292 | BitField<10, 3, DepthCompareFunc> depth_compare_func; |
| 293 | BitField<13, 1, u32> srgb_conversion; | ||
| 294 | BitField<20, 3, u32> max_anisotropy; | ||
| 295 | }; | ||
| 296 | union { | ||
| 297 | BitField<0, 2, TextureFilter> mag_filter; | ||
| 298 | BitField<4, 2, TextureFilter> min_filter; | ||
| 299 | BitField<6, 2, TextureMipmapFilter> mipmap_filter; | ||
| 300 | BitField<9, 1, u32> cubemap_interface_filtering; | ||
| 301 | BitField<12, 13, u32> mip_lod_bias; | ||
| 302 | }; | ||
| 303 | union { | ||
| 304 | BitField<0, 12, u32> min_lod_clamp; | ||
| 305 | BitField<12, 12, u32> max_lod_clamp; | ||
| 306 | BitField<24, 8, u32> srgb_border_color_r; | ||
| 307 | }; | ||
| 308 | union { | ||
| 309 | BitField<12, 8, u32> srgb_border_color_g; | ||
| 310 | BitField<20, 8, u32> srgb_border_color_b; | ||
| 311 | }; | ||
| 312 | std::array<f32, 4> border_color; | ||
| 313 | }; | ||
| 314 | std::array<u32, 8> raw; | ||
| 293 | }; | 315 | }; |
| 294 | union { | ||
| 295 | BitField<0, 2, TextureFilter> mag_filter; | ||
| 296 | BitField<4, 2, TextureFilter> min_filter; | ||
| 297 | BitField<6, 2, TextureMipmapFilter> mipmap_filter; | ||
| 298 | BitField<9, 1, u32> cubemap_interface_filtering; | ||
| 299 | BitField<12, 13, u32> mip_lod_bias; | ||
| 300 | }; | ||
| 301 | union { | ||
| 302 | BitField<0, 12, u32> min_lod_clamp; | ||
| 303 | BitField<12, 12, u32> max_lod_clamp; | ||
| 304 | BitField<24, 8, u32> srgb_border_color_r; | ||
| 305 | }; | ||
| 306 | union { | ||
| 307 | BitField<12, 8, u32> srgb_border_color_g; | ||
| 308 | BitField<20, 8, u32> srgb_border_color_b; | ||
| 309 | }; | ||
| 310 | std::array<f32, 4> border_color; | ||
| 311 | 316 | ||
| 312 | float GetMaxAnisotropy() const { | 317 | float GetMaxAnisotropy() const { |
| 313 | return static_cast<float>(1U << max_anisotropy); | 318 | return static_cast<float>(1U << max_anisotropy); |