| 
									
										
										
										
											2014-02-10 13:54:46 -05:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-12 15:33:41 -04:00
										 |  |  | #include <string>
 | 
					
						
							| 
									
										
										
										
											2014-02-17 05:18:15 -05:00
										 |  |  | #include "VideoCommon/VideoBackendBase.h"
 | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-02 14:16:43 +01:00
										 |  |  | namespace MMIO { class Mapping; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | namespace SW | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-16 22:48:17 +00:00
										 |  |  | class VideoSoftware : public VideoBackend | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	bool Initialize(void *&) override; | 
					
						
							|  |  |  | 	void Shutdown() override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-11 06:55:00 +01:00
										 |  |  | 	std::string GetName() const override; | 
					
						
							| 
									
										
										
										
											2014-08-03 20:07:27 -04:00
										 |  |  | 	std::string GetDisplayName() const override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void EmuStateChange(EMUSTATE_CHANGE newState) override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void RunLoop(bool enable) override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void ShowConfig(void* parent) override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void Video_Prepare() override; | 
					
						
							|  |  |  | 	void Video_Cleanup() override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void Video_EnterLoop() override; | 
					
						
							|  |  |  | 	void Video_ExitLoop() override; | 
					
						
							|  |  |  | 	void Video_BeginField(u32, u32, u32) override; | 
					
						
							|  |  |  | 	void Video_EndField() override; | 
					
						
							| 
									
										
										
										
											2013-10-29 01:23:17 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	u32 Video_AccessEFB(EFBAccessType, u32, u32, u32) override; | 
					
						
							|  |  |  | 	u32 Video_GetQueryResult(PerfQueryType type) override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-12 15:33:41 -04:00
										 |  |  | 	void Video_AddMessage(const std::string& msg, unsigned int milliseconds) override; | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void Video_ClearMessages() override; | 
					
						
							| 
									
										
										
										
											2014-03-12 15:33:41 -04:00
										 |  |  | 	bool Video_Screenshot(const std::string& filename) override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-02 01:40:05 -05:00
										 |  |  | 	int Video_LoadTexture(char *imagedata, u32 width, u32 height); | 
					
						
							|  |  |  | 	void Video_DeleteTexture(int texID); | 
					
						
							|  |  |  | 	void Video_DrawTexture(int texID, float *coords); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void Video_SetRendering(bool bEnabled) override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void Video_GatherPipeBursted() override; | 
					
						
							|  |  |  | 	bool Video_IsPossibleWaitingSetDrawDone() override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-02 14:16:43 +01:00
										 |  |  | 	void RegisterCPMMIO(MMIO::Mapping* mmio, u32 base) override; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-12 15:33:41 -04:00
										 |  |  | 	void UpdateFPSDisplay(const std::string&) override; | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	unsigned int PeekMessages() override; | 
					
						
							| 
									
										
										
										
											2011-12-30 20:16:12 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void PauseAndLock(bool doLock, bool unpauseOnUnlock=true) override; | 
					
						
							|  |  |  | 	void DoState(PointerWrap &p) override; | 
					
						
							| 
									
										
										
										
											2013-10-29 01:23:17 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-23 13:32:23 +01:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2013-10-29 01:34:26 -04:00
										 |  |  | 	void CheckInvalidState() override; | 
					
						
							| 
									
										
										
										
											2011-01-31 01:28:32 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |