--- /dev/null
+/* dfb functions
+ *
+ * author: hackbard@hackdaworld.dyndns.org
+ *
+ */
+
+#include <stdio.h>
+#include <directfb.h>
+#include "ivac.h"
+
+int dfb_init(int arg_c,char **arg_v,struct ivac *ivac) {
+ DFBSurfaceDescription surface_dsc;
+ DFBFontDescription font_dsc;
+
+ DirectFBInit(&arg_c,&arg_v);
+ DirectFBCreate(&(ivac->dfb_stuff.dfb));
+ ivac->dfb_stuff.dfb->SetCooperativeLevel(ivac->dfb_stuff.dfb,DFSCL_FULLSCREEN);
+
+ surface_dsc.flags=DSDESC_CAPS;
+ surface_dsc.caps=DSCAPS_PRIMARY|DSCAPS_FLIPPING;
+ ivac->dfb_stuff.dfb->CreateSurface(ivac->dfb_stuff.dfb,&surface_dsc,&(ivac->dfb_stuff.p_surface));
+ ivac->dfb_stuff.p_surface->GetSize(ivac->dfb_stuff.p_surface,&(ivac->dfb_stuff.s_width),&(ivac->dfb_stuff.s_height));
+
+ font_dsc.flags=DFDESC_HEIGHT;
+ font_dsc.height=ivac->dfb_stuff.s_height/20;
+ ivac->dfb_stuff.dfb->CreateVideoProvider(ivac->dfb_stuff.dfb,ivac->video_dev,&(ivac->dfb_stuff.v_provider));
+
+ return 1;
+}
+
+int dfb_tini(struct ivac *ivac) {
+ ivac->dfb_stuff.v_provider->Release(ivac->dfb_stuff.v_provider);
+ ivac->dfb_stuff.p_surface->Release(ivac->dfb_stuff.p_surface);
+ ivac->dfb_stuff.dfb->Release(ivac->dfb_stuff.dfb);
+
+ return 1;
+}
+