9 # error This is a userspace-only header, not allowed by the current build.
12 #include <sifteo/abi.h>
13 #include <sifteo/macros.h>
14 #include <sifteo/math.h>
15 #include <sifteo/asset.h>
30 _SYSAttachedVideoBuffer sys;
36 return _SYS_VRAM_BG0_WIDTH;
43 return _SYS_VRAM_BG0_WIDTH;
92 void erase(uint16_t index = 0) {
93 _SYS_vbuf_fill(&sys.vbuf, 0, _SYS_TILE77(index),
sizeInWords());
114 _SYS_vbuf_poke(&sys.vbuf,
offsetof(_SYSVideoRAM, bg0_x) / 2,
124 unsigned word = _SYS_vbuf_peek(&sys.vbuf,
offsetof(_SYSVideoRAM, bg0_x) / 2);
125 return vec<int>(word & 0xFF, word >> 8);
143 return _SYS_INVERSE_TILE77(_SYS_vbuf_peek(&sys.vbuf,
tileAddr(pos)));
154 _SYS_vbuf_poke(&sys.vbuf,
tileAddr(pos), _SYS_TILE77(tileIndex));
163 void span(
UInt2 pos,
unsigned width,
unsigned tileIndex)
167 _SYS_vbuf_fill(&sys.vbuf,
tileAddr(pos), _SYS_TILE77(tileIndex), width);
177 span(pos, width, image.
tile(sys.cube,0));
189 span(topLeft, size.
x, tileIndex);
203 fill(topLeft, size, image.
tile(sys.cube, 0));
217 _SYS_image_BG0Draw(&sys, image,
tileAddr(pos), frame);
231 _SYS_image_BG0DrawRect(&sys, image,
tileAddr(destXY),
232 frame, (_SYSInt2*) &srcXY, (_SYSInt2*) &size);
244 unsigned lineAddr = addr;
251 _SYS_image_BG0Draw(&sys, font, addr, c - firstChar);