| 
									
										
										
										
											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 05:30:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-17 16:54:31 -05:00
										 |  |  | #include <cstring>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-29 20:55:07 -04:00
										 |  |  | #include "Common/ChunkFile.h"
 | 
					
						
							| 
									
										
										
										
											2014-09-17 02:04:37 +01:00
										 |  |  | #include "VideoCommon/BoundingBox.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "VideoCommon/BPMemory.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-19 02:27:20 +01:00
										 |  |  | #include "VideoCommon/CommandProcessor.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "VideoCommon/CPMemory.h"
 | 
					
						
							|  |  |  | #include "VideoCommon/Fifo.h"
 | 
					
						
							| 
									
										
										
										
											2014-12-14 21:23:13 +01:00
										 |  |  | #include "VideoCommon/GeometryShaderManager.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "VideoCommon/PixelEngine.h"
 | 
					
						
							|  |  |  | #include "VideoCommon/PixelShaderManager.h"
 | 
					
						
							|  |  |  | #include "VideoCommon/TextureDecoder.h"
 | 
					
						
							|  |  |  | #include "VideoCommon/VertexManagerBase.h"
 | 
					
						
							|  |  |  | #include "VideoCommon/VertexShaderManager.h"
 | 
					
						
							|  |  |  | #include "VideoCommon/VideoState.h"
 | 
					
						
							| 
									
										
										
										
											2014-02-19 02:27:20 +01:00
										 |  |  | #include "VideoCommon/XFMemory.h"
 | 
					
						
							| 
									
										
										
										
											2008-12-08 05:30:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-12 22:46:44 +01:00
										 |  |  | void VideoCommon_DoState(PointerWrap &p) | 
					
						
							| 
									
										
										
										
											2008-12-08 05:30:24 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-03-19 21:51:12 -04:00
										 |  |  | 	// BP Memory
 | 
					
						
							|  |  |  | 	p.Do(bpmem); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("BP Memory"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// CP Memory
 | 
					
						
							| 
									
										
										
										
											2014-08-27 13:26:06 -04:00
										 |  |  | 	DoCPState(p); | 
					
						
							| 
									
										
										
										
											2008-12-08 05:30:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 21:51:12 -04:00
										 |  |  | 	// XF Memory
 | 
					
						
							| 
									
										
										
										
											2014-04-27 11:59:04 -07:00
										 |  |  | 	p.Do(xfmem); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("XF Memory"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Texture decoder
 | 
					
						
							| 
									
										
										
										
											2015-09-29 12:35:30 -04:00
										 |  |  | 	p.DoArray(texMem); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("texMem"); | 
					
						
							| 
									
										
										
										
											2013-10-29 01:23:17 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 21:51:12 -04:00
										 |  |  | 	// FIFO
 | 
					
						
							| 
									
										
										
										
											2016-01-12 22:44:58 +01:00
										 |  |  | 	Fifo::DoState(p); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("Fifo"); | 
					
						
							| 
									
										
										
										
											2009-10-10 21:19:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-19 21:51:12 -04:00
										 |  |  | 	CommandProcessor::DoState(p); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("CommandProcessor"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	PixelEngine::DoState(p); | 
					
						
							|  |  |  | 	p.DoMarker("PixelEngine"); | 
					
						
							| 
									
										
										
										
											2012-01-01 12:46:02 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	// the old way of replaying current bpmem as writes to push side effects to pixel shader manager doesn't really work.
 | 
					
						
							|  |  |  | 	PixelShaderManager::DoState(p); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("PixelShaderManager"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-01 12:46:02 -08:00
										 |  |  | 	VertexShaderManager::DoState(p); | 
					
						
							| 
									
										
										
										
											2012-01-01 13:52:31 -08:00
										 |  |  | 	p.DoMarker("VertexShaderManager"); | 
					
						
							| 
									
										
										
										
											2012-01-01 12:46:02 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-14 21:23:13 +01:00
										 |  |  | 	GeometryShaderManager::DoState(p); | 
					
						
							|  |  |  | 	p.DoMarker("GeometryShaderManager"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-01 22:54:41 +01:00
										 |  |  | 	VertexManagerBase::DoState(p); | 
					
						
							| 
									
										
										
										
											2012-01-04 00:42:22 -08:00
										 |  |  | 	p.DoMarker("VertexManager"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-14 17:52:51 +01:00
										 |  |  | 	BoundingBox::DoState(p); | 
					
						
							|  |  |  | 	p.DoMarker("BoundingBox"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-01 12:46:02 -08:00
										 |  |  | 	// TODO: search for more data that should be saved and add it here
 | 
					
						
							| 
									
										
										
										
											2008-12-08 05:30:24 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-02 02:20:22 -08:00
										 |  |  | void VideoCommon_Init() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2014-08-27 13:26:06 -04:00
										 |  |  | 	memset(&g_main_cp_state, 0, sizeof(g_main_cp_state)); | 
					
						
							| 
									
										
										
										
											2014-08-27 13:38:00 -04:00
										 |  |  | 	memset(&g_preprocess_cp_state, 0, sizeof(g_preprocess_cp_state)); | 
					
						
							| 
									
										
										
										
											2012-01-02 02:20:22 -08:00
										 |  |  | 	memset(texMem, 0, TMEM_SIZE); | 
					
						
							|  |  |  | } |