summaryrefslogtreecommitdiff
path: root/src/ui/paint.h
blob: 9535b142b949b86aed869b0a0f36e5efdb8e8671 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#pragma once

#include <the_Foundation/rect.h>
#include "color.h"
#include "text.h"
#include "window.h"

iDeclareType(Paint)

struct Impl_Paint {
    iWindow *dst;
};

void    init_Paint      (iPaint *);

void    setClip_Paint   (iPaint *, iRect rect);
void    clearClip_Paint (iPaint *);

void    drawRect_Paint          (const iPaint *, iRect rect, int color);
void    drawRectThickness_Paint (const iPaint *, iRect rect, int thickness, int color);
void    fillRect_Paint          (const iPaint *, iRect rect, int color);

void    drawLines_Paint (const iPaint *, const iInt2 *points, size_t count, int color);

iLocalDef void drawLine_Paint(const iPaint *d, iInt2 a, iInt2 b, int color) {
    drawLines_Paint(d, (iInt2[]){ a, b }, 2, color);
}
iLocalDef void drawHLine_Paint(const iPaint *d, iInt2 pos, int len, int color) {
    drawLine_Paint(d, pos, addX_I2(pos, len), color);
}
iLocalDef void drawVLine_Paint(const iPaint *d, iInt2 pos, int len, int color) {
    drawLine_Paint(d, pos, addY_I2(pos, len), color);
}