mirror of
https://github.com/netfun2000/lcd4linux.git
synced 2026-02-27 09:44:34 +08:00
[lcd4linux @ 2000-03-24 11:36:56 by reinelt]
new syntax for raster configuration changed XRES and YRES to be configurable PPM driver works nice git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@18 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $Id: Raster.c,v 1.1 2000/03/23 07:24:48 reinelt Exp $
|
||||
/* $Id: Raster.c,v 1.2 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* driver for raster formats
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: Raster.c,v $
|
||||
* Revision 1.2 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.1 2000/03/23 07:24:48 reinelt
|
||||
*
|
||||
* PPM driver up and running (but slow!)
|
||||
@@ -36,6 +42,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cfg.h"
|
||||
#include "display.h"
|
||||
@@ -45,53 +52,62 @@
|
||||
|
||||
static DISPLAY Display;
|
||||
|
||||
static int pixelsize=-1;
|
||||
static int pixelgap=0;
|
||||
static int rowgap=0;
|
||||
static int colgap=0;
|
||||
static int pixel=-1;
|
||||
static int pgap=0;
|
||||
static int rgap=0;
|
||||
static int cgap=0;
|
||||
static int border=0;
|
||||
|
||||
static int foreground=0;
|
||||
static int halfground=0;
|
||||
static int background=0;
|
||||
|
||||
#define R(color) (0xff&((color)>>16))
|
||||
#define G(color) (0xff&((color)>>8))
|
||||
#define B(color) (0xff&((color)))
|
||||
|
||||
int Raster_flush (void)
|
||||
{
|
||||
int xsize, ysize;
|
||||
int x, y, pos;
|
||||
int xsize, ysize, row, col;
|
||||
unsigned char *buffer;
|
||||
unsigned char R[3], G[3], B[3];
|
||||
|
||||
xsize=2*border+Display.cols*Display.xres*(pixelsize+pixelgap);
|
||||
ysize=2*border+Display.rows*Display.yres*(pixelsize+pixelgap);
|
||||
xsize=2*border+(Display.cols-1)*cgap+Display.cols*Display.xres*(pixel+pgap);
|
||||
ysize=2*border+(Display.rows-1)*rgap+Display.rows*Display.yres*(pixel+pgap);
|
||||
|
||||
printf ("P3\n");
|
||||
printf ("%d %d\n", xsize, ysize);
|
||||
printf ("255\n");
|
||||
if ((buffer=malloc(xsize*ysize*sizeof(*buffer)))==NULL)
|
||||
return -1;
|
||||
|
||||
pos=0;
|
||||
memset (buffer, 0, xsize*ysize*sizeof(*buffer));
|
||||
|
||||
for (y=0; y<ysize; y++) {
|
||||
for (x=0; x<xsize; x++) {
|
||||
if (x<border || x>=xsize-border ||
|
||||
y<border || y>=ysize-border ||
|
||||
(y-border)%(pixelsize+pixelgap)>=pixelsize ||
|
||||
(x-border)%(pixelsize+pixelgap)>=pixelsize) {
|
||||
pos+=printf ("%d %d %d ", R(background), G(background), B(background));
|
||||
} else {
|
||||
if (Pixmap[((y-border)/(pixelsize+pixelgap))*Display.cols*Display.xres+(x-border)/(pixelsize+pixelgap)])
|
||||
pos+=printf ("%d %d %d ", R(foreground), G(foreground), B(foreground));
|
||||
else
|
||||
pos+=printf ("%d %d %d ", R(halfground), G(halfground), B(halfground));
|
||||
}
|
||||
if (pos>80) {
|
||||
pos=0;
|
||||
printf ("\n");
|
||||
}
|
||||
for (row=0; row<Display.rows*Display.yres; row++) {
|
||||
int y=border+(row/Display.yres)*rgap+row*(pixel+pgap);
|
||||
for (col=0; col<Display.cols*Display.xres; col++) {
|
||||
int x=border+(col/Display.xres)*cgap+col*(pixel+pgap);
|
||||
int a, b;
|
||||
for (a=0; a<pixel; a++)
|
||||
for (b=0; b<pixel; b++)
|
||||
buffer[y*xsize+x+a*xsize+b]=Pixmap[row*Display.cols*Display.xres+col]+1;
|
||||
}
|
||||
}
|
||||
|
||||
printf ("P6\n%d %d\n255\n", xsize, ysize);
|
||||
|
||||
R[0]=0xff&background>>16;
|
||||
G[0]=0xff&background>>8;
|
||||
B[0]=0xff&background;
|
||||
|
||||
R[1]=0xff&halfground>>16;
|
||||
G[1]=0xff&halfground>>8;
|
||||
B[1]=0xff&halfground;
|
||||
|
||||
R[2]=0xff&foreground>>16;
|
||||
G[2]=0xff&foreground>>8;
|
||||
B[2]=0xff&foreground;
|
||||
|
||||
for (row=0; row<ysize; row++) {
|
||||
for (col=0; col<xsize; col++) {
|
||||
int i=buffer[row*xsize+col];
|
||||
printf("%c%c%c", R[i], G[i], B[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -105,39 +121,45 @@ int Raster_clear (void)
|
||||
|
||||
int Raster_init (DISPLAY *Self)
|
||||
{
|
||||
int rows=-1;
|
||||
int cols=-1;
|
||||
char *s;
|
||||
int rows=-1, cols=-1;
|
||||
int xres=1, yres=-1;
|
||||
|
||||
if (sscanf(s=cfg_get("size")?:"20x4", "%dx%d", &cols, &rows)!=2 || rows<1 || cols<1) {
|
||||
fprintf (stderr, "Raster: bad size '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
rows=atoi(cfg_get("rows")?:"4");
|
||||
cols=atoi(cfg_get("columns")?:"20");
|
||||
if (sscanf(s=cfg_get("font")?:"5x8", "%dx%d", &xres, &yres)!=2 || xres<5 || yres<7) {
|
||||
fprintf (stderr, "Raster: bad font '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sscanf(s=cfg_get("pixel")?:"4+1", "%d+%d", &pixel, &pgap)!=2 || pixel<1 || pgap<0) {
|
||||
fprintf (stderr, "Raster: bad pixel '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sscanf(s=cfg_get("gap")?:"3x3", "%dx%d", &rgap, &cgap)!=2 || rgap<0 || cgap<0) {
|
||||
fprintf (stderr, "Raster: bad gap '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
pixelsize=atoi(cfg_get("pixelsize")?:"1");
|
||||
pixelgap=atoi(cfg_get("pixelgap")?:"0");
|
||||
rowgap=atoi(cfg_get("rowgap")?:"0");
|
||||
colgap=atoi(cfg_get("colgap")?:"0");
|
||||
border=atoi(cfg_get("border")?:"0");
|
||||
|
||||
foreground=strtol(cfg_get("foreground")?:"000000", NULL, 16);
|
||||
halfground=strtol(cfg_get("halfground")?:"ffffff", NULL, 16);
|
||||
background=strtol(cfg_get("background")?:"ffffff", NULL, 16);
|
||||
|
||||
if (rows<1 || cols<1) {
|
||||
fprintf (stderr, "Raster: incorrect number of rows or columns\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pixelsize<1) {
|
||||
fprintf (stderr, "Raster: incorrect pixel size\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pix_init (rows, cols)!=0) {
|
||||
fprintf (stderr, "Raster: pix_init(%d, %d) failed\n", rows, cols);
|
||||
if (pix_init (rows, cols, xres, yres)!=0) {
|
||||
fprintf (stderr, "Raster: pix_init(%d, %d, %d, %d) failed\n", rows, cols, xres, yres);
|
||||
return -1;
|
||||
}
|
||||
|
||||
Self->rows=rows;
|
||||
Self->cols=cols;
|
||||
Self->xres=xres;
|
||||
Self->yres=yres;
|
||||
Display=*Self;
|
||||
|
||||
pix_clear();
|
||||
@@ -156,6 +178,6 @@ int Raster_bar (int type, int row, int col, int max, int len1, int len2)
|
||||
|
||||
|
||||
DISPLAY Raster[] = {
|
||||
{ "PPM", 0, 0, XRES, YRES, BARS, Raster_init, Raster_clear, Raster_put, Raster_bar, Raster_flush },
|
||||
{ "PPM", 0, 0, 0, 0, BARS, Raster_init, Raster_clear, Raster_put, Raster_bar, Raster_flush },
|
||||
{ "" }
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: XWindow.c,v 1.2 2000/03/23 07:24:48 reinelt Exp $
|
||||
/* $Id: XWindow.c,v 1.3 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* driver for X11
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: XWindow.c,v $
|
||||
* Revision 1.3 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.2 2000/03/23 07:24:48 reinelt
|
||||
*
|
||||
* PPM driver up and running (but slow!)
|
||||
@@ -42,6 +48,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cfg.h"
|
||||
#include "display.h"
|
||||
@@ -49,19 +56,62 @@
|
||||
|
||||
#define BARS ( BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 )
|
||||
|
||||
static int pixel=-1;
|
||||
static int pgap=0;
|
||||
static int rgap=0;
|
||||
static int cgap=0;
|
||||
static int border=0;
|
||||
|
||||
static int foreground=0;
|
||||
static int halfground=0;
|
||||
static int background=0;
|
||||
|
||||
static DISPLAY Display;
|
||||
|
||||
int X_flush (void)
|
||||
{
|
||||
int r, c;
|
||||
int xsize, ysize, row, col;
|
||||
unsigned char *buffer;
|
||||
unsigned char R[3], G[3], B[3];
|
||||
|
||||
xsize=2*border+(Display.cols-1)*cgap+Display.cols*Display.xres*(pixel+pgap);
|
||||
ysize=2*border+(Display.rows-1)*rgap+Display.rows*Display.yres*(pixel+pgap);
|
||||
|
||||
if ((buffer=malloc(xsize*ysize*sizeof(*buffer)))==NULL)
|
||||
return -1;
|
||||
|
||||
for (r=0; r<Display.rows*Display.yres; r++) {
|
||||
for (c=0; c<Display.cols*Display.xres; c++) {
|
||||
printf ("%c", Pixmap[r*Display.cols*Display.xres+c] ? '#':'.');
|
||||
memset (buffer, 0, xsize*ysize*sizeof(*buffer));
|
||||
|
||||
for (row=0; row<Display.rows*Display.yres; row++) {
|
||||
int y=border+(row/Display.yres)*rgap+row*(pixel+pgap);
|
||||
for (col=0; col<Display.cols*Display.xres; col++) {
|
||||
int x=border+(col/Display.xres)*cgap+col*(pixel+pgap);
|
||||
int a, b;
|
||||
for (a=0; a<pixel; a++)
|
||||
for (b=0; b<pixel; b++)
|
||||
buffer[y*xsize+x+a*xsize+b]=Pixmap[row*Display.cols*Display.xres+col]+1;
|
||||
}
|
||||
printf ("\n");
|
||||
}
|
||||
printf ("\n");
|
||||
|
||||
R[0]=0xff&background>>16;
|
||||
G[0]=0xff&background>>8;
|
||||
B[0]=0xff&background;
|
||||
|
||||
R[1]=0xff&halfground>>16;
|
||||
G[1]=0xff&halfground>>8;
|
||||
B[1]=0xff&halfground;
|
||||
|
||||
R[2]=0xff&foreground>>16;
|
||||
G[2]=0xff&foreground>>8;
|
||||
B[2]=0xff&foreground;
|
||||
|
||||
for (row=0; row<ysize; row++) {
|
||||
for (col=0; col<xsize; col++) {
|
||||
int i=buffer[row*xsize+col];
|
||||
printf("%d.%d.%d ", R[i], G[i], B[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -78,24 +128,45 @@ int X_clear (void)
|
||||
|
||||
int X_init (DISPLAY *Self)
|
||||
{
|
||||
int rows=-1;
|
||||
int cols=-1;
|
||||
|
||||
rows=atoi(cfg_get("rows")?:"4");
|
||||
cols=atoi(cfg_get("columns")?:"20");
|
||||
|
||||
if (rows<1 || cols<1) {
|
||||
fprintf (stderr, "X11: incorrect number of rows or columns\n");
|
||||
char *s;
|
||||
int rows=-1, cols=-1;
|
||||
int xres=1, yres=-1;
|
||||
|
||||
if (sscanf(s=cfg_get("size")?:"20x4", "%dx%d", &cols, &rows)!=2 || rows<1 || cols<1) {
|
||||
fprintf (stderr, "Raster: bad size '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pix_init (rows, cols)!=0) {
|
||||
fprintf (stderr, "X11: pix_init(%d, %d) failed\n", rows, cols);
|
||||
if (sscanf(s=cfg_get("font")?:"5x8", "%dx%d", &xres, &yres)!=2 || xres<5 || yres<7) {
|
||||
fprintf (stderr, "Raster: bad font '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sscanf(s=cfg_get("pixel")?:"4+1", "%d+%d", &pixel, &pgap)!=2 || pixel<1 || pgap<0) {
|
||||
fprintf (stderr, "Raster: bad pixel '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (sscanf(s=cfg_get("gap")?:"3x3", "%dx%d", &rgap, &cgap)!=2 || rgap<0 || cgap<0) {
|
||||
fprintf (stderr, "Raster: bad gap '%s'\n", s);
|
||||
return -1;
|
||||
}
|
||||
|
||||
border=atoi(cfg_get("border")?:"0");
|
||||
|
||||
foreground=strtol(cfg_get("foreground")?:"000000", NULL, 16);
|
||||
halfground=strtol(cfg_get("halfground")?:"ffffff", NULL, 16);
|
||||
background=strtol(cfg_get("background")?:"ffffff", NULL, 16);
|
||||
|
||||
if (pix_init (rows, cols, xres, yres)!=0) {
|
||||
fprintf (stderr, "Raster: pix_init(%d, %d, %d, %d) failed\n", rows, cols, xres, yres);
|
||||
return -1;
|
||||
}
|
||||
|
||||
Self->rows=rows;
|
||||
Self->cols=cols;
|
||||
Self->xres=xres;
|
||||
Self->yres=yres;
|
||||
Display=*Self;
|
||||
|
||||
pix_clear();
|
||||
@@ -114,6 +185,6 @@ int X_bar (int type, int row, int col, int max, int len1, int len2)
|
||||
|
||||
|
||||
DISPLAY XWindow[] = {
|
||||
{ "X11", 0, 0, XRES, YRES, BARS, X_init, X_clear, X_put, X_bar, X_flush },
|
||||
{ "X11", 0, 0, 0, 0, BARS, X_init, X_clear, X_put, X_bar, X_flush },
|
||||
{ "" }
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: fontmap.c,v 1.1 2000/03/22 15:36:21 reinelt Exp $
|
||||
/* $Id: fontmap.c,v 1.2 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* 5x8 font
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: fontmap.c,v $
|
||||
* Revision 1.2 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.1 2000/03/22 15:36:21 reinelt
|
||||
*
|
||||
* added '-l' switch (list drivers)
|
||||
@@ -649,12 +655,12 @@ unsigned char Fontmap[256][8]={
|
||||
b_O___O,
|
||||
b_O___O,
|
||||
b______ },
|
||||
[0x69] { b______,
|
||||
b___O__,
|
||||
[0x69] { b___O__,
|
||||
b______,
|
||||
b__OO__,
|
||||
b___O__,
|
||||
b___O__,
|
||||
b___O__,
|
||||
b__OOO_,
|
||||
b______ },
|
||||
[0x6a] { b____O_,
|
||||
|
||||
+8
-1
@@ -1,4 +1,4 @@
|
||||
/* $Id: lcd4linux.c,v 1.10 2000/03/23 07:24:48 reinelt Exp $
|
||||
/* $Id: lcd4linux.c,v 1.11 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* LCD4Linux
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: lcd4linux.c,v $
|
||||
* Revision 1.11 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.10 2000/03/23 07:24:48 reinelt
|
||||
*
|
||||
* PPM driver up and running (but slow!)
|
||||
@@ -143,6 +149,7 @@ void main (int argc, char *argv[])
|
||||
lcd_put (2, 1, " (c) 2000 M.Reinelt");
|
||||
lcd_flush();
|
||||
|
||||
// FIXME: just debugging
|
||||
exit (0);
|
||||
|
||||
sleep (3);
|
||||
|
||||
@@ -4,21 +4,17 @@
|
||||
#Contrast 160
|
||||
|
||||
#Display X11
|
||||
#rows 2
|
||||
#columns 20
|
||||
|
||||
DISPLAY PPM
|
||||
rows 4
|
||||
columns 20
|
||||
pixelsize 5
|
||||
pixelgap 1
|
||||
rowgap 1
|
||||
colgap 1
|
||||
size 20x4
|
||||
font 5x8
|
||||
pixel 5+1
|
||||
gap 5x5
|
||||
border 20
|
||||
foreground 102000
|
||||
halfground 70c000
|
||||
background 80d000
|
||||
|
||||
|
||||
#Row1 "*** %o %v ***"
|
||||
#Row2 "%p CPU %r MB RAM"
|
||||
#Row3 "Busy %cu%% $r10cs+cb"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: parser.c,v 1.4 2000/03/19 08:41:28 reinelt Exp $
|
||||
/* $Id: parser.c,v 1.5 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* row definition parser
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: parser.c,v $
|
||||
* Revision 1.5 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.4 2000/03/19 08:41:28 reinelt
|
||||
*
|
||||
* documentation available! README, README.MatrixOrbital, README.Drivers
|
||||
@@ -225,7 +231,7 @@ char *parse (char *string, int supported_bars, int usage[])
|
||||
break;
|
||||
|
||||
default:
|
||||
*p++=*s++;
|
||||
if ((*p++=*s)!='\0') s++;
|
||||
}
|
||||
|
||||
} while (*s);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: pixmap.c,v 1.2 2000/03/23 07:24:48 reinelt Exp $
|
||||
/* $Id: pixmap.c,v 1.3 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* generic pixmap driver
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: pixmap.c,v $
|
||||
* Revision 1.3 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.2 2000/03/23 07:24:48 reinelt
|
||||
*
|
||||
* PPM driver up and running (but slow!)
|
||||
@@ -38,8 +44,8 @@
|
||||
* int pix_clear(void);
|
||||
* clears the pixmap
|
||||
*
|
||||
* int pix_init (int r, int c);
|
||||
* allocates & clear pixmap wit r rows and c columns
|
||||
* int pix_init (int rows, int cols, int XRES, int YRES);
|
||||
* allocates & clears pixmap
|
||||
*
|
||||
* int pix_put (int row, int col, char *text);
|
||||
* draws text into the pixmap
|
||||
@@ -56,33 +62,38 @@
|
||||
#include "pixmap.h"
|
||||
#include "fontmap.h"
|
||||
|
||||
static int rows=0;
|
||||
static int cols=0;
|
||||
static int ROWS=0;
|
||||
static int COLS=0;
|
||||
static int XRES=0;
|
||||
static int YRES=0;
|
||||
|
||||
unsigned char *Pixmap=NULL;
|
||||
|
||||
int pix_clear(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i=0; i<rows*cols; i++) {
|
||||
for (i=0; i<ROWS*COLS; i++) {
|
||||
Pixmap[i]=0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pix_init (int r, int c)
|
||||
int pix_init (int rows, int cols, int xres, int yres)
|
||||
{
|
||||
if (r<1 || c<1)
|
||||
if (rows<1 || cols<1 || xres<1 || yres<1)
|
||||
return -1;
|
||||
|
||||
if (Pixmap)
|
||||
free (Pixmap);
|
||||
|
||||
rows=r*YRES;
|
||||
cols=c*XRES;
|
||||
XRES=xres;
|
||||
YRES=yres;
|
||||
ROWS=rows*yres;
|
||||
COLS=cols*xres;
|
||||
|
||||
if ((Pixmap=malloc (rows*cols*sizeof(unsigned char)))==NULL)
|
||||
if ((Pixmap=malloc (ROWS*COLS*sizeof(unsigned char)))==NULL)
|
||||
return -1;
|
||||
|
||||
return pix_clear();
|
||||
@@ -95,13 +106,13 @@ int pix_put (int row, int col, char *text)
|
||||
row*=YRES;
|
||||
col*=XRES;
|
||||
|
||||
while (*text && col<cols) {
|
||||
while (*text && col<COLS) {
|
||||
c=*text;
|
||||
for (y=0; y<YRES; y++) {
|
||||
mask=1<<XRES;
|
||||
for (x=0; x<XRES; x++) {
|
||||
mask>>=1;
|
||||
Pixmap[(row+y)*cols+col+x]=Fontmap[c][y]&mask?1:0;
|
||||
Pixmap[(row+y)*COLS+col+x]=Fontmap[c][y]&mask?1:0;
|
||||
}
|
||||
}
|
||||
col+=XRES;
|
||||
@@ -118,11 +129,11 @@ int pix_bar (int type, int row, int col, int max, int len1, int len2)
|
||||
col*=XRES;
|
||||
|
||||
if (type & BAR_H) {
|
||||
if (max>cols-col)
|
||||
max=cols-col;
|
||||
if (max>COLS-col)
|
||||
max=COLS-col;
|
||||
} else {
|
||||
if (max>rows-row)
|
||||
max=rows-row;
|
||||
if (max>ROWS-row)
|
||||
max=ROWS-row;
|
||||
}
|
||||
|
||||
if (len1<1) len1=1;
|
||||
@@ -143,7 +154,7 @@ int pix_bar (int type, int row, int col, int max, int len1, int len2)
|
||||
for (y=0; y<YRES; y++) {
|
||||
len=y<YRES/2?len1:len2;
|
||||
for (x=0; x<max; x++) {
|
||||
Pixmap[(row+y)*cols+col+x]=x<len?!rev:rev;
|
||||
Pixmap[(row+y)*COLS+col+x]=x<len?!rev:rev;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -157,7 +168,7 @@ int pix_bar (int type, int row, int col, int max, int len1, int len2)
|
||||
for (y=0; y<max; y++) {
|
||||
for (x=0; x<XRES; x++) {
|
||||
len=x<XRES/2?len1:len2;
|
||||
Pixmap[(row+y)*cols+col+x]=y<len?!rev:rev;
|
||||
Pixmap[(row+y)*COLS+col+x]=y<len?!rev:rev;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id: pixmap.h,v 1.1 2000/03/22 15:36:21 reinelt Exp $
|
||||
/* $Id: pixmap.h,v 1.2 2000/03/24 11:36:56 reinelt Exp $
|
||||
*
|
||||
* generic pixmap driver
|
||||
*
|
||||
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*
|
||||
* $Log: pixmap.h,v $
|
||||
* Revision 1.2 2000/03/24 11:36:56 reinelt
|
||||
*
|
||||
* new syntax for raster configuration
|
||||
* changed XRES and YRES to be configurable
|
||||
* PPM driver works nice
|
||||
*
|
||||
* Revision 1.1 2000/03/22 15:36:21 reinelt
|
||||
*
|
||||
* added '-l' switch (list drivers)
|
||||
@@ -31,13 +37,10 @@
|
||||
#ifndef _PIXMAP_H_
|
||||
#define _PIXMAP_H_
|
||||
|
||||
#define XRES 6
|
||||
#define YRES 8
|
||||
|
||||
extern unsigned char *Pixmap;
|
||||
|
||||
int pix_clear(void);
|
||||
int pix_init (int r, int c);
|
||||
int pix_init (int rows, int cols, int xres, int yres);
|
||||
int pix_put (int row, int col, char *text);
|
||||
int pix_bar (int type, int row, int col, int max, int len1, int len2);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user