/* Ofront+ 1.0 -sw7 -48 */

#ifndef Graph2__oh
#define Graph2__oh

#include "SYSTEM.oh"

typedef
  struct Graph2_BitmapDesc *Graph2_Bitmap;

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

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

typedef
  struct Graph2_WindowDesc *Graph2_Window;

typedef
  struct Graph2_TimerDesc *Graph2_Timer;

typedef
  struct Graph2_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;
    Graph2_Window window;
    Graph2_Timer timer;
    char _prvt0[4];
  } Graph2_Event;

typedef
  struct Graph2_FontDesc *Graph2_Font;

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

typedef
  struct Graph2_FontDrawMsgDesc *Graph2_FontDrawMsg;

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

typedef
  struct Graph2_FontDrawMsgDesc { /* Graph2_FontMessageDesc */
    char _prvt0[1];
  } Graph2_FontDrawMsgDesc;

typedef
  Graph2_FontMessageDesc *Graph2_FontMessage;

typedef
  struct Graph2_MonoFontDesc *Graph2_MonoFont;

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

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

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

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


import BOOLEAN Graph2_Done;

import SYSTEM_ADRINT *Graph2_Color__typ;
import SYSTEM_ADRINT *Graph2_Transform__typ;
import SYSTEM_ADRINT *Graph2_TimerDesc__typ;
import SYSTEM_ADRINT *Graph2_BitmapDesc__typ;
import SYSTEM_ADRINT *Graph2_WindowDesc__typ;
import SYSTEM_ADRINT *Graph2_Event__typ;
import SYSTEM_ADRINT *Graph2_FontMessageDesc__typ;
import SYSTEM_ADRINT *Graph2_FontDrawMsgDesc__typ;
import SYSTEM_ADRINT *Graph2_FontDesc__typ;
import SYSTEM_ADRINT *Graph2_MonoFontDesc__typ;

