]> 4ch.mooo.com Git - 16.git/blobdiff - 16/tweak16/VGALIB.HPP
refresh wwww
[16.git] / 16 / tweak16 / VGALIB.HPP
diff --git a/16/tweak16/VGALIB.HPP b/16/tweak16/VGALIB.HPP
new file mode 100755 (executable)
index 0000000..9fb45a9
--- /dev/null
@@ -0,0 +1,97 @@
+#ifndef _VGALIB_HPP\r
+#define _VGALIB_HPP\r
+\r
+class GraphicsAPI;\r
+class VGAGraphicsAPI;\r
+class Chained256;\r
+class Unchained256;\r
+class Planar16;\r
+\r
+class GraphicsAPI\r
+       {\r
+       public:\r
+               enum HJustify   { LEFT, HCENTER, RIGHT };\r
+               enum VJustify   { TOP, VCENTER, BOTTOM };\r
+\r
+       protected:\r
+               int xres, yres, vxres, vyres, color, colors;\r
+               unsigned char *font, *libID;\r
+               int fontWidth, fontHeight;\r
+               HJustify hJustify;\r
+               VJustify vJustify;\r
+       public:\r
+               GraphicsAPI(int, int, int, int, int);\r
+               virtual ~GraphicsAPI()                          {}\r
+               virtual char *getLibID()                        { return libID; }\r
+               virtual int getWidth()                          { return xres; }\r
+               virtual int getHeight()                         { return yres; }\r
+               virtual int getVirtualWidth()           { return vxres; }\r
+               virtual int getVirtualHeight()          { return vyres; }\r
+               virtual long getPageSize()                      { return long(xres)*yres; }\r
+               virtual int getColors()                         { return colors; }\r
+               virtual void setColor(int c)            { color = c; }\r
+               virtual void setBase(int, int)          =0;\r
+               virtual void syncWithRefresh()          =0;\r
+               virtual int getColor()                          { return color; }\r
+               virtual void putPixel(int x, int y)     { putPixel(x, y, color); }\r
+               virtual void putPixel(int x, int y, int c) =0;\r
+               virtual int getPixel(int x, int y)      =0;\r
+               virtual void hLine(int, int, int);\r
+               virtual void vLine(int, int, int);\r
+               virtual void line(int, int, int, int);\r
+               virtual void rectangle(int, int, int, int);\r
+               virtual void bar(int, int, int, int);\r
+               virtual void wipe();\r
+               virtual void putChar(int, int, int);\r
+               virtual void putText(int, int, char*);\r
+               virtual void setTextJustify(HJustify, VJustify);\r
+       };\r
+\r
+class VGAGraphicsAPI : public GraphicsAPI\r
+       {\r
+       protected:\r
+               int xbytes;\r
+               static unsigned char *videoBuf;\r
+        virtual unsigned getOffset(int, int);\r
+               virtual int getPelPan(int) =0;\r
+       public:\r
+               VGAGraphicsAPI(int, int, int, int, int);\r
+               void syncWithRefresh();\r
+               void setBase(int, int);\r
+       };\r
+\r
+class Chained256 : public VGAGraphicsAPI\r
+       {\r
+       protected:\r
+               int getPelPan(int);\r
+               unsigned getOffset(int, int);\r
+       public:\r
+               Chained256(int, int, int);\r
+               void putPixel(int, int, int);\r
+               int getPixel(int, int);\r
+               virtual void hLine(int, int, int);\r
+       };\r
+\r
+class Unchained256 : public VGAGraphicsAPI\r
+       {\r
+       protected:\r
+               int getPelPan(int);\r
+       public:\r
+               Unchained256(int, int, int);\r
+               void putPixel(int, int, int);\r
+               int getPixel(int, int);\r
+               virtual void hLine(int, int, int);\r
+       };\r
+\r
+class Planar16 : public VGAGraphicsAPI\r
+       {\r
+       protected:\r
+               int getPelPan(int);\r
+       public:\r
+               Planar16(int, int, int);\r
+               void putPixel(int, int, int);\r
+               int getPixel(int, int);\r
+               void hLine(int, int, int);\r
+       };\r
+\r
+#endif
\ No newline at end of file