Change scissor type from sw::Rect to VkRect2D

Removed sw::Rect from Renderer.

Bug b/126883332

Change-Id: I01ff418745c19739b4692c7cec56ae54fe91a8fc
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27109
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Device/Renderer.cpp b/src/Device/Renderer.cpp
index 90b84ff..d803e61 100644
--- a/src/Device/Renderer.cpp
+++ b/src/Device/Renderer.cpp
@@ -438,10 +438,10 @@
 
 		// Scissor
 		{
-			data->scissorX0 = scissor.x0;
-			data->scissorX1 = scissor.x1;
-			data->scissorY0 = scissor.y0;
-			data->scissorY1 = scissor.y1;
+			data->scissorX0 = scissor.offset.x;
+			data->scissorX1 = scissor.offset.x + scissor.extent.width;
+			data->scissorY0 = scissor.offset.y;
+			data->scissorY1 = scissor.offset.y + scissor.extent.height;
 		}
 
 		draw->primitive = 0;
@@ -1604,7 +1604,7 @@
 		this->viewport = viewport;
 	}
 
-	void Renderer::setScissor(const Rect &scissor)
+	void Renderer::setScissor(const VkRect2D &scissor)
 	{
 		this->scissor = scissor;
 	}
diff --git a/src/Device/Renderer.hpp b/src/Device/Renderer.hpp
index b90f1d7..c31676c 100644
--- a/src/Device/Renderer.hpp
+++ b/src/Device/Renderer.hpp
@@ -267,7 +267,7 @@
 
 		// Viewport & Clipper
 		void setViewport(const VkViewport &viewport);
-		void setScissor(const Rect &scissor);
+		void setScissor(const VkRect2D &scissor);
 
 		void addQuery(Query *query);
 		void removeQuery(Query *query);
@@ -311,7 +311,7 @@
 		Clipper *clipper;
 		Blitter *blitter;
 		VkViewport viewport;
-		Rect scissor;
+		VkRect2D scissor;
 		int clipFlags;
 
 		Triangle *triangleBatch[16];
diff --git a/src/Vulkan/VkPipeline.cpp b/src/Vulkan/VkPipeline.cpp
index e567e8d..9d11b85 100644
--- a/src/Vulkan/VkPipeline.cpp
+++ b/src/Vulkan/VkPipeline.cpp
@@ -57,11 +57,6 @@
 	return sw::DRAW_TRIANGLELIST;
 }
 
-sw::Rect Convert(const VkRect2D& rect)
-{
-	return sw::Rect(rect.offset.x, rect.offset.y, rect.offset.x + rect.extent.width, rect.offset.y + rect.extent.height);
-}
-
 sw::StreamType getStreamType(VkFormat format)
 {
 	switch(format)
@@ -331,7 +326,7 @@
 			UNIMPLEMENTED();
 		}
 
-		scissor = Convert(viewportState->pScissors[0]);
+		scissor = viewportState->pScissors[0];
 		viewport = viewportState->pViewports[0];
 	}
 
@@ -517,7 +512,7 @@
 	return context;
 }
 
-const sw::Rect& GraphicsPipeline::getScissor() const
+const VkRect2D& GraphicsPipeline::getScissor() const
 {
 	return scissor;
 }
diff --git a/src/Vulkan/VkPipeline.hpp b/src/Vulkan/VkPipeline.hpp
index d3a92d2..84b6ef5 100644
--- a/src/Vulkan/VkPipeline.hpp
+++ b/src/Vulkan/VkPipeline.hpp
@@ -71,7 +71,7 @@
 
 	uint32_t computePrimitiveCount(uint32_t vertexCount) const;
 	const sw::Context& getContext() const;
-	const sw::Rect& getScissor() const;
+	const VkRect2D& getScissor() const;
 	const VkViewport& getViewport() const;
 	const sw::Color<float>& getBlendConstants() const;
 
@@ -80,7 +80,7 @@
 	sw::SpirvShader *fragmentShader = nullptr;
 
 	sw::Context context;
-	sw::Rect scissor;
+	VkRect2D scissor;
 	VkViewport viewport;
 	sw::Color<float> blendConstants;
 };