summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software/SWCommandProcessor.h
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2015-06-10 00:00:12 +0200
committerJules Blok <jules.blok@gmail.com>2015-06-10 00:00:12 +0200
commit7dfced21a2e5aac7195e0e1ad76468e30306766b (patch)
treebd671b639d3d911460b767caabad8fc8a759a6bf /Source/Core/VideoBackends/Software/SWCommandProcessor.h
parentc25be031fc1031d795157d8344b87b7841145197 (diff)
parent7b0a65e295c784f9d573f2ef52d4e2a7b9bb2889 (diff)
Merge branch 'master' into stable
Diffstat (limited to 'Source/Core/VideoBackends/Software/SWCommandProcessor.h')
-rw-r--r--Source/Core/VideoBackends/Software/SWCommandProcessor.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Software/SWCommandProcessor.h b/Source/Core/VideoBackends/Software/SWCommandProcessor.h
new file mode 100644
index 0000000000..539be4263f
--- /dev/null
+++ b/Source/Core/VideoBackends/Software/SWCommandProcessor.h
@@ -0,0 +1,61 @@
+// Copyright 2009 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "Common/CommonTypes.h"
+
+#include "VideoCommon/CommandProcessor.h"
+
+class PointerWrap;
+namespace MMIO { class Mapping; }
+
+namespace SWCommandProcessor
+{
+ using UCPStatusReg = CommandProcessor::UCPStatusReg;
+ using UCPCtrlReg = CommandProcessor::UCPCtrlReg;
+ using UCPClearReg = CommandProcessor::UCPClearReg;
+
+ struct CPReg
+ {
+ UCPStatusReg status; // 0x00
+ UCPCtrlReg ctrl; // 0x02
+ UCPClearReg clear; // 0x04
+ u32 unk0; // 0x08
+ u16 unk1; // 0x0c
+ u16 token; // 0x0e
+ u16 bboxleft; // 0x10
+ u16 bboxtop; // 0x12
+ u16 bboxright; // 0x14
+ u16 bboxbottom; // 0x16
+ u32 unk2; // 0x18
+ u32 unk3; // 0x1c
+ u32 fifobase; // 0x20
+ u32 fifoend; // 0x24
+ u32 hiwatermark; // 0x28
+ u32 lowatermark; // 0x2c
+ u32 rwdistance; // 0x30
+ u32 writeptr; // 0x34
+ u32 readptr; // 0x38
+ u32 breakpt; // 0x3c
+ };
+
+ // Init
+ void Init();
+ void Shutdown();
+ void DoState(PointerWrap &p);
+
+ void RegisterMMIO(MMIO::Mapping* mmio, u32 base);
+
+ bool RunBuffer();
+ void RunGpu();
+
+ // for CGPFIFO
+ void GatherPipeBursted();
+ void UpdateInterrupts(u64 userdata);
+ void UpdateInterruptsFromVideoBackend(u64 userdata);
+
+ void SetRendering(bool enabled);
+
+} // end of namespace SWCommandProcessor