Blame src/drawing.h

Ivan Mahonin 3f9996
#ifndef HELI_DRAWING_H
Ivan Mahonin 3f9996
#define HELI_DRAWING_H
Ivan Mahonin 3f9996
Ivan Mahonin 3f9996
Ivan Mahonin 3f9996
#include "common.h"
Ivan Mahonin 7ac038
#include "colors.h"
Ivan Mahonin deef1d
#include "animation.h"
Ivan Mahonin deef1d
Ivan Mahonin deef1d
Ivan Mahonin deef1d
typedef enum _StateFlags {
Ivan Mahonin d6f40c
	STATE_FILL_COLOR         = 1 <<  0,
Ivan Mahonin d6f40c
	STATE_FILL_TEXTURE       = 1 <<  1,
Ivan Mahonin deef1d
	
Ivan Mahonin d6f40c
	STATE_STROKE_COLOR       = 1 <<  2,
Ivan Mahonin d6f40c
	STATE_STROKE_TEXTURE     = 1 <<  3,
Ivan Mahonin d6f40c
	STATE_STROKE_WIDTH       = 1 <<  4,
Ivan Mahonin deef1d
	
Ivan Mahonin d6f40c
	STATE_TEXT_ALIGN         = 1 <<  5,
Ivan Mahonin d6f40c
	STATE_TEXT_SIZE          = 1 <<  6,
Ivan Mahonin d6f40c
	STATE_TEXT_FONT          = 1 <<  7,
Ivan Mahonin deef1d
	
Ivan Mahonin d6f40c
	STATE_TARGET_FRAMEBUFFER = 1 <<  8,
Ivan Mahonin d6f40c
	STATE_TARGET_VIEWPORT    = 1 <<  9,
Ivan Mahonin d6f40c
	STATE_TARGET_PROJECTION  = 1 << 10,
Ivan Mahonin d6f40c
	
Ivan Mahonin d6f40c
	STATE_BACKGROUND         = 1 << 11,
Ivan Mahonin d6f40c
	STATE_TRANSFORM          = 1 << 12,
Ivan Mahonin d6f40c
	STATE_CLIP               = 1 << 13,
Ivan Mahonin b4b587
	STATE_ANTIALIASING       = 1 << 14,
Ivan Mahonin deef1d
	
Ivan Mahonin deef1d
	STATE_FILL   = STATE_FILL_COLOR
Ivan Mahonin deef1d
	             | STATE_FILL_TEXTURE,
Ivan Mahonin deef1d
	STATE_STROKE = STATE_STROKE_COLOR
Ivan Mahonin deef1d
	             | STATE_STROKE_TEXTURE
Ivan Mahonin deef1d
	             | STATE_STROKE_WIDTH,
Ivan Mahonin deef1d
	STATE_TEXT   = STATE_TEXT_ALIGN
Ivan Mahonin deef1d
	             | STATE_TEXT_SIZE
Ivan Mahonin deef1d
	             | STATE_TEXT_FONT,
Ivan Mahonin 1d641c
	STATE_TARGET = STATE_TARGET_FRAMEBUFFER
Ivan Mahonin 1d641c
	             | STATE_TARGET_VIEWPORT
Ivan Mahonin 1d641c
	             | STATE_TARGET_PROJECTION,
Ivan Mahonin deef1d
	
Ivan Mahonin deef1d
	STATE_ALL    = STATE_FILL
Ivan Mahonin deef1d
	             | STATE_STROKE
Ivan Mahonin deef1d
	             | STATE_TEXT
Ivan Mahonin d6f40c
	             | STATE_TARGET
Ivan Mahonin d6f40c
	             | STATE_BACKGROUND
Ivan Mahonin deef1d
	             | STATE_TRANSFORM
Ivan Mahonin 1d641c
	             | STATE_CLIP
Ivan Mahonin b4b587
	             | STATE_TARGET
Ivan Mahonin b4b587
	             | STATE_ANTIALIASING,
Ivan Mahonin deef1d
} StateFlags;
Ivan Mahonin 3f9996
bw 3c0f7f
Ivan Mahonin d4e89f
void background(unsigned int colorCode);
Ivan Mahonin d6f40c
void clear();
Ivan Mahonin 3954ba
Ivan Mahonin d4e89f
void fill(unsigned int colorCode);
Ivan Mahonin deef1d
void fillTexture(Animation animation, double x, double y, double width, double height, int fixed);
Ivan Mahonin 3f9996
void noFill();
Ivan Mahonin b4b587
void noFillColor();
Ivan Mahonin b4b587
void noFillTexture();
Ivan Mahonin d4e89f
void stroke(unsigned int colorCode);
Ivan Mahonin deef1d
void strokeTexture(Animation animation, double x, double y, double width, double height, int fixed);
Ivan Mahonin 3f9996
void noStroke();
Ivan Mahonin b4b587
void noStrokeColor();
Ivan Mahonin b4b587
void noStrokeTexture();
Ivan Mahonin deef1d
void strokeWidth(double width);
Ivan Mahonin 3954ba
Ivan Mahonin b4b587
void enableAntialiasing();
Ivan Mahonin b4b587
void disableAntialiasing();
Ivan Mahonin b4b587
Ivan Mahonin 8bc1f1
void translate(double x, double y);
Ivan Mahonin 8bc1f1
void rotate(double angle);
Ivan Mahonin 8bc1f1
void zoom(double z);
Ivan Mahonin 8bc1f1
void scale(double x, double y);
Ivan Mahonin ba5c91
void noTransform();
Ivan Mahonin ba5c91
Ivan Mahonin 8bc1f1
void cliprect(double x, double y, double width, double height);
Ivan Mahonin 8bc1f1
void noClip();
Ivan Mahonin 8bc1f1
Ivan Mahonin 1d641c
void projectionByViewport();
Ivan Mahonin 1d641c
void viewportByFramebuffer(Framebuffer framebuffer);
Ivan Mahonin 1d641c
void viewportByWindow();
Ivan Mahonin 1d641c
void targetEx(Framebuffer framebuffer, int updateViewport, int updateProjection);
Ivan Mahonin 1d641c
void target(Framebuffer framebuffer);
Ivan Mahonin 1d641c
void noTarget();
Ivan Mahonin 1d641c
Ivan Mahonin 3e7c5f
void resetState();
Ivan Mahonin 3e7c5f
void resetStateEx(unsigned int flags);
Ivan Mahonin deef1d
void saveState();
Ivan Mahonin deef1d
void saveStateEx(unsigned int flags);
Ivan Mahonin deef1d
void restoreState();
Ivan Mahonin 3954ba
Ivan Mahonin 1d641c
Ivan Mahonin 7ac038
unsigned int colorWithAlpha(unsigned int colorCode, double a);
Ivan Mahonin 7ac038
Ivan Mahonin d4e89f
unsigned int colorByName(const char *colorName);
Ivan Mahonin ca6bde
unsigned int colorByNameA(const char *colorName, double a);
Ivan Mahonin d4e89f
unsigned int colorByRGB(double r, double g, double b);
Ivan Mahonin d4e89f
unsigned int colorByRGBA(double r, double g, double b, double a);
Ivan Mahonin 1d641c
unsigned int colorByHSV(double h, double s, double v);
Ivan Mahonin 1d641c
unsigned int colorByHSVA(double h, double s, double v, double a);
Ivan Mahonin 1d641c
unsigned int colorByYUV(double y, double u, double v);
Ivan Mahonin 1d641c
unsigned int colorByYUVA(double y, double u, double v, double a);
Ivan Mahonin 1d641c
Ivan Mahonin d6f40c
double colorGetRed(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetGreen(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetBlue(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetAlpha(unsigned int colorCode);
Ivan Mahonin 1d641c
Ivan Mahonin d6f40c
double colorGetHue(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetSaturation(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetValue(unsigned int colorCode);
Ivan Mahonin 1d641c
Ivan Mahonin d6f40c
double colorGetYLuminance(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetUChrominance(unsigned int colorCode);
Ivan Mahonin d6f40c
double colorGetVChrominance(unsigned int colorCode);
Ivan Mahonin 1d641c
Ivan Mahonin 3954ba
Ivan Mahonin 3f9996
void rect(double x, double y, double width, double height);
Ivan Mahonin 20d197
void rectRounded(double x, double y, double width, double height, double radius);
Ivan Mahonin f8dca4
void rectTextured(Animation animation, double x, double y, double width, double height);
Ivan Mahonin 3f9996
void ellipse(double x, double y, double width, double height);
Ivan Mahonin 788bd9
void circle(double x, double y, double radius);
Ivan Mahonin 3f9996
void arc(double x, double y, double w, double h, double start, double stop);
Ivan Mahonin 07b70f
void arcPath(double x, double y, double w, double h, double start, double stop);
Ivan Mahonin 07b70f
void line(double x1, double y1, double x2, double y2);
Ivan Mahonin 3f9996
void point(double x, double y);
Ivan Mahonin b4b587
void regularPolygon(double x, double y, int sides, double radius, double angle);
Ivan Mahonin 07b70f
Ivan Mahonin 3f9996
void moveTo(double x, double y);
Ivan Mahonin 3f9996
void lineTo(double x, double y);
Ivan Mahonin 07b70f
void resetPath();
Ivan Mahonin 07b70f
void closePath();
Ivan Mahonin 07b70f
void strokePath();
Ivan Mahonin 3f9996
Ivan Mahonin 3f9996
Ivan Mahonin 3f9996
#endif
Ivan Mahonin 3f9996