| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <memory>
 | 
					
						
							|  |  |  | #include "VideoBackends/Software/SWTexture.h"
 | 
					
						
							| 
									
										
										
										
											2017-08-23 21:46:23 -05:00
										 |  |  | #include "VideoBackends/Software/TextureEncoder.h"
 | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  | #include "VideoCommon/TextureCacheBase.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace SW | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | class TextureCache : public TextureCacheBase | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2019-02-15 11:59:50 +10:00
										 |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-11-03 00:17:00 +10:00
										 |  |  |   void CopyEFB(AbstractStagingTexture* dst, const EFBCopyParams& params, u32 native_width, | 
					
						
							| 
									
										
										
										
											2019-04-16 00:47:46 +10:00
										 |  |  |                u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, | 
					
						
							|  |  |  |                const MathUtil::Rectangle<int>& src_rect, bool scale_by_half, bool linear_filter, | 
					
						
							|  |  |  |                float y_scale, float gamma, bool clamp_top, bool clamp_bottom, | 
					
						
							|  |  |  |                const EFBCopyFilterCoefficients& filter_coefficients) override | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  |   { | 
					
						
							| 
									
										
										
										
											2017-09-02 21:30:34 -05:00
										 |  |  |     TextureEncoder::Encode(dst, params, native_width, bytes_per_row, num_blocks_y, memory_stride, | 
					
						
							| 
									
										
										
										
											2018-04-29 18:52:30 +10:00
										 |  |  |                            src_rect, scale_by_half, y_scale, gamma); | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2019-04-16 00:47:46 +10:00
										 |  |  |   void CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_copy, | 
					
						
							|  |  |  |                            const MathUtil::Rectangle<int>& src_rect, bool scale_by_half, | 
					
						
							|  |  |  |                            bool linear_filter, EFBCopyFormat dst_format, bool is_intensity, | 
					
						
							|  |  |  |                            float gamma, bool clamp_top, bool clamp_bottom, | 
					
						
							| 
									
										
										
										
											2019-02-15 11:59:50 +10:00
										 |  |  |                            const EFBCopyFilterCoefficients& filter_coefficients) override | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  |   { | 
					
						
							| 
									
										
										
										
											2017-08-23 21:46:23 -05:00
										 |  |  |     // TODO: If we ever want to "fake" vram textures, we would need to implement this
 | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  |   } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-02 21:30:34 -05:00
										 |  |  | }  // namespace SW
 |