/* Ofront+ 1.0 -sw7 -48 */

#ifndef Graph__oh
#define Graph__oh

#include "SYSTEM.oh"

typedef
  struct Graph_BitmapDesc *Graph_Bitmap;

typedef
  struct Graph_BitmapDesc {
    char _prvt0[4];
    INTEGER w, h;
  } Graph_BitmapDesc;

typedef
  struct Graph_Color {
    INTEGER _prvt0;
    char _prvt1[12];
  } Graph_Color;

typedef
  struct Graph_WindowDesc *Graph_Window;

typedef
  struct Graph_TimerDesc *Graph_Timer;

typedef
  struct Graph_Event {
    INTEGER type;
    SHORTREAL time;
    INTEGER x, y, z, w, h, dx, dy, dz, dw, button;
    SET buttons;
    BOOLEAN down;
    LONGINT count;
    INTEGER key;
    LONGCHAR ch;
    SET mod;
    BOOLEAN repeat;
    Graph_Window window;
    Graph_Timer timer;
    char _prvt0[4];
  } Graph_Event;

typedef
  struct Graph_FontDesc *Graph_Font;

typedef
  struct Graph_FontDesc {
    INTEGER _prvt0;
    char _prvt1[516];
    BOOLEAN loaded;
  } Graph_FontDesc;

typedef
  struct Graph_FontDrawMsgDesc *Graph_FontDrawMsg;

typedef
  struct Graph_FontMessageDesc {
    char _prvt0[1];
  } Graph_FontMessageDesc;

typedef
  struct Graph_FontDrawMsgDesc { /* Graph_FontMessageDesc */
    char _prvt0[1];
  } Graph_FontDrawMsgDesc;

typedef
  Graph_FontMessageDesc *Graph_FontMessage;

typedef
  struct Graph_MonoFontDesc *Graph_MonoFont;

typedef
  struct Graph_MonoFontDesc { /* Graph_FontDesc */
    INTEGER _prvt0;
    char _prvt1[516];
    BOOLEAN loaded;
    char _prvt2[4];
    INTEGER charW, charH;
    char _prvt3[8];
  } Graph_MonoFontDesc;

typedef
  struct Graph_TimerDesc {
    INTEGER _prvt0;
    char _prvt1[4];
  } Graph_TimerDesc;

typedef
  struct Graph_Transform {
    INTEGER _prvt0;
    char _prvt1[60];
  } Graph_Transform;

typedef
  struct Graph_WindowDesc { /* Graph_BitmapDesc */
    char _prvt0[4];
    INTEGER w, h;
    char _prvt1[896];
  } Graph_WindowDesc;


import BOOLEAN Graph_Done;

import SYSTEM_ADRINT *Graph_Color__typ;
import SYSTEM_ADRINT *Graph_Transform__typ;
import SYSTEM_ADRINT *Graph_TimerDesc__typ;
import SYSTEM_ADRINT *Graph_BitmapDesc__typ;
import SYSTEM_ADRINT *Graph_WindowDesc__typ;
import SYSTEM_ADRINT *Graph_Event__typ;
import SYSTEM_ADRINT *Graph_FontMessageDesc__typ;
import SYSTEM_ADRINT *Graph_FontDrawMsgDesc__typ;
import SYSTEM_ADRINT *Graph_FontDesc__typ;
import SYSTEM_ADRINT *Graph_MonoFontDesc__typ;

