brute forced text support, fixed an off-by one, lots to fix

This commit is contained in:
2026-07-08 19:44:37 -07:00
parent ee0d43dd75
commit bb30e2df0b
6 changed files with 106 additions and 17 deletions
+9 -9
View File
@@ -27,8 +27,8 @@ namespace UwU {
void draw (Buffer buffer, Shader shader) {
if (x0 > buffer.width || y0 > buffer.height || x1 > buffer.width || y1 > buffer.height) {return;};
if (shader.shaderType == COLOR) {
for (uint16_t y = y0; y < y1; y++) {
for (uint16_t x = x0; x < x1; x++) {
for (uint16_t y = y0; y <= y1; y++) {
for (uint16_t x = x0; x <= x1; x++) {
buffer.drawPixel(x, y, shader.c0);
}
}
@@ -38,29 +38,29 @@ namespace UwU {
// Precompute gradient LUT
Color cols[x1 - x0];
for (uint16_t x = x0; x < x1; x++) {
for (uint16_t x = x0; x <= x1; x++) {
cols[x - x0] = ShaderMethods::gradient(shader.u0, shader.scale, shader.c0, shader.c1, x);
}
for (uint16_t y = y0; y < y1; y++) {
for (uint16_t x = x0; x < x1; x++) {
for (uint16_t y = y0; y <= y1; y++) {
for (uint16_t x = x0; x <= x1; x++) {
buffer.drawPixel(x, y, cols[x - x0]);
}
}
return;
} else if (shader.shaderType == VGRADIENT) {
for (uint16_t y = y0; y < y1; y++) {
for (uint16_t y = y0; y <= y1; y++) {
Color c = ShaderMethods::gradient(shader.v0, shader.scale, shader.c0, shader.c1, y);
for (uint16_t x = x0; x < x1; x++) {
for (uint16_t x = x0; x <= x1; x++) {
buffer.drawPixel(x, y, c);
}
}
return;
} else if (shader.shaderType == BUFFER) {
for (uint16_t y = y0; y < y1; y++) {
for (uint16_t x = x0; x < x1; x++) {
for (uint16_t y = y0; y <= y1; y++) {
for (uint16_t x = x0; x <= x1; x++) {
buffer.drawPixel(x, y, ShaderMethods::buffer(shader.u0, shader.v0, shader.buffer, x, y));
}
}