COMMAND_IMPL(display) {
(void)arg_count, (void)arg_vector;
- static DPIX *pixbuf = NULL;
+ static DCPU16_DISPLAY *display = NULL;
- if (pixbuf) {
+ if (display) {
printf("display already enabled..\n");
return 0;
}
- pixbuf = display_init_pixbuf();
- if (pixbuf == NULL) {
+ display = display_new("dcpu16-display.pnm");
+ if (display == NULL) {
fprintf(stderr, "failed to initialize display buffer\n");
return 0;
}
- if (dcpu16_acct_add(vm, DCPU16_ACCT_EV_WRITE, display_fn, pixbuf)) {
+ if (dcpu16_acct_add(vm, DCPU16_ACCT_EV_WRITE, display_fn, display)) {
fprintf(stderr, "failed to register display update callback\n");
return 0;
}
- if (dcpu16_acct_add(vm, DCPU16_ACCT_EV_RESET, display_reset_fn, pixbuf)) {
+ if (dcpu16_acct_add(vm, DCPU16_ACCT_EV_RESET, display_reset_fn, display)) {
fprintf(stderr, "failed to register display reset callback\n");
return 0;
}
/* init display as if reset occurred */
- display_reset_fn(vm, DCPU16_ACCT_EV_RESET, 0, pixbuf);
+ display_reset_fn(vm, DCPU16_ACCT_EV_RESET, 0, display);
return 0;
}