Quelltext /~heha/ewa/Kram/Solarpaneel.zip/C-Programm/graphics.h

/*
Projekt: Photovoltaik-Präsentation "solar" mit MSP430
Detail: BorlandC-ähnliche Kopfdatei für Vollgrafikfunktionen

070522	erstellt (unausgegoren!)
*/

#define GRAF_X 240	// Ausdehnung in Pixel
#define GRAF_Y 128	// (betrifft Grafikmodus)
typedef BYTE COLORREF;

struct linesettingstype{
 int linestyle;
 unsigned upattern;
 int thickness;
};

struct textsettingstype{
 int font;
 int direction;
 int charsize;
 int horiz;
 int vert;
};

struct fillsettingstype{
 int pattern;
 int color;
};

struct pointtype{
 int x,y;
};

struct viewporttype{
 int left,top,right,bottom,clip;
};

struct arccoordstype{
 int x, y, xstart, ystart, xend, yend;
};

struct graphics_data{	// interne Verwaltungsdaten (zz. ungenutzt)
 int color, bkcolor;
 struct pointtype position;
 struct linesettingstype linesettings;
 struct textsettingstype textsettings;
 struct fillsettingstype fillsettings;
 struct viewporttype viewport;
 struct arccoordstype arccoords;
};

extern struct graphics_data GraphicsData;

void arc(int x,int y,int sa,int ea,int r);
void bar(int l,int t,int r,int b);
void bar3d(int l,int t,int r,int b,int d,int f);
void circle(int x,int y,int r);
void cleardevice(void);
void clearviewport(void);
void closegraph(void);
void drawpoly(int n,const struct pointtype*p);
void ellipse(int x,int y,int sa,int ea,int xr,int yr);
void fillellipse(int x,int y,int xr,int yr);
void fillpoly(int n,const struct pointtype*p);
void floodfill(int x,int y,int c);
#define getarccoords(a) (*(a)=GraphicsData.arccoords)
#define getbkcolor() (GraphicsData.bkcolor)
#define getcolor() (GrafDC.color)
void getfillpattern(unsigned char p[8]);
void getimage(int l,int t,int r,int b,void*);
#define getmaxcolor() 1
#define getmaxx() (GRAF_X-1)
#define getmaxy() (GRAF_Y-1)
unsigned getpixel(int x,int y);
#define getviewsettings(vp) (*(vp)=GrafDC.viewport)
#define getx() GrafDC.pos.x
#define gety() GrafDC.pos.y
void graphdefaults(void);
#define imagesize(l,t,r,b) (4+(((r)+1-(l))+FONT_X-1)/FONT_X*((b)+1-(t)))
void initgraph(void);
void line(int x1,int y1,int x2,int y2);
#define linerel(dx,dy) lineto((dx)+GrafDC.pos.x,(dy)+GrafDC.pos.y)
void lineto(int x,int y);
#define moverel(xx,yy) {GrafDC.pos.x+=(xx); GrafDC.pos.y+=(yy);}
#define moveto(xx,yy) {GrafDC.pos.x=(xx); GrafDC.pos.y=(yy);}
void outtext(const char*);
void outtextxy(int x,int y,const char*);
void pieslice(int x,int y,int sa,int ea,int r);
void putimage(int x,int y,const void*,int o);
void putpixel(int x,int y,int c);
void rectangle(int l,int t,int r,int b);
void sector(int x,int y,int sa,int ea,int xr,int yr);
#define setactivepage(page)	/* Ziel für Zeichenoperationen */\
  (GrafDC.ba=3*1024+(page)*8*1024)
#define setbkcolor(c) (GraphicsData.bkcolor=(c))
#define setcolor(c) (GrafDC.color=(c))
void setfillpattern(const unsigned char p[8],int c);
void setfillstyle(int,int);
void setgraphmode(int);
void setlinestyle(int,unsigned,int);
void settextjustify(int,int);
void settextstyle(int,int,int);
#define setviewport(l,t,r,b,c)\
 {GrafDC.viewport.left  =(l);\
  GrafDC.viewport.top   =(t);\
  GrafDC.viewport.right =(r)+1;\
  GrafDC.viewport.bottom=(b)+1;\
  GrafDC.viewport.clip  =(c);}	// wirkungslos!
void setvisualpage(int);	// dargestellte Seite
void setwritemode(int);
int textheight(const char*);
int textwidth(const char*);
Vorgefundene Kodierung: UTF-80