#ifndef _ofxDraw_h_
#define _ofxDraw_h_
#include "ofxCore.h"
#include "ofxPixels.h"
#ifdef __cplusplus
extern "C" {
#endif
#define kOfxDrawSuite "OfxDrawSuite"
typedef struct OfxDrawContext *OfxDrawContextHandle;
#define kOfxInteractPropDrawContext "OfxInteractPropDrawContext"
typedef enum OfxStandardColour
{
kOfxStandardColourOverlayBackground,
kOfxStandardColourOverlayActive,
kOfxStandardColourOverlaySelected,
kOfxStandardColourOverlayDeselected,
kOfxStandardColourOverlayMarqueeFG,
kOfxStandardColourOverlayMarqueeBG,
kOfxStandardColourOverlayText
} OfxStandardColour;
typedef enum OfxDrawLineStipplePattern
{
kOfxDrawLineStipplePatternSolid, kOfxDrawLineStipplePatternDot, kOfxDrawLineStipplePatternDash, kOfxDrawLineStipplePatternAltDash, kOfxDrawLineStipplePatternDotDash } OfxDrawLineStipplePattern;
typedef enum OfxDrawPrimitive
{
kOfxDrawPrimitiveLines,
kOfxDrawPrimitiveLineStrip,
kOfxDrawPrimitiveLineLoop,
kOfxDrawPrimitiveRectangle,
kOfxDrawPrimitivePolygon,
kOfxDrawPrimitiveEllipse
} OfxDrawPrimitive;
typedef enum OfxDrawTextAlignment
{
kOfxDrawTextAlignmentLeft = 0x0001,
kOfxDrawTextAlignmentRight = 0x0002,
kOfxDrawTextAlignmentTop = 0x0004,
kOfxDrawTextAlignmentBottom = 0x008,
kOfxDrawTextAlignmentBaseline = 0x010,
kOfxDrawTextAlignmentCenterH = (kOfxDrawTextAlignmentLeft | kOfxDrawTextAlignmentRight),
kOfxDrawTextAlignmentCenterV = (kOfxDrawTextAlignmentTop | kOfxDrawTextAlignmentBaseline)
} OfxDrawTextAlignment;
typedef struct OfxDrawSuiteV1 {
OfxStatus (*getColour)(OfxDrawContextHandle context, OfxStandardColour std_colour, OfxRGBAColourF *colour);
OfxStatus (*setColour)(OfxDrawContextHandle context, const OfxRGBAColourF *colour);
OfxStatus (*setLineWidth)(OfxDrawContextHandle context, float width);
OfxStatus (*setLineStipple)(OfxDrawContextHandle context, OfxDrawLineStipplePattern pattern);
OfxStatus (*draw)(OfxDrawContextHandle context, OfxDrawPrimitive primitive, const OfxPointD *points, int point_count);
OfxStatus (*drawText)(OfxDrawContextHandle context, const char *text, const OfxPointD *pos, int alignment);
} OfxDrawSuiteV1;
#ifdef __cplusplus
}
#endif
#endif