diff --git a/example b/example index 56272d3..6abee0c 100755 Binary files a/example and b/example differ diff --git a/example.cpp b/example.cpp index 407950b..625c540 100644 --- a/example.cpp +++ b/example.cpp @@ -39,10 +39,12 @@ int main(void) { UwU::Surface surface = UwU::Surface(w, h, onKey); UwU::ColorShader fuchsia = UwU::ColorShader(UwU::Color(0xb00b69ff)); - UwU::Rectangle rectangle = UwU::Rectangle(69, 69, 420, 420); - rectangle.draw(surface.buffer, fuchsia); + + UwU::ColorShader green = UwU::ColorShader(UwU::Color(0x00ff00ff)); + UwU::Point point = UwU::Point(187, 37); + point.draw(surface.buffer, green); // // Benchmarking // struct timespec start, end; diff --git a/primatives/point.cpp b/primatives/point.cpp index 77dda30..bb81ae3 100644 --- a/primatives/point.cpp +++ b/primatives/point.cpp @@ -5,7 +5,7 @@ #include "../datatypes.cpp" #include "../helpers.cpp" #include "../buffer.cpp" -#include "../shader.cpp" +#include "../shaders/shaders.h" namespace UwU { // point @@ -19,22 +19,11 @@ namespace UwU { uint16_t x; uint16_t y; - // Draw a rectangle - void draw (Buffer buffer, Shader shader) { + // Draw a point + template + void draw (Buffer buffer, ShaderBase& shader) { if (x > buffer.width || y > buffer.height) {return;}; - - if (shader.shaderType == COLOR) { - buffer.drawPixel(x, y, shader.c0); - return; - } else if (shader.shaderType == HGRADIENT) { - buffer.drawPixel(x, y, ShaderMethods::gradient(shader.u0, shader.scale, shader.c0, shader.c1, x)); - return; - } 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)); - } + buffer.drawPixel(x, y, shader.shade(x, y)); return; } }; diff --git a/primatives/rectangle.cpp b/primatives/rectangle.cpp index 5fb6471..a023bf6 100644 --- a/primatives/rectangle.cpp +++ b/primatives/rectangle.cpp @@ -6,7 +6,7 @@ #include "../helpers.cpp" #include "../buffer.cpp" #include "../shaders/shaderbase.cpp" -#include "../shaders/colorshader.cpp" +#include "../shaders/shaders.h" namespace UwU { // rectangle diff --git a/shaders/shaders.h b/shaders/shaders.h new file mode 100644 index 0000000..fc3bb96 --- /dev/null +++ b/shaders/shaders.h @@ -0,0 +1,4 @@ +#include "shaderbase.cpp" +#include "colorshader.cpp" +// #include "hgradientshader.cpp" +// #include "vgradientshader.cpp" \ No newline at end of file