import void Graph_ClearBitmap (Graph_Bitmap bmp);
import void Graph_ClearBitmapToColor (Graph_Bitmap bmp, Graph_Color *c, SYSTEM_ADRINT *c__typ);
import void Graph_ClearScreen (void);
import void Graph_ClearScreenToColor (Graph_Color *c, SYSTEM_ADRINT *c__typ);
import void Graph_Close (void);
import void Graph_CloseWindow (Graph_Window W);
import void Graph_ColorToRGB (Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER *r, INTEGER *g, INTEGER *b);
import void Graph_ColorToRGBA (Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER *r, INTEGER *g, INTEGER *b, INTEGER *a);
import void Graph_ConvertMemoryBitmaps (void);
import void Graph_Delay (INTEGER n);
import void Graph_DelayF (SHORTREAL n);
import void Graph_Draw (Graph_Bitmap bmp, INTEGER x, INTEGER y);
import void Graph_DrawChar (LONGCHAR ch, INTEGER x, INTEGER y, Graph_Font font, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_DrawCharEx (LONGCHAR ch, INTEGER x, INTEGER y, Graph_Font font, Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER *w);
import void Graph_DrawEx (Graph_Bitmap bmp, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy, INTEGER dw, INTEGER dh, SET flip);
import void Graph_DrawFlip (Graph_Bitmap bmp, INTEGER x, INTEGER y, SET flip);
import void Graph_DrawPart (Graph_Bitmap bmp, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy);
import void Graph_DrawPartFlip (Graph_Bitmap bmp, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy, SET flags);
import void Graph_DrawRotated (Graph_Bitmap bmp, INTEGER cx, INTEGER cy, INTEGER dx, INTEGER dy, SHORTREAL angle, SET flip);
import void Graph_DrawScaledRotated (Graph_Bitmap bmp, INTEGER cx, INTEGER cy, INTEGER dx, INTEGER dy, SHORTREAL xScale, SHORTREAL yScale, SHORTREAL angle, SET flip);
import void Graph_DrawString (LONGCHAR *s, INTEGER s__len, INTEGER x, INTEGER y, Graph_Font font, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_DrawTintedPart (Graph_Bitmap bmp, Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy);
import void Graph_DropNextEvent (void);
import void Graph_FillRect (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_FillRectF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_Flip (void);
import void Graph_GetClip (INTEGER *x, INTEGER *y, INTEGER *w, INTEGER *h);
import void Graph_GetClipboardText (Graph_Window win, LONGCHAR *s, INTEGER s__len);
import void Graph_GetDesktopResolution (INTEGER *w, INTEGER *h);
import void Graph_GetMonoFontSize (Graph_Font font, INTEGER *charW, INTEGER *charH);
import Graph_Window Graph_GetScreen (void);
import void Graph_GetScreenSize (INTEGER *width, INTEGER *height);
import Graph_Bitmap Graph_GetTarget (void);
import void Graph_GetTargetSize (INTEGER *width, INTEGER *height);
import SET Graph_GetWindowOptions (Graph_Window W);
import SHORTREAL Graph_GetWindowZoom (Graph_Window W);
import void Graph_HLine (INTEGER x1, INTEGER y, INTEGER x2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import BOOLEAN Graph_HasEvents (void);
import void Graph_Init (void);
import BOOLEAN Graph_KeyPressed (void);
import void Graph_Line (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_LineF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import Graph_Bitmap Graph_LoadBitmap (LONGCHAR *fname, INTEGER fname__len);
import Graph_Font Graph_LoadFont (LONGCHAR *fname, INTEGER fname__len);
import void Graph_LoadFontBitmap (Graph_Font f);
import Graph_Font Graph_LoadFontInfo (LONGCHAR *fname, INTEGER fname__len);
import void Graph_MakeCol (Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER r, INTEGER g, INTEGER b);
import void Graph_MakeRGBA (Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER r, INTEGER g, INTEGER b, INTEGER a);
import Graph_Bitmap Graph_NewBitmap (INTEGER w, INTEGER h);
import Graph_Timer Graph_NewTimer (SHORTREAL speed);
import Graph_Window Graph_NewWindow (INTEGER x, INTEGER y, INTEGER w, INTEGER h, LONGCHAR *title, INTEGER title__len, SET options);
import void Graph_Pause (void);
import BOOLEAN Graph_PeekEvent (Graph_Event *event, SYSTEM_ADRINT *event__typ);
import void Graph_PutPixel (INTEGER x, INTEGER y, Graph_Color *c, SYSTEM_ADRINT *c__typ);
import void Graph_PutPixel2 (INTEGER x, INTEGER y, Graph_Color *c, SYSTEM_ADRINT *c__typ);
import LONGCHAR Graph_ReadKey (void);
import void Graph_Rect (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_RectF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_ResumeTimer (Graph_Timer timer);
import void Graph_SetClip (INTEGER x, INTEGER y, INTEGER w, INTEGER h);
import void Graph_SetNewWindowScale (SHORTREAL x, SHORTREAL y);
import void Graph_SetNewWindowTitle (LONGCHAR *title, INTEGER title__len);
import void Graph_SetNewWindowZoom (INTEGER zoom);
import void Graph_SetNewWindowZoomF (SHORTREAL zoom);
import void Graph_SetScale (SHORTREAL x, SHORTREAL y);
import void Graph_SetSizeStep (INTEGER w, INTEGER h);
import void Graph_SetThisWindowTitle (Graph_Window W, LONGCHAR *title, INTEGER title__len);
import void Graph_SetTitle (LONGCHAR *title, INTEGER title__len);
import void Graph_SetWindowFullscreenSize (Graph_Window win, INTEGER width, INTEGER height);
import void Graph_SetWindowIcon (Graph_Window win, Graph_Bitmap icon);
import void Graph_SetWindowIcons (Graph_Window win, Graph_Bitmap *icons, INTEGER icons__len);
import void Graph_SetWindowIconsEx (Graph_Window win, Graph_Bitmap *icons, INTEGER icons__len, INTEGER from, INTEGER len);
import void Graph_SetWindowOption (Graph_Window W, INTEGER key, BOOLEAN on);
import void Graph_SetWindowScale (Graph_Window W, SHORTREAL x, SHORTREAL y);
import void Graph_SetWindowZoom (Graph_Window W, INTEGER zoom);
import void Graph_SetWindowZoomF (Graph_Window W, SHORTREAL zoom);
import void Graph_SetZoom (INTEGER zoom);
import void Graph_SetZoomF (SHORTREAL zoom);
import void Graph_Settings (INTEGER w, INTEGER h, SET flags);
import void Graph_ShowMouse (BOOLEAN show);
import void Graph_ShowWindowMouse (Graph_Window W, BOOLEAN show);
import void Graph_StartTimer (Graph_Timer timer);
import void Graph_StopTimer (Graph_Timer timer);
import void Graph_SwitchToFS (Graph_Window win);
import void Graph_SwitchToWindow (Graph_Window win);
import void Graph_Target (Graph_Bitmap bitmap);
import void Graph_TargetScreen (void);
import void Graph_ThickLine (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER thickness);
import void Graph_ThickLineF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph_Color *color, SYSTEM_ADRINT *color__typ, SHORTREAL thickness);
import void Graph_ThickRect (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph_Color *color, SYSTEM_ADRINT *color__typ, INTEGER thickness);
import void Graph_ThickRectF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph_Color *color, SYSTEM_ADRINT *color__typ, SHORTREAL thickness);
import SHORTREAL Graph_Time (void);
import void Graph_ToggleFS (Graph_Window win);
import void Graph_UnsetClip (void);
import void Graph_VLine (INTEGER x, INTEGER y1, INTEGER y2, Graph_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph_WaitEvent (Graph_Event *event, SYSTEM_ADRINT *event__typ);
import void *Graph__init (void);


#endif
