implemented shaders, gradients, and uv mapping

This commit is contained in:
2026-07-07 12:17:32 -07:00
parent 989cb196ed
commit ad2e84c279
10 changed files with 149 additions and 27 deletions
+8 -3
View File
@@ -18,6 +18,9 @@
#include "primatives/triangle.cpp"
// #include "draw.cpp"
#include "shaders/shader.cpp"
#include "shaders/colorshader.cpp"
#include "shaders/gradientshader.cpp"
#include "mapper.cpp"
static void onKey(void *user, uint32_t keycode, uint32_t state) {
if (keycode == 1) {
@@ -31,18 +34,20 @@ static void onKey(void *user, uint32_t keycode, uint32_t state) {
int main(void) {
uint16_t w = 800, h = 480;
UwU::Shader fuchsia = UwU::Shader();
UwU::GradientShader fuchsia = UwU::GradientShader(UwU::Color(0xb00b69ff), UwU::Color(0xb00b6940));
int32_t rectScale = (255 * 65536) / 351;
UwU::Mapper rectMapper = UwU::Mapper(UwU::Vec2(-69, 0), UwU::Vec2(69, 0), UwU::Matrix4(rectScale, 0, 0, 1));
UwU::Color red = UwU::Color(0xff000080);
UwU::Color green = UwU::Color(0x00ff00ff);
UwU::Color blue = UwU::Color(0x0000ff80);
UwU::Color alpha = UwU::Color(0x00000000);
// UwU::Color alpha = UwU::Color(0x00000000);
UwU::Surface surface = UwU::Surface(w, h, onKey);
// draw.rainbow();
UwU::Rectangle rectangle = UwU::Rectangle(69, 69, 420, 420);
rectangle.draw(surface.buffer, fuchsia);
rectangle.draw(surface.buffer, rectMapper, fuchsia);
// draw.rectangleGradient(UwU::Coord2(200, 200), UwU::Coord2(600, 400), red, blue, alpha, red);