unsigned int fb[FB_W * FB_H];
int mouse_x, mouse_y, mwarp, mbstate[3];
+int hfilt = VOX_LINEAR, cfilt = VOX_LINEAR;
unsigned int input;
int32_t pos[2], angle;
struct voxscape *vox;
+#define COLOR_HORIZON 0xcc77ff
+#define COLOR_ZENITH 0x5588cc
+
int main(int argc, char **argv)
{
if(!(vox = vox_open("data/height.png", "data/color.png"))) {
return -1;
}
- vox_framebuf(vox, FB_W, FB_H, fb);
+ vox_framebuf(vox, FB_W, FB_H, fb, -1);
vox_proj(vox, 45, 1, 300);
+ vox_fog(vox, 260, COLOR_HORIZON);
+ vox_filter(vox, hfilt, cfilt);
glfb_setup(FB_W, FB_H, GLFB_RGBA32, FB_W * 4);
return 0;
memset(fb, 0, sizeof fb);
vox_render(vox);
- vox_sky_grad(vox, 0xcc77ff, 0x5588cc);
+ vox_sky_grad(vox, COLOR_HORIZON, COLOR_ZENITH);
glfb_update(fb);
glfb_display();
input |= INP_RTURN;
break;
+ case 'h':
+ hfilt ^= 1;
+ printf("filtering: height(%s) color(%s)\n", hfilt ? "linear" : "nearest",
+ cfilt ? "linear" : "nearest");
+ vox_filter(vox, hfilt, cfilt);
+ break;
+
+ case 'c':
+ cfilt ^= 1;
+ vox_filter(vox, hfilt, cfilt);
+ printf("filtering: height(%s) color(%s)\n", hfilt ? "linear" : "nearest",
+ cfilt ? "linear" : "nearest");
+ break;
+
default:
break;
}