| 
									
										
										
										
											2015-05-24 06:55:12 +02:00
										 |  |  | // Copyright 2008 Dolphin Emulator Project
 | 
					
						
							| 
									
										
										
										
											2015-05-18 01:08:10 +02:00
										 |  |  | // Licensed under GPLv2+
 | 
					
						
							| 
									
										
										
										
											2013-04-17 23:09:55 -04:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							| 
									
										
										
										
											2008-12-08 04:46:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2008-12-08 04:46:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-17 16:54:31 -05:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "VideoCommon/ConstantManager.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-08 04:46:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-01 12:46:02 -08:00
										 |  |  | class PointerWrap; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-29 21:13:56 +00:00
										 |  |  | void UpdateProjectionHack(int iParams[], std::string sParams[]); | 
					
						
							| 
									
										
										
										
											2009-12-05 13:56:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-26 10:43:18 +00:00
										 |  |  | // The non-API dependent parts.
 | 
					
						
							|  |  |  | class VertexShaderManager | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   static void Init(); | 
					
						
							|  |  |  |   static void Dirty(); | 
					
						
							|  |  |  |   static void DoState(PointerWrap& p); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // constant management
 | 
					
						
							|  |  |  |   static void SetConstants(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   static void InvalidateXFRange(int start, int end); | 
					
						
							|  |  |  |   static void SetTexMatrixChangedA(u32 value); | 
					
						
							|  |  |  |   static void SetTexMatrixChangedB(u32 value); | 
					
						
							|  |  |  |   static void SetViewportChanged(); | 
					
						
							|  |  |  |   static void SetProjectionChanged(); | 
					
						
							|  |  |  |   static void SetMaterialColorChanged(int index); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   static void TranslateView(float x, float y, float z = 0.0f); | 
					
						
							|  |  |  |   static void RotateView(float x, float y); | 
					
						
							|  |  |  |   static void ResetView(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // data: 3 floats representing the X, Y and Z vertex model coordinates and the posmatrix index.
 | 
					
						
							|  |  |  |   // out:  4 floats which will be initialized with the corresponding clip space coordinates
 | 
					
						
							|  |  |  |   // NOTE: g_fProjectionMatrix must be up to date when this is called
 | 
					
						
							|  |  |  |   //       (i.e. VertexShaderManager::SetConstants needs to be called before using this!)
 | 
					
						
							|  |  |  |   static void TransformToClipSpace(const float* data, float* out, u32 mtxIdx); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   static VertexShaderConstants constants; | 
					
						
							|  |  |  |   static bool dirty; | 
					
						
							| 
									
										
										
										
											2008-12-08 04:46:09 +00:00
										 |  |  | }; |