}
quad :: (use ir: ^Immediate_Renderer, position: Vector2, size: Vector2, color: Color4 = .{1,1,1,1}) {
- immediate_renderer->push_vertex(.{ position.x, position.y }, color);
- immediate_renderer->push_vertex(.{ position.x + size.x, position.y });
- immediate_renderer->push_vertex(.{ position.x + size.x, position.y + size.y });
+ push_vertex(ir, .{ position.x, position.y }, color);
+ push_vertex(ir, .{ position.x + size.x, position.y });
+ push_vertex(ir, .{ position.x + size.x, position.y + size.y });
- immediate_renderer->push_vertex(.{ position.x, position.y });
- immediate_renderer->push_vertex(.{ position.x + size.x, position.y + size.y });
- immediate_renderer->push_vertex(.{ position.x, position.y + size.y });
+ push_vertex(ir, .{ position.x, position.y });
+ push_vertex(ir, .{ position.x + size.x, position.y + size.y });
+ push_vertex(ir, .{ position.x, position.y + size.y });
}
}
Immediate_Renderer.init(^immediate_renderer);
}
+// This is probably useless, since this will probably be initialized for the duration
+// of the webpage being open.
+immediate_renderer_free :: () {
+ Immediate_Renderer.free(^immediate_renderer);
+}
+
immediate_vertex :: proc {
(position: Vector2) { immediate_renderer->push_vertex(position); },
(position: Vector2, color: Color4) { immediate_renderer->push_vertex(position, color); },
y := math.sin(t);
immediate_vertex(.{ 0, 0 }, color=.{ 1, 1, 1, 1 });
- immediate_vertex(.{ x, -y });
- immediate_vertex(.{ y, x });
+ immediate_vertex(.{ x, y });
+ immediate_vertex(.{ -y, x });
if cast(u32) t % 2 == 0 {
immediate_vertex(.{ 0, 0 }, color=.{ 1, 0, 0, 1 });
immediate_vertex(.{ 0, -1.0f }, color=.{ 0, 0, 1, 1 });
}
- immediate_quad(.{ 0, 0 }, .{ .1, .1 }, .{ 1, 0, 1, 1 });
+ immediate_quad(.{0, 0}, .{.1, .1}, .{1, 0, 1, 1});
}
loop :: () -> void #export {