summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software/SWBoundingBox.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-10-08 22:24:38 +0200
committerGitHub <noreply@github.com>2021-10-08 22:24:38 +0200
commitff1cb5a1c08d5a4a2a0449b8b23a4977ccc20f8a (patch)
treea584d167e0c71c08d4d885f60aa071f5a577692e /Source/Core/VideoBackends/Software/SWBoundingBox.h
parentd90b30ca251146c478759190d9b206f38c3b70d3 (diff)
parent1161af80594c403233e3d21589af004ee2d75594 (diff)
Merge pull request #9803 from Techjar/bbox-videocommon
VideoCommon: Abstract bounding box
Diffstat (limited to 'Source/Core/VideoBackends/Software/SWBoundingBox.h')
-rw-r--r--Source/Core/VideoBackends/Software/SWBoundingBox.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Software/SWBoundingBox.h b/Source/Core/VideoBackends/Software/SWBoundingBox.h
new file mode 100644
index 0000000000..116d85bdf1
--- /dev/null
+++ b/Source/Core/VideoBackends/Software/SWBoundingBox.h
@@ -0,0 +1,43 @@
+// Copyright 2021 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "Common/CommonTypes.h"
+
+#include "VideoCommon/BoundingBox.h"
+
+namespace BBoxManager
+{
+// Indicates a coordinate of the bounding box.
+enum class Coordinate
+{
+ Left, // The X coordinate of the left side of the bounding box.
+ Right, // The X coordinate of the right side of the bounding box.
+ Top, // The Y coordinate of the top of the bounding box.
+ Bottom, // The Y coordinate of the bottom of the bounding box.
+};
+
+// Gets a particular coordinate for the bounding box.
+u16 GetCoordinate(Coordinate coordinate);
+
+// Sets a particular coordinate for the bounding box.
+void SetCoordinate(Coordinate coordinate, u16 value);
+
+// Updates all bounding box coordinates.
+void Update(u16 left, u16 right, u16 top, u16 bottom);
+} // namespace BBoxManager
+
+namespace SW
+{
+class SWBoundingBox final : public BoundingBox
+{
+public:
+ bool Initialize() override { return true; }
+
+protected:
+ std::vector<BBoxType> Read(u32 index, u32 length) override;
+ void Write(u32 index, const std::vector<BBoxType>& values) override;
+};
+
+} // namespace SW