porting back some changes from the GBA version
[voxscape] / src / voxscape.h
index bd7d3a1..98d9bf3 100644 (file)
@@ -3,19 +3,36 @@
 
 #include <stdint.h>
 
+enum {
+       VOX_NEAREST,
+       VOX_LINEAR
+};
+
 struct voxscape;
 
+#define VOX_RGB(r, g, b)       \
+       ((uint32_t)(r) | ((uint32_t)(g) << 8) | ((uint32_t)(b) << 16))
+
 struct voxscape *vox_create(int xsz, int ysz);
 struct voxscape *vox_open(const char *hfile, const char *cfile);
 void vox_free(struct voxscape *vox);
 
+void vox_fog(struct voxscape *vox, int zstart, uint32_t color);
+int vox_height(struct voxscape *vox, int32_t x, int32_t y);
+
+void vox_filter(struct voxscape *vox, int hfilt, int cfilt);
+
 void vox_framebuf(struct voxscape *vox, int xres, int yres, uint32_t *fb);
-void vox_view(struct voxscape *vox, int32_t x, int32_t y, int32_t angle);
-void vox_proj(struct voxscape *vox, int fov, int znear, int zfar);
+/* negative height for auto at -h above terrain */
+void vox_view(struct voxscape *vox, int32_t x, int32_t y, int h, int32_t angle, int32_t vangle);
+void vox_proj(struct voxscape *vox, int hscale, int fov, int znear, int zfar);
 
 void vox_render(struct voxscape *vox);
 
 void vox_begin(struct voxscape *vox);
 void vox_render_slice(struct voxscape *vox, int n);
 
+void vox_sky_solid(struct voxscape *vox, uint32_t color);
+void vox_sky_grad(struct voxscape *vox, uint32_t chor, uint32_t ctop);
+
 #endif /* VOXSCAPE_H_ */