summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/maxwell_3d.h
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-06-04 23:36:54 +0200
committerSubv <subv2112@gmail.com>2018-06-04 23:36:54 +0200
commit5d55403f94233f7645a426897d350cc557aaaa9d (patch)
tree51e140bc9638ce12acb5c504a836ab37e6187ef5 /src/video_core/engines/maxwell_3d.h
parentMerge pull request #499 from bunnei/am-stuff (diff)
downloadyuzu-5d55403f94233f7645a426897d350cc557aaaa9d.tar
yuzu-5d55403f94233f7645a426897d350cc557aaaa9d.tar.gz
yuzu-5d55403f94233f7645a426897d350cc557aaaa9d.tar.bz2
yuzu-5d55403f94233f7645a426897d350cc557aaaa9d.tar.lz
yuzu-5d55403f94233f7645a426897d350cc557aaaa9d.tar.xz
yuzu-5d55403f94233f7645a426897d350cc557aaaa9d.tar.zst
yuzu-5d55403f94233f7645a426897d350cc557aaaa9d.zip
Diffstat (limited to 'src/video_core/engines/maxwell_3d.h')
-rw-r--r--src/video_core/engines/maxwell_3d.h40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 5cf62fb01..245410c95 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -354,10 +354,35 @@ public:
f32 scale_x;
f32 scale_y;
f32 scale_z;
- u32 translate_x;
- u32 translate_y;
- u32 translate_z;
+ f32 translate_x;
+ f32 translate_y;
+ f32 translate_z;
INSERT_PADDING_WORDS(2);
+
+ MathUtil::Rectangle<s32> GetRect() const {
+ return {
+ GetX(), // left
+ GetY() + GetHeight(), // top
+ GetX() + GetWidth(), // right
+ GetY() // bottom
+ };
+ };
+
+ s32 GetX() const {
+ return static_cast<s32>(std::max(0.0f, translate_x - std::fabs(scale_x)));
+ }
+
+ s32 GetY() const {
+ return static_cast<s32>(std::max(0.0f, translate_y - std::fabs(scale_y)));
+ }
+
+ s32 GetWidth() const {
+ return static_cast<s32>(translate_x + std::fabs(scale_x)) - GetX();
+ }
+
+ s32 GetHeight() const {
+ return static_cast<s32>(translate_y + std::fabs(scale_y)) - GetY();
+ }
} viewport_transform[NumViewports];
struct {
@@ -371,15 +396,6 @@ public:
};
float depth_range_near;
float depth_range_far;
-
- MathUtil::Rectangle<s32> GetRect() const {
- return {
- static_cast<s32>(x), // left
- static_cast<s32>(y + height), // top
- static_cast<s32>(x + width), // right
- static_cast<s32>(y) // bottom
- };
- };
} viewport[NumViewports];
INSERT_PADDING_WORDS(0x1D);