| 
									
										
										
										
											2013-10-07 16:02:24 +02:00
										 |  |  | // Copyright 2013 Dolphin Emulator Project
 | 
					
						
							|  |  |  | // Licensed under GPLv2
 | 
					
						
							|  |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _CONSTANTMANAGER_H
 | 
					
						
							|  |  |  | #define _CONSTANTMANAGER_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // all constant buffer attributes must be 16 bytes aligned, so this are the only allowed components:
 | 
					
						
							|  |  |  | typedef float float4[4]; | 
					
						
							|  |  |  | typedef u32 uint4[4]; | 
					
						
							| 
									
										
										
										
											2013-10-07 19:04:03 +02:00
										 |  |  | typedef s32 int4[4]; | 
					
						
							| 
									
										
										
										
											2013-10-07 16:02:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct PixelShaderConstants | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	float4 colors[4]; | 
					
						
							|  |  |  | 	float4 kcolors[4]; | 
					
						
							|  |  |  | 	float4 alpha; | 
					
						
							|  |  |  | 	float4 texdims[8]; | 
					
						
							|  |  |  | 	float4 zbias[2]; | 
					
						
							|  |  |  | 	float4 indtexscale[2]; | 
					
						
							| 
									
										
										
										
											2013-10-08 14:34:42 +02:00
										 |  |  | 	float4 indtexmtx[6]; | 
					
						
							| 
									
										
										
										
											2013-10-07 16:02:24 +02:00
										 |  |  | 	float4 fog[3]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// For pixel lighting
 | 
					
						
							|  |  |  | 	float4 plights[40]; | 
					
						
							|  |  |  | 	float4 pmaterials[4]; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct VertexShaderConstants | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	float4 posnormalmatrix[6]; | 
					
						
							|  |  |  | 	float4 projection[4]; | 
					
						
							|  |  |  | 	float4 materials[4]; | 
					
						
							|  |  |  | 	float4 lights[40]; | 
					
						
							|  |  |  | 	float4 texmatrices[24]; | 
					
						
							|  |  |  | 	float4 transformmatrices[64]; | 
					
						
							|  |  |  | 	float4 normalmatrices[32]; | 
					
						
							|  |  |  | 	float4 posttransformmatrices[64]; | 
					
						
							|  |  |  | 	float4 depthparams; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |