From ee0d43dd752148b994a99a6bb308257fea6a55b1 Mon Sep 17 00:00:00 2001 From: Annika Date: Wed, 8 Jul 2026 17:13:57 -0700 Subject: [PATCH] added gradient shaders to all primatives --- example | Bin 41192 -> 41192 bytes example.cpp | 21 ++++++++++++--------- primatives/line.cpp | 23 +++++++++++++++++++++++ primatives/point.cpp | 2 ++ primatives/trapezoid.cpp | 7 +++++++ primatives/triangle.cpp | 18 ++++++++++++++++++ 6 files changed, 62 insertions(+), 9 deletions(-) diff --git a/example b/example index 9f33114caebd21d139e913f320e6a64401c363e6..106f820f8b890e1b57f3933cbd0e9e8499ac3bb8 100755 GIT binary patch delta 10247 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 delta 10377 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 h^>!P$`22{3pFir8QR?_Cke8s;@yTFC 0) { + y += yi; + d += (2 * (dy - dx)); + } else { + d += (2 * dy); + } + } + return; } return; } @@ -110,6 +122,17 @@ namespace UwU { } return; + } else if (shader.shaderType == BUFFER) { + for (int16_t y = iy0; y < iy1; y++) { + buffer.drawPixel((uint16_t)x, (uint16_t)y, ShaderMethods::buffer(shader.u0, shader.v0, shader.buffer, x, y)); + if (d > 0) { + x += xi; + d += (2 * (dx - dy)); + } else { + d += (2 * dx); + } + } + return; } return; } diff --git a/primatives/point.cpp b/primatives/point.cpp index 861f5a0..77dda30 100644 --- a/primatives/point.cpp +++ b/primatives/point.cpp @@ -32,6 +32,8 @@ namespace UwU { } else if (shader.shaderType == VGRADIENT) { buffer.drawPixel(x, y, ShaderMethods::gradient(shader.v0, shader.scale, shader.c0, shader.c1, y)); return; + } else if (shader.shaderType == BUFFER) { + buffer.drawPixel(x, y, ShaderMethods::buffer(shader.u0, shader.v0, shader.buffer, x, y)); } return; } diff --git a/primatives/trapezoid.cpp b/primatives/trapezoid.cpp index b1bf444..b67b638 100644 --- a/primatives/trapezoid.cpp +++ b/primatives/trapezoid.cpp @@ -74,6 +74,13 @@ namespace UwU { } return; + } else if (shader.shaderType == BUFFER) { + for (uint16_t i = 0; i < height; i++) { + for (uint16_t x = LeftBound[i]; x <= RightBound[i]; x++) { + buffer.drawPixel(x, i + y0, ShaderMethods::buffer(shader.u0, shader.v0, shader.buffer, x, i + y0)); + } + } + return; } return; } diff --git a/primatives/triangle.cpp b/primatives/triangle.cpp index acb30e6..6fc7a08 100644 --- a/primatives/triangle.cpp +++ b/primatives/triangle.cpp @@ -157,6 +157,24 @@ namespace UwU { } } return; + + } else if (shader.shaderType == BUFFER) { + // Left-handed triangle case (midpoint is left of triangle) + if ((int16_t)midX < longBound[midY - topY]) { + for (uint16_t i = 0; i < height; i++) { + for (uint16_t x = (uint16_t)splitBound[i]; x <= (uint16_t)longBound[i]; x++) { + buffer.drawPixel(x, i + (uint16_t)topY, ShaderMethods::buffer(shader.u0, shader.v0, shader.buffer, x, i + topY)); + } + } + // Right-handed triangle case (midpoint is right of triangle) + } else { + for (uint16_t i = 0; i < height; i++) { + for (uint16_t x = (uint16_t)longBound[i]; x <= (uint16_t)splitBound[i]; x++) { + buffer.drawPixel(x, i + (uint16_t)topY, ShaderMethods::buffer(shader.u0, shader.v0, shader.buffer, x, i + topY)); + } + } + } + return; } return; }