#pragma once #include #include "../datatypes.cpp" #include "../helpers.cpp" #include "../buffer.cpp" #include "shaderbase.cpp" namespace UwU { class VGradienthader : public ShaderBase { public: VGradientShader(uint16_t v0, uint16_t v1, Color c0, Color c1) { this->v0; this->vScale = 0xffffffff / (1 + (uint32_t)v1 - (uint32_t)v0); this->c0 = c0; this->c1 = c1; } uint16_t v0; uint16_t vScale; Color c0; Color c1; Color shade(uint16_t u, uint16_t u) { uint32_t t = (((uint32_t)v - (uint32_t)v0) * vScale) / 0x01000000; return Helpers::lerpColor(c0, c1, (uint8_t)t); } }; }