home *** CD-ROM | disk | FTP | other *** search
/ Computer Panoráma / computer_panorama_1997-12-hibas.iso / SHARE / GRAPH / PTC051.ZIP / SRC / PTC.H < prev    next >
C/C++ Source or Header  |  1997-09-20  |  9KB  |  363 lines

  1. //////////////////////////
  2. // prometheus truecolor //
  3. //////////////////////////
  4.  
  5. #ifndef __PTC_H
  6. #define __PTC_H
  7.  
  8. #include "lang.h"
  9. #include "misc.h"
  10. #include "config.h"
  11. #include "globals.h"
  12. #include "classes.h"
  13. #include "iface.h"
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21. class PTC
  22. {
  23.     public:
  24.         
  25.         // setup
  26.         PTC();
  27.         ~PTC();
  28.  
  29.         // user constructors
  30.         PTC(MODE const &mode);
  31.         PTC(int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  32.         PTC(int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  33.         PTC(HWINDOW window,MODE const &mode);
  34.         PTC(HWINDOW window,int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  35.         PTC(HWINDOW window,int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  36.         
  37.         // interface name string constructors
  38.         PTC(char name[],int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  39.         PTC(char name[],int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  40.         PTC(char name[],HWINDOW window,int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  41.         PTC(char name[],HWINDOW window,int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  42.  
  43.         // command line constructors
  44.         PTC(int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  45.         PTC(int x,int y,int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  46.         PTC(HWINDOW window,int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  47.         PTC(HWINDOW window,int x,int y,int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  48.  
  49.         // user initialize
  50.         int Init(MODE const &mode);
  51.         int Init(int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  52.         int Init(int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  53.         int Init(HWINDOW window,MODE const &mode);
  54.         int Init(HWINDOW window,int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  55.         int Init(HWINDOW window,int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  56.  
  57.         // interface name string constructors
  58.         int Init(char name[],int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  59.         int Init(char name[],int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  60.         int Init(char name[],HWINDOW window,int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  61.         int Init(char name[],HWINDOW window,int x,int y,FORMAT format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  62.  
  63.         // command line initialize
  64.         int Init(int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  65.         int Init(int x,int y,int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  66.         int Init(HWINDOW window,int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  67.         int Init(HWINDOW window,int x,int y,int argc,char *argv[],int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  68.  
  69.         // close
  70.         void Close();
  71.  
  72.         // mode list information
  73.         int GetModeList(List<MODE> &modelist);
  74.  
  75.         // current interface information
  76.         INFO GetInfo();
  77.  
  78.         // mode set
  79.         inline int SetMode(MODE const &mode);
  80.         inline int SetMode(int x,int y,int id=FUZZY32,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  81.         inline int SetMode(int x,int y,FORMAT const &format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  82.         inline int QueryMode(MODE const &mode);
  83.         inline int QueryMode(int x,int y,int id,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  84.         inline int QueryMode(int x,int y,FORMAT const &format,int layout=DEFAULT,int output=DEFAULT,int frequency=DEFAULT);
  85.         inline MODE GetMode();
  86.  
  87.         // palette control
  88.         inline int SetPalette(Palette &palette);
  89.         inline int GetPalette(Palette &palette);
  90.         
  91.         // hardware functions
  92.         inline void WaitForRetrace();
  93.         inline int SaveState();
  94.         inline int RestoreState();
  95.  
  96.         // primary surface operations
  97.         inline int SetPrimary(Surface &surface);
  98.         inline Surface* GetPrimary();
  99.         inline int SetOrigin(int x,int y);
  100.         inline int GetOrigin(int &x,int &y);
  101.  
  102.         // console routines
  103.         inline int getch();
  104.         inline int kbhit();
  105.         inline int keydown(int key);
  106.  
  107.         // data access
  108.         inline void GetName(char name[]) const;
  109.         inline uint GetXResolution() const;
  110.         inline uint GetYResolution() const;
  111.         inline uint GetBitsPerPixel() const;
  112.         inline uint GetBytesPerPixel() const;
  113.         inline int GetLayout() const;
  114.         inline int GetOutput() const;
  115.         inline int GetFrequency() const;
  116.         inline FORMAT GetFormat() const;
  117.         inline HWINDOW GetWindow() const;
  118.  
  119.         // interface access
  120.         inline Interface* GetInterface() const; 
  121.  
  122.         // object status
  123.         inline int ok() const;
  124.  
  125.     protected:
  126.  
  127.         // setup data defaults
  128.         void Defaults();
  129.  
  130.         // local interface
  131.         Interface *LocalInterface;
  132.  
  133.         // dummy interface
  134.         static IDummy DummyInterface;
  135. };
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143. // interdependant classes
  144. #include "surface.h"
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152. // inline wrapper functions
  153. inline INFO PTC::GetInfo()
  154. {
  155.     return LocalInterface->GetInfo();
  156. }
  157.  
  158.  
  159. inline int PTC::SetMode(MODE const &mode)
  160. {
  161.     return LocalInterface->SetMode(mode);
  162. }
  163.  
  164.  
  165. inline int PTC::SetMode(int x,int y,int id,int layout,int output,int frequency)
  166. {
  167.     return LocalInterface->SetMode(x,y,id,layout,output,frequency);
  168. }
  169.  
  170.  
  171. inline int PTC::SetMode(int x,int y,FORMAT const &format,int layout,int output,int frequency)
  172. {
  173.     return LocalInterface->SetMode(x,y,format,layout,output,frequency);
  174. }
  175.  
  176.  
  177. inline int PTC::QueryMode(MODE const &mode)
  178. {
  179.     return LocalInterface->QueryMode(mode);
  180. }
  181.  
  182.  
  183. inline int PTC::QueryMode(int x,int y,int id,int layout,int output,int frequency)
  184. {
  185.     return LocalInterface->QueryMode(x,y,id,layout,output,frequency);
  186. }
  187.  
  188.  
  189. inline int PTC::QueryMode(int x,int y,FORMAT const &format,int layout,int output,int frequency)
  190. {
  191.     return LocalInterface->QueryMode(x,y,format,layout,output,frequency);
  192. }
  193.  
  194.  
  195. inline MODE PTC::GetMode()
  196. {
  197.     return LocalInterface->GetMode();
  198. }
  199.  
  200.  
  201. inline int PTC::SetPalette(Palette &palette)
  202. {
  203.     return LocalInterface->SetPalette(palette);
  204. }
  205.         
  206.  
  207. inline int PTC::GetPalette(Palette &palette)
  208. {
  209.     return LocalInterface->GetPalette(palette);
  210. }
  211.         
  212.  
  213. inline void PTC::WaitForRetrace()
  214. {
  215.     LocalInterface->WaitForRetrace();
  216. }
  217.  
  218.  
  219. inline int PTC::SaveState()
  220. {
  221.     return LocalInterface->SaveState();
  222. }
  223.  
  224.  
  225. inline int PTC::RestoreState()
  226. {
  227.     return LocalInterface->RestoreState();
  228. }
  229.  
  230.         
  231. inline int PTC::SetPrimary(Surface &surface)
  232. {
  233.     return LocalInterface->SetPrimary(surface);
  234. }
  235.  
  236.  
  237. inline Surface* PTC::GetPrimary()
  238. {
  239.     return LocalInterface->GetPrimary();
  240. }
  241.  
  242.  
  243. inline int PTC::SetOrigin(int x,int y)
  244. {
  245.     return LocalInterface->SetOrigin(x,y);
  246. }
  247.  
  248.  
  249. inline int PTC::GetOrigin(int &x,int &y)
  250. {
  251.     return LocalInterface->GetOrigin(x,y);
  252. }
  253.  
  254.  
  255. inline int PTC::getch()
  256. {
  257.     return LocalInterface->getch();
  258. }
  259.  
  260.  
  261. inline int PTC::kbhit()
  262. {
  263.     return LocalInterface->kbhit();
  264. }
  265.  
  266.  
  267. inline int PTC::keydown(int key)
  268. {
  269.     return LocalInterface->keydown(key);
  270. }
  271.  
  272.  
  273. inline void PTC::GetName(char name[]) const
  274. {
  275.     LocalInterface->GetName(name);
  276. }
  277.         
  278.  
  279. inline uint PTC::GetXResolution() const
  280. {