#pragma once #include #include "../datatypes.cpp" #include "../helpers.cpp" #include "../buffer.cpp" #include "../shaders/shaderbase.cpp" #include "../shaders/shaders.h" namespace UwU { // rectangle class Rectangle { public: Rectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { this->x0 = x0; this->y0 = y0; this->x1 = x1; this->y1 = y1; } Rectangle() {} uint16_t x0; uint16_t y0; uint16_t x1; uint16_t y1; // Draw a rectangle template void draw (Buffer buffer, ShaderBase& shader) { if (x0 > buffer.width || y0 > buffer.height || x1 > buffer.width || y1 > buffer.height) {return;}; for (uint16_t y = y0; y <= y1; y++) { for (uint16_t x = x0; x <= x1; x++) { buffer.drawPixel(x, y, shader.shade(x, y)); } } return; } }; }