mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Utilize vector function instead
This commit is contained in:
		
							parent
							
								
									84054b7cd8
								
							
						
					
					
						commit
						9b3eb69973
					
				
					 1 changed files with 22 additions and 24 deletions
				
			
		|  | @ -376,9 +376,9 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve | ||||||
| 
 | 
 | ||||||
|                 if (use_border_s || use_border_t) { |                 if (use_border_s || use_border_t) { | ||||||
|                     auto border_color = texture.config.border_color; |                     auto border_color = texture.config.border_color; | ||||||
|                     texture_color[i] = { |                     texture_color[i] = Math::MakeVec(border_color.r.Value(), border_color.g.Value(), | ||||||
|                         static_cast<u8>(border_color.r), static_cast<u8>(border_color.g), |                                                      border_color.b.Value(), border_color.a.Value()) | ||||||
|                         static_cast<u8>(border_color.b), static_cast<u8>(border_color.a)}; |                                            .Cast<u8>(); | ||||||
|                 } else { |                 } else { | ||||||
|                     // Textures are laid out from bottom to top, hence we invert the t coordinate.
 |                     // Textures are laid out from bottom to top, hence we invert the t coordinate.
 | ||||||
|                     // NOTE: This may not be the right place for the inversion.
 |                     // NOTE: This may not be the right place for the inversion.
 | ||||||
|  | @ -415,12 +415,12 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve | ||||||
|             // analogously.
 |             // analogously.
 | ||||||
|             Math::Vec4<u8> combiner_output; |             Math::Vec4<u8> combiner_output; | ||||||
|             Math::Vec4<u8> combiner_buffer = {0, 0, 0, 0}; |             Math::Vec4<u8> combiner_buffer = {0, 0, 0, 0}; | ||||||
|             Math::Vec4<u8> next_combiner_buffer = { |             Math::Vec4<u8> next_combiner_buffer = | ||||||
|                 static_cast<u8>(regs.texturing.tev_combiner_buffer_color.r), |                 Math::MakeVec(regs.texturing.tev_combiner_buffer_color.r.Value(), | ||||||
|                 static_cast<u8>(regs.texturing.tev_combiner_buffer_color.g), |                               regs.texturing.tev_combiner_buffer_color.g.Value(), | ||||||
|                 static_cast<u8>(regs.texturing.tev_combiner_buffer_color.b), |                               regs.texturing.tev_combiner_buffer_color.b.Value(), | ||||||
|                 static_cast<u8>(regs.texturing.tev_combiner_buffer_color.a), |                               regs.texturing.tev_combiner_buffer_color.a.Value()) | ||||||
|             }; |                     .Cast<u8>(); | ||||||
| 
 | 
 | ||||||
|             Math::Vec4<u8> primary_fragment_color = {0, 0, 0, 0}; |             Math::Vec4<u8> primary_fragment_color = {0, 0, 0, 0}; | ||||||
|             Math::Vec4<u8> secondary_fragment_color = {0, 0, 0, 0}; |             Math::Vec4<u8> secondary_fragment_color = {0, 0, 0, 0}; | ||||||
|  | @ -474,9 +474,9 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve | ||||||
|                         return combiner_buffer; |                         return combiner_buffer; | ||||||
| 
 | 
 | ||||||
|                     case Source::Constant: |                     case Source::Constant: | ||||||
|                         return { |                         return Math::MakeVec(tev_stage.const_r.Value(), tev_stage.const_g.Value(), | ||||||
|                             static_cast<u8>(tev_stage.const_r), static_cast<u8>(tev_stage.const_g), |                                              tev_stage.const_b.Value(), tev_stage.const_a.Value()) | ||||||
|                             static_cast<u8>(tev_stage.const_b), static_cast<u8>(tev_stage.const_a)}; |                             .Cast<u8>(); | ||||||
| 
 | 
 | ||||||
|                     case Source::Previous: |                     case Source::Previous: | ||||||
|                         return combiner_output; |                         return combiner_output; | ||||||
|  | @ -589,11 +589,10 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve | ||||||
|             // store the depth etc. Using float for now until we know more
 |             // store the depth etc. Using float for now until we know more
 | ||||||
|             // about Pica datatypes
 |             // about Pica datatypes
 | ||||||
|             if (regs.texturing.fog_mode == TexturingRegs::FogMode::Fog) { |             if (regs.texturing.fog_mode == TexturingRegs::FogMode::Fog) { | ||||||
|                 const Math::Vec3<u8> fog_color = { |                 const Math::Vec3<u8> fog_color = Math::MakeVec(regs.texturing.fog_color.r.Value(), | ||||||
|                     static_cast<u8>(regs.texturing.fog_color.r.Value()), |                                                                regs.texturing.fog_color.g.Value(), | ||||||
|                     static_cast<u8>(regs.texturing.fog_color.g.Value()), |                                                                regs.texturing.fog_color.b.Value()) | ||||||
|                     static_cast<u8>(regs.texturing.fog_color.b.Value()), |                                                      .Cast<u8>(); | ||||||
|                 }; |  | ||||||
| 
 | 
 | ||||||
|                 // Get index into fog LUT
 |                 // Get index into fog LUT
 | ||||||
|                 float fog_index; |                 float fog_index; | ||||||
|  | @ -745,12 +744,12 @@ static void ProcessTriangleInternal(const Vertex& v0, const Vertex& v1, const Ve | ||||||
|                                         FramebufferRegs::BlendFactor factor) -> u8 { |                                         FramebufferRegs::BlendFactor factor) -> u8 { | ||||||
|                     DEBUG_ASSERT(channel < 4); |                     DEBUG_ASSERT(channel < 4); | ||||||
| 
 | 
 | ||||||
|                     const Math::Vec4<u8> blend_const = { |                     const Math::Vec4<u8> blend_const = | ||||||
|                         static_cast<u8>(output_merger.blend_const.r), |                         Math::MakeVec(output_merger.blend_const.r.Value(), | ||||||
|                         static_cast<u8>(output_merger.blend_const.g), |                                       output_merger.blend_const.g.Value(), | ||||||
|                         static_cast<u8>(output_merger.blend_const.b), |                                       output_merger.blend_const.b.Value(), | ||||||
|                         static_cast<u8>(output_merger.blend_const.a), |                                       output_merger.blend_const.a.Value()) | ||||||
|                     }; |                             .Cast<u8>(); | ||||||
| 
 | 
 | ||||||
|                     switch (factor) { |                     switch (factor) { | ||||||
|                     case FramebufferRegs::BlendFactor::Zero: |                     case FramebufferRegs::BlendFactor::Zero: | ||||||
|  | @ -851,5 +850,4 @@ void ProcessTriangle(const Vertex& v0, const Vertex& v1, const Vertex& v2) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace Rasterizer
 | } // namespace Rasterizer
 | ||||||
| 
 |  | ||||||
| } // namespace Pica
 | } // namespace Pica
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue