gl_shader_decompiler: Make GetSwizzle constexpr
This commit is contained in:
		
							parent
							
								
									0adb54abc1
								
							
						
					
					
						commit
						ada79fa8ad
					
				| @ -31,6 +31,8 @@ using Tegra::Shader::IpaInterpMode; | ||||
| using Tegra::Shader::IpaMode; | ||||
| using Tegra::Shader::IpaSampleMode; | ||||
| using Tegra::Shader::Register; | ||||
| 
 | ||||
| using namespace std::string_literals; | ||||
| using namespace VideoCommon::Shader; | ||||
| 
 | ||||
| using Maxwell = Tegra::Engines::Maxwell3D::Regs; | ||||
| @ -96,11 +98,9 @@ private: | ||||
| }; | ||||
| 
 | ||||
| /// Generates code to use for a swizzle operation.
 | ||||
| std::string GetSwizzle(u32 elem) { | ||||
|     ASSERT(elem <= 3); | ||||
|     std::string swizzle = "."; | ||||
|     swizzle += "xyzw"[elem]; | ||||
|     return swizzle; | ||||
| constexpr const char* GetSwizzle(u32 element) { | ||||
|     constexpr std::array<const char*, 4> swizzle = {".x", ".y", ".z", ".w"}; | ||||
|     return swizzle.at(element); | ||||
| } | ||||
| 
 | ||||
| /// Translate topology
 | ||||
| @ -622,7 +622,7 @@ private: | ||||
|             if (stage != ShaderStage::Fragment) { | ||||
|                 return GeometryPass("position") + GetSwizzle(element); | ||||
|             } else { | ||||
|                 return element == 3 ? "1.0f" : "gl_FragCoord" + GetSwizzle(element); | ||||
|                 return element == 3 ? "1.0f" : ("gl_FragCoord"s + GetSwizzle(element)); | ||||
|             } | ||||
|         case Attribute::Index::PointCoord: | ||||
|             switch (element) { | ||||
| @ -909,7 +909,7 @@ private: | ||||
|             target = [&]() -> std::string { | ||||
|                 switch (const auto attribute = abuf->GetIndex(); abuf->GetIndex()) { | ||||
|                 case Attribute::Index::Position: | ||||
|                     return "position" + GetSwizzle(abuf->GetElement()); | ||||
|                     return "position"s + GetSwizzle(abuf->GetElement()); | ||||
|                 case Attribute::Index::PointSize: | ||||
|                     return "gl_PointSize"; | ||||
|                 case Attribute::Index::ClipDistances0123: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 ReinUsesLisp
						ReinUsesLisp