[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Graphical install disks Ben Pfaff is doing



Hartmut Koptein <koptein@et-inf.fho-emden.de> writes:

   > I suppose we need a framebuffer version of cfdisk. Now that WOULD be a fun
   > thing to have.

   Yeah! And much more!  The ggilib is the user-interface. Someone should test 
   if it will work with all svgalib binaries. After that we can remove svgalib
   and then we have much less problems on porting! I think zgv is a good 
   starting point -- not for the boot-floppies but in generell. 

I'm not putting ggilib on my bootdisks, I'm writing a very tiny
graphics library of my own.  Current, or perhaps slightly old (the
machine that has the latest version isn't on now), header shown below:

/* BOGL - Ben's Own Graphics Library.
   Written by Ben Pfaff <pfaffben@debian.org>.

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.
   
   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
   USA. */

#ifndef bogl_h
#define bogl_h

/* Proportional font structure definition. */
struct bogl_font
  {
    int height;				/* Height in pixels. */
    unsigned long *content;		/* 32-bit right-padded bitmap array. */
    short *offset;			/* 256 offsets into content. */
    short *width;			/* 256 character widths. */
  };

/* Pixmap structure definition. */
struct bogl_pixmap
  {
    int width, height;			/* Width, height in pixels. */
    int ncols;				/* Number of colors. */
    int transparent;			/* Transparent color or -1 if none. */
    unsigned char (*palette)[3];		/* Palette. */
    unsigned char *data;		/* Run-length compressed data. */
  };

/* Standard fonts - use bdftobogl to make more. */
extern const struct bogl_font bogl_helv08;
extern const struct bogl_font bogl_helv10;
extern const struct bogl_font bogl_helv14;
extern const struct bogl_font bogl_times08;
extern const struct bogl_font bogl_times10;
extern const struct bogl_font bogl_times12;

/* Screen parameters. */
int bogl_xres, bogl_yres, bogl_ncols;

/* Generic routines. */
int bogl_init (void);
int bogl_metrics (char *s, int *cy, const struct bogl_font *font);

/* Device-specific routines. */
void (*bogl_hline) (int x1, int x2, int y, int c);
void (*bogl_vline) (int x, int y1, int y2, int c);
void (*bogl_text) (int x, int y, char *s, int fg, int bg,
		   const struct bogl_font *font);
void (*bogl_clear) (int x1, int y1, int x2, int y2, int c);
void (*bogl_move) (int sx, int sy, int dx, int dy, int w, int h);
void (*bogl_put) (int x, int y, struct bogl_pixmap *pixmap, int ofs);
void (*bogl_setpalette) (int c, int nc, unsigned char (*palette)[3]);

#endif /* bogl_h */


Reply to: