moved over the polyfiller code and implemented blending
[bootcensus] / src / census / census.c
diff --git a/src/census/census.c b/src/census/census.c
new file mode 100644 (file)
index 0000000..1755133
--- /dev/null
@@ -0,0 +1,43 @@
+#include <stdlib.h>
+#include <string.h>
+#include "census.h"
+#include "3dgfx.h"
+#include "panic.h"
+
+void init_census(void *pixels, int xsz, int ysz)
+{
+       fb_pixels = pixels;
+       fb_width = xsz;
+       fb_height = ysz;
+
+       g3d_init();
+       g3d_framebuffer(xsz, ysz, fb_pixels);
+       g3d_polygon_mode(G3D_FLAT);
+       g3d_viewport(0, 0, xsz, ysz);
+}
+
+void draw_census(void)
+{
+       int i;
+       memset(fb_pixels, 0, fb_width * fb_height * 4);
+
+       g3d_matrix_mode(G3D_MODELVIEW);
+       g3d_load_identity();
+
+       g3d_enable(G3D_BLEND);
+
+       g3d_color4b(64, 128, 255, 255);
+       for(i=0; i<2; i++) {
+               g3d_begin(G3D_QUADS);
+               g3d_vertex(-0.4, -0.5, 0);
+               g3d_vertex(0.6, -0.2, 0);
+               g3d_vertex(0, 0.8, 0);
+               g3d_vertex(-0.5, 0.6, 0);
+               g3d_end();
+
+               g3d_translate(0.2, -0.2, 0);
+               g3d_color4b(255, 32, 255, 128);
+       }
+
+       g3d_disable(G3D_BLEND);
+}