diff --git a/Makefile b/Makefile index de58a3d..5534f62 100644 --- a/Makefile +++ b/Makefile @@ -12,13 +12,13 @@ LIB_OBJ := $(LIB_SRC:.c=.o) .PHONY: all clean -all: libwaymini.a draw waymini +all: libwaymini.a example waymini libwaymini.a: $(LIB_OBJ) ar rcs $@ $^ -draw: draw.cpp libwaymini.a - g++ $(CFLAGS) -o $@ draw.cpp -L. -lwaymini $(LDFLAGS) +example: example.cpp libwaymini.a + g++ $(CFLAGS) -o $@ example.cpp -L. -lwaymini $(LDFLAGS) waymini: waymini_standalone.c waymini.c xdg-shell-client-protocol.c $(CC) $(CFLAGS) -o $@ waymini_standalone.c waymini.c xdg-shell-client-protocol.c $(LDFLAGS) @@ -27,7 +27,7 @@ waymini: waymini_standalone.c waymini.c xdg-shell-client-protocol.c $(CC) $(CFLAGS) -c -o $@ $< clean: - rm -f $(LIB_OBJ) libwaymini.a test waymini + rm -f $(LIB_OBJ) libwaymini.a example waymini xdg-shell-client-protocol.c xdg-shell-client-protocol.h: gen-protocols.sh bash gen-protocols.sh diff --git a/draw b/draw index cf98c58..0e3e945 100755 Binary files a/draw and b/draw differ diff --git a/draw.cpp b/draw.cpp index 96568e8..bcfc3d4 100644 --- a/draw.cpp +++ b/draw.cpp @@ -2,6 +2,8 @@ * No external dependencies beyond waymini itself and the C standard library. */ +#pragma once + #include "waymini.h" #include @@ -16,15 +18,15 @@ #include "surface.cpp" // this should be handled elsewhere, eventually, maybe, probably -static void onKey(void *user, uint32_t keycode, uint32_t state) { - if (keycode == 1) { - exit(1); - } - (void)user; - const char *label = state ? "down" : "up "; - printf("key %s: %u\n", label, keycode); - fflush(stdout); -} +// static void onKey(void *user, uint32_t keycode, uint32_t state) { +// if (keycode == 1) { +// exit(1); +// } +// (void)user; +// const char *label = state ? "down" : "up "; +// printf("key %s: %u\n", label, keycode); +// fflush(stdout); +// } namespace UwU { @@ -273,41 +275,41 @@ namespace UwU { }; } -int main(void) { - uint32_t w = 800, h = 480; - UwU::Color fuchsia = UwU::Color(0xb00b6940); - UwU::Color red = UwU::Color(0xff0000ff); - UwU::Color green = UwU::Color(0x00ff00ff); - UwU::Color blue = UwU::Color(0x0000ffff); - UwU::Color alpha = UwU::Color(0x00000000); - printf("r: %u, g:%u, b:%u, a:%u\n", fuchsia.r, fuchsia.g, fuchsia.b, fuchsia.a); +// int main(void) { +// uint32_t w = 800, h = 480; +// UwU::Color fuchsia = UwU::Color(0xb00b6940); +// UwU::Color red = UwU::Color(0xff0000ff); +// UwU::Color green = UwU::Color(0x00ff00ff); +// UwU::Color blue = UwU::Color(0x0000ffff); +// UwU::Color alpha = UwU::Color(0x00000000); +// printf("r: %u, g:%u, b:%u, a:%u\n", fuchsia.r, fuchsia.g, fuchsia.b, fuchsia.a); - // struct waymini *wm = waymini_create(w, h, on_key, NULL); - UwU::Draw draw = UwU::Draw(w, h, onKey); +// // struct waymini *wm = waymini_create(w, h, on_key, NULL); +// UwU::Draw draw = UwU::Draw(w, h, onKey); - draw.rainbow(); +// draw.rainbow(); - draw.rectangle(UwU::Coord2(69, 69), UwU::Coord2(420, 420), fuchsia); - draw.rectangleGradient(UwU::Coord2(200, 200), UwU::Coord2(600, 400), red, blue, alpha, red); +// draw.rectangle(UwU::Coord2(69, 69), UwU::Coord2(420, 420), fuchsia); +// draw.rectangleGradient(UwU::Coord2(200, 200), UwU::Coord2(600, 400), red, blue, alpha, red); - draw.trapezoid(UwU::Trapezoid(300, 400, 360, 380, 600, 400), green); - draw.triangle(280, 100, 240, 290, 320, 300, green); +// draw.trapezoid(UwU::Trapezoid(300, 400, 360, 380, 600, 480), green); +// draw.triangle(280, 100, 240, 290, 320, 300, green); - draw.point(UwU::Coord2(387, 43), green); - draw.line(UwU::Coord2(300, 100), UwU::Coord2(250, 469), green); - draw.line(UwU::Coord2(250, 100), UwU::Coord2(300, 469), green); - draw.line(UwU::Coord2(300, 100), UwU::Coord2(469, 250), green); - draw.line(UwU::Coord2(469, 100), UwU::Coord2(300, 250), green); - draw.line(UwU::Coord2(100, 300), UwU::Coord2(250, 469), green); - draw.line(UwU::Coord2(250, 300), UwU::Coord2(100, 469), green); - draw.line(UwU::Coord2(100, 300), UwU::Coord2(469, 250), green); - draw.line(UwU::Coord2(469, 300), UwU::Coord2(100, 250), green); - draw.present(); +// draw.point(UwU::Coord2(387, 43), green); +// draw.line(UwU::Coord2(300, 100), UwU::Coord2(250, 469), green); +// draw.line(UwU::Coord2(250, 100), UwU::Coord2(300, 469), green); +// draw.line(UwU::Coord2(300, 100), UwU::Coord2(469, 250), green); +// draw.line(UwU::Coord2(469, 100), UwU::Coord2(300, 250), green); +// draw.line(UwU::Coord2(100, 300), UwU::Coord2(250, 469), green); +// draw.line(UwU::Coord2(250, 300), UwU::Coord2(100, 469), green); +// draw.line(UwU::Coord2(100, 300), UwU::Coord2(469, 250), green); +// draw.line(UwU::Coord2(469, 300), UwU::Coord2(100, 250), green); +// draw.present(); - while (!draw.shouldClose()) {} +// while (!draw.shouldClose()) {} - draw.destroy(); - return 0; -} +// draw.destroy(); +// return 0; +// } diff --git a/example b/example index a2fad60..69e09e8 100755 Binary files a/example and b/example differ diff --git a/example.cpp b/example.cpp new file mode 100644 index 0000000..806a9fc --- /dev/null +++ b/example.cpp @@ -0,0 +1,63 @@ +// #pragma once + +// #include "waymini.h" + +#include +#include +#include +#include + +#include "datatypes.cpp" +#include "draw.cpp" +// #include "triangle.cpp" +// #include "buffer.cpp" +// #include "surface.cpp" + +static void onKey(void *user, uint32_t keycode, uint32_t state) { + if (keycode == 1) { + exit(1); + } + (void)user; + const char *label = state ? "down" : "up "; + printf("key %s: %u\n", label, keycode); + fflush(stdout); +} + +int main(void) { + uint32_t w = 800, h = 480; + UwU::Color fuchsia = UwU::Color(0xb00b6940); + UwU::Color red = UwU::Color(0xff0000ff); + UwU::Color green = UwU::Color(0x00ff00ff); + UwU::Color blue = UwU::Color(0x0000ffff); + UwU::Color alpha = UwU::Color(0x00000000); + printf("r: %u, g:%u, b:%u, a:%u\n", fuchsia.r, fuchsia.g, fuchsia.b, fuchsia.a); + + // struct waymini *wm = waymini_create(w, h, on_key, NULL); + UwU::Draw draw = UwU::Draw(w, h, onKey); + + draw.rainbow(); + + + draw.rectangle(UwU::Coord2(69, 69), UwU::Coord2(420, 420), fuchsia); + draw.rectangleGradient(UwU::Coord2(200, 200), UwU::Coord2(600, 400), red, blue, alpha, red); + + draw.trapezoid(UwU::Trapezoid(300, 400, 360, 380, 600, 480), green); + draw.triangle(280, 100, 240, 290, 320, 300, green); + + + draw.point(UwU::Coord2(387, 43), green); + draw.line(UwU::Coord2(300, 100), UwU::Coord2(250, 469), green); + draw.line(UwU::Coord2(250, 100), UwU::Coord2(300, 469), green); + draw.line(UwU::Coord2(300, 100), UwU::Coord2(469, 250), green); + draw.line(UwU::Coord2(469, 100), UwU::Coord2(300, 250), green); + draw.line(UwU::Coord2(100, 300), UwU::Coord2(250, 469), green); + draw.line(UwU::Coord2(250, 300), UwU::Coord2(100, 469), green); + draw.line(UwU::Coord2(100, 300), UwU::Coord2(469, 250), green); + draw.line(UwU::Coord2(469, 300), UwU::Coord2(100, 250), green); + draw.present(); + + while (!draw.shouldClose()) {} + + draw.destroy(); + return 0; +} diff --git a/libwaymini.a b/libwaymini.a index a5a964a..131cff3 100644 Binary files a/libwaymini.a and b/libwaymini.a differ diff --git a/waymini b/waymini index 351bb7a..84264c4 100755 Binary files a/waymini and b/waymini differ diff --git a/waymini.o b/waymini.o index d469f0a..52701a6 100644 Binary files a/waymini.o and b/waymini.o differ diff --git a/xdg-shell-client-protocol.o b/xdg-shell-client-protocol.o index 3d321b7..c672324 100644 Binary files a/xdg-shell-client-protocol.o and b/xdg-shell-client-protocol.o differ