aboutsummaryrefslogtreecommitdiff
path: root/client/main.ha
diff options
context:
space:
mode:
Diffstat (limited to 'client/main.ha')
-rw-r--r--client/main.ha20
1 files changed, 12 insertions, 8 deletions
diff --git a/client/main.ha b/client/main.ha
index 081c422..30a8341 100644
--- a/client/main.ha
+++ b/client/main.ha
@@ -47,9 +47,11 @@ export fn main() void = {
};
const pollfd: [1]poll::pollfd = [ poll::pollfd {
- fd = conn, events=poll::event::POLLIN, revents = 0
+ fd = conn,
+ events=poll::event::POLLIN | poll::event::POLLOUT,
+ ...
}];
- const packet_reader = packet_reader::new();
+ const packet_reader = packet_reader::new(conn);
// paintui state
let pstate = paintui::state { size_idx = 4, ... };
@@ -64,7 +66,7 @@ export fn main() void = {
let mouse_down = false;
- process_chunk_loadedness(&pmgr, conn, camera_pos);
+ process_chunk_loadedness(&pmgr, &packet_reader, camera_pos);
const win_pic = picture_from_surface(wsurf, (9,9));
for (!quit) {
@@ -108,18 +110,20 @@ export fn main() void = {
case void => yield;
case let op: drawing::op =>
perform_drawop(&pmgr, op);
- packet_reader::send(conn, op: packet_reader::packet_drawop)!;
+ packet_reader::write(&packet_reader, op: packet_reader::packet_drawop)!;
};
if (did_move) {
- packet_reader::send(conn, camera_pos: packet_reader::packet_position)!;
- process_chunk_loadedness(&pmgr, conn, camera_pos);
+ packet_reader::write(&packet_reader, camera_pos: packet_reader::packet_position)!;
+ process_chunk_loadedness(&pmgr, &packet_reader, camera_pos);
};
const n = poll::poll(pollfd, poll::NONBLOCK)!;
if (n > 0) {
- packet_reader::read(&packet_reader, conn)!;
- for (true) match (packet_reader::next(&packet_reader)) {
+ const should_read = 0 != pollfd[0].revents & poll::event::POLLIN;
+ const should_write = 0 != pollfd[0].revents & poll::event::POLLOUT;
+ packet_reader::service(&packet_reader, should_read, should_write)!;
+ for (true) match (packet_reader::read_next(&packet_reader)) {
case done => break;
case let e: packet_reader::error =>
fmt::fatalf("death: packet_reader: {}", e);