Index: trunk/Ohana/src/libkapa/include/kapa.h
===================================================================
--- trunk/Ohana/src/libkapa/include/kapa.h	(revision 29537)
+++ trunk/Ohana/src/libkapa/include/kapa.h	(revision 29938)
@@ -115,6 +115,15 @@
 
 typedef struct {
-  int Nx, Ny;
+  int Nx, Ny, Nbyte;
   bDrawColor **pixels;
+  png_color *palette;
+  int Npalette;
+  // current drawing values:
+  int bWeight;
+  int bType;
+  bDrawColor bColor;
+  bDrawColor bColor_R;
+  bDrawColor bColor_G;
+  bDrawColor bColor_B;
 } bDrawBuffer;
 
@@ -165,4 +174,5 @@
 /* KapaWindow.c */
 int KiiResize (int fd, int Nx, int Ny);
+int KiiResizeByImage (int fd);
 int KiiRelocate (int fd, int x, int y);
 int KiiCenter (int fd, double x, double y, int zoom);
@@ -182,4 +192,5 @@
 int KapaGetLimits (int fd, float *dx, float *dy);
 int KapaSetSection (int fd, KapaSection *section);
+int KapaSetSectionByImage (int fd, KapaSection *section);
 int KapaSelectSection (int fd, char *name);
 int KapaGetSection (int fd, char *name);
@@ -221,29 +232,29 @@
 
 /* bDrawFuncs.c */
-bDrawBuffer *bDrawBufferCreate (int Nx, int Ny);
+bDrawBuffer *bDrawBufferCreate (int Nx, int Ny, int Nbyte, png_color *palette, int Npalette);
 void bDrawBufferFree (bDrawBuffer *buffer);
 void bDrawSetBuffer (bDrawBuffer *buffer);
-void bDrawSetStyle (bDrawColor color, int lw, int lt);
-void bDrawPoint (int x, int y);
-void bDrawPointf (float x, float y);
-
-void bDrawArc (double Xc, double Yc, double Xr, double Yr, double Ts, double Te);
-void bDrawCircle (double Xc, double Yc, double radius);
-void bDrawCircleFill (double xc, double yc, double radius);
-
-void bDrawLine (double x1, double y1, double x2, double y2);
-void bDrawLineWeight (int X1, int Y1, int X2, int Y2, int swapcoords);
-void bDrawLineBresen (int X1, int Y1, int X2, int Y2, int swapcoords);
-void bDrawLineHorizontal (int X1, int X2, int Y);
-void bDrawLineVertical (int X, int Y1, int Y2);
-
-void bDrawRectOpen (double x1, double y1, double x2, double y2);
-void bDrawRectFill (double x1, double y1, double x2, double y2);
-void bDrawTriOpen (double x1, double y1, double x2, double y2, double x3, double y3);
-void bDrawTriFill (double x1, double y1, double x2, double y2, double x3, double y3);
+void bDrawSetStyle (bDrawBuffer *buffer, bDrawColor color, int lw, int lt);
+void bDrawPoint (bDrawBuffer *buffer, int x, int y);
+void bDrawPointf (bDrawBuffer *buffer, float x, float y);
+
+void bDrawArc (bDrawBuffer *buffer, double Xc, double Yc, double Xr, double Yr, double Ts, double Te);
+void bDrawCircle (bDrawBuffer *buffer, double Xc, double Yc, double radius);
+void bDrawCircleFill (bDrawBuffer *buffer, double xc, double yc, double radius);
+
+void bDrawLine (bDrawBuffer *buffer, double x1, double y1, double x2, double y2);
+void bDrawLineWeight (bDrawBuffer *buffer, int X1, int Y1, int X2, int Y2, int swapcoords);
+void bDrawLineBresen (bDrawBuffer *buffer, int X1, int Y1, int X2, int Y2, int swapcoords);
+void bDrawLineHorizontal (bDrawBuffer *buffer, int X1, int X2, int Y);
+void bDrawLineVertical (bDrawBuffer *buffer, int X, int Y1, int Y2);
+
+void bDrawRectOpen (bDrawBuffer *buffer, double x1, double y1, double x2, double y2);
+void bDrawRectFill (bDrawBuffer *buffer, double x1, double y1, double x2, double y2);
+void bDrawTriOpen  (bDrawBuffer *buffer, double x1, double y1, double x2, double y2, double x3, double y3);
+void bDrawTriFill  (bDrawBuffer *buffer, double x1, double y1, double x2, double y2, double x3, double y3);
 
 /* bDrawRotFont.c */
-int bDrawRotText (int x, int y, char *string, int pos, double angle);
-int bDrawRotBitmap (int x, int y, int dx, int dy, unsigned char *bitmap, int mode, double angle, double scale);
+int bDrawRotText (bDrawBuffer *buffer, int x, int y, char *string, int pos, double angle);
+int bDrawRotBitmap (bDrawBuffer *buffer, int x, int y, int dx, int dy, unsigned char *bitmap, int mode, double angle, double scale);
 
 /* Kapa Socket functions */