import void Graph2_ApplyScale (Graph2_Window W);
import void Graph2_ClearScreen (void);
import void Graph2_ClearToColor (Graph2_Color *c, SYSTEM_ADRINT *c__typ);
import void Graph2_Close (void);
import void Graph2_CloseWindow (Graph2_Window W);
import void Graph2_ColorToRGB (Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER *r, INTEGER *g, INTEGER *b);
import void Graph2_ColorToRGBA (Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER *r, INTEGER *g, INTEGER *b, INTEGER *a);
import void Graph2_ConvertMemoryBitmaps (void);
import void Graph2_Delay (INTEGER n);
import void Graph2_DelayF (SHORTREAL n);
import void Graph2_Draw (Graph2_Bitmap bmp, INTEGER x, INTEGER y);
import void Graph2_DrawChar (LONGCHAR ch, INTEGER x, INTEGER y, Graph2_Font font, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_DrawCharEx (LONGCHAR ch, INTEGER x, INTEGER y, Graph2_Font font, Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER *w);
import void Graph2_DrawEx (Graph2_Bitmap bmp, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy, INTEGER dw, INTEGER dh, SET flags);
import void Graph2_DrawFlip (Graph2_Bitmap bmp, INTEGER x, INTEGER y, SET flags);
import void Graph2_DrawPart (Graph2_Bitmap bmp, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy);
import void Graph2_DrawPartFlip (Graph2_Bitmap bmp, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy, SET flags);
import void Graph2_DrawRotated (Graph2_Bitmap bmp, INTEGER cx, INTEGER cy, INTEGER dx, INTEGER dy, SHORTREAL angle, SET flags);
import void Graph2_DrawScaledRotated (Graph2_Bitmap bmp, INTEGER cx, INTEGER cy, INTEGER dx, INTEGER dy, SHORTREAL xScale, SHORTREAL yScale, SHORTREAL angle, SET flags);
import void Graph2_DrawString (LONGCHAR *s, INTEGER s__len, INTEGER x, INTEGER y, Graph2_Font font, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_DrawTintedPart (Graph2_Bitmap bmp, Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER sx, INTEGER sy, INTEGER sw, INTEGER sh, INTEGER dx, INTEGER dy);
import void Graph2_DropNextEvent (void);
import void Graph2_FillRect (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_FillRectF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_Flip (void);
import void Graph2_GetClipboardText (Graph2_Window win, LONGCHAR *s, INTEGER s__len);
import void Graph2_GetDesktopResolution (INTEGER *w, INTEGER *h);
import void Graph2_GetMonoFontSize (Graph2_Font font, INTEGER *charW, INTEGER *charH);
import Graph2_Window Graph2_GetScreen (void);
import void Graph2_GetScreenSize (INTEGER *width, INTEGER *height);
import Graph2_Bitmap Graph2_GetTarget (void);
import void Graph2_GetTargetSize (INTEGER *width, INTEGER *height);
import SET Graph2_GetWindowOptions (Graph2_Window W);
import SHORTREAL Graph2_GetWindowZoom (Graph2_Window W);
import void Graph2_HLine (INTEGER x, INTEGER y1, INTEGER y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import BOOLEAN Graph2_HasEvents (void);
import void Graph2_Init (void);
import void Graph2_Line (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_LineF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import Graph2_Bitmap Graph2_LoadBitmap (LONGCHAR *fname, INTEGER fname__len);
import Graph2_Font Graph2_LoadFont (LONGCHAR *fname, INTEGER fname__len);
import void Graph2_LoadFontBitmap (Graph2_Font f);
import Graph2_Font Graph2_LoadFontInfo (LONGCHAR *fname, INTEGER fname__len);
import void Graph2_MakeCol (Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER r, INTEGER g, INTEGER b);
import Graph2_Bitmap Graph2_NewBitmap (INTEGER w, INTEGER h);
import Graph2_Timer Graph2_NewTimer (SHORTREAL speed);
import Graph2_Window Graph2_NewWindow (INTEGER x, INTEGER y, INTEGER w, INTEGER h, LONGCHAR *title, INTEGER title__len, SET options);
import void Graph2_Pause (void);
import BOOLEAN Graph2_PeekEvent (Graph2_Event *event, SYSTEM_ADRINT *event__typ);
import void Graph2_PutPixel (INTEGER x, INTEGER y, Graph2_Color *c, SYSTEM_ADRINT *c__typ);
import void Graph2_PutPixel2 (INTEGER x, INTEGER y, Graph2_Color *c, SYSTEM_ADRINT *c__typ);
import void Graph2_Rect (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_RectF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_ResumeTimer (Graph2_Timer timer);
import void Graph2_SetNewWindowScale (SHORTREAL x, SHORTREAL y);
import void Graph2_SetNewWindowTitle (LONGCHAR *title, INTEGER title__len);
import void Graph2_SetNewWindowZoom (INTEGER zoom);
import void Graph2_SetNewWindowZoomF (SHORTREAL zoom);
import void Graph2_SetScale (SHORTREAL x, SHORTREAL y);
import void Graph2_SetSizeStep (INTEGER w, INTEGER h);
import void Graph2_SetTitle (LONGCHAR *title, INTEGER title__len);
import void Graph2_SetWindowFullscreenSize (Graph2_Window win, INTEGER width, INTEGER height);
import void Graph2_SetWindowIcon (Graph2_Window win, Graph2_Bitmap icon);
import void Graph2_SetWindowIcons (Graph2_Window win, Graph2_Bitmap *icons, INTEGER icons__len);
import void Graph2_SetWindowIconsEx (Graph2_Window win, Graph2_Bitmap *icons, INTEGER icons__len, INTEGER from, INTEGER len);
import void Graph2_SetWindowOption (Graph2_Window W, INTEGER key, BOOLEAN on);
import void Graph2_SetWindowScale (Graph2_Window W, SHORTREAL x, SHORTREAL y);
import void Graph2_SetWindowTitle (Graph2_Window W, LONGCHAR *title, INTEGER title__len);
import void Graph2_SetWindowZoom (Graph2_Window W, INTEGER zoom);
import void Graph2_SetWindowZoomF (Graph2_Window W, SHORTREAL zoom);
import void Graph2_SetZoom (INTEGER zoom);
import void Graph2_SetZoomF (SHORTREAL zoom);
import void Graph2_Settings (INTEGER w, INTEGER h, SET flags);
import void Graph2_ShowMouse (BOOLEAN show);
import void Graph2_ShowWindowMouse (Graph2_Window W, BOOLEAN show);
import void Graph2_StartTimer (Graph2_Timer timer);
import void Graph2_StopTimer (Graph2_Timer timer);
import void Graph2_SwitchToFS (Graph2_Window win);
import void Graph2_SwitchToWindow (Graph2_Window win);
import void Graph2_Target (Graph2_Bitmap bitmap);
import void Graph2_TargetScreen (void);
import void Graph2_ThickLine (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER thickness);
import void Graph2_ThickLineF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ, SHORTREAL thickness);
import void Graph2_ThickRect (INTEGER x1, INTEGER y1, INTEGER x2, INTEGER y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ, INTEGER thickness);
import void Graph2_ThickRectF (SHORTREAL x1, SHORTREAL y1, SHORTREAL x2, SHORTREAL y2, Graph2_Color *color, SYSTEM_ADRINT *color__typ, SHORTREAL thickness);
import SHORTREAL Graph2_Time (void);
import void Graph2_ToggleFS (Graph2_Window win);
import void Graph2_VLine (INTEGER x1, INTEGER y, INTEGER x2, Graph2_Color *color, SYSTEM_ADRINT *color__typ);
import void Graph2_WaitEvent (Graph2_Event *event, SYSTEM_ADRINT *event__typ);
import void *Graph2__init (void);


#endif
