Macros.h File Reference
#include "Header.h"
Include dependency graph for Macros.h:

Go to the source code of this file.

Macros

#define GDRAW_FIELD(value, shift)   uint8_t(uint8_t(Graphics::Drawing::value) << shift)
 
#define GDRAW_OPCODE(opcode)   GDRAW_FIELD(opcode, 6)
 
#define GDRAW_TYPE(type)   GDRAW_FIELD(Header::type, 4)
 
#define GDRAW_CMD(cmd)   GDRAW_OPCODE(OpCode::execute) | GDRAW_TYPE(Type::uint8) | uint8_t(Graphics::Drawing::cmd),
 
#define GDRAW_UINT16(value)   uint8_t(value), uint8_t((value) >> 8),
 
#define GDRAW_INT16(value)   uint8_t(abs(value)), uint8_t(abs(value) >> 8),
 
#define GDRAW_UINT32(value)   uint8_t(value), uint8_t((value) >> 8), uint8_t((value) >> 16), uint8_t((value) >> 24),
 
#define GDRAW_MAKE_UINT32(w1, w2)   (uint32_t(w2) << 16) | uint32_t(w1)
 
#define GDRAW_REGDEF(reg, size)   uint8_t(offsetof(Graphics::Drawing::Registers, reg) / size)
 
#define GDRAW_REG_UINT8(opcode, reg, value)   GDRAW_OPCODE(opcode) | GDRAW_TYPE(Type::uint8) | GDRAW_REGDEF(reg, 1), uint8_t(value),
 
#define GDRAW_REG_UINT16(opcode, reg, value)   GDRAW_OPCODE(opcode) | GDRAW_TYPE(Type::uint16) | GDRAW_REGDEF(reg, 2), GDRAW_UINT16(value)
 
#define GDRAW_REG_INT16(reg, value)
 
#define GDRAW_REG_UINT32(opcode, reg, value)   GDRAW_OPCODE(opcode) | GDRAW_TYPE(Type::uint32) | GDRAW_REGDEF(reg, 4), GDRAW_UINT32(value)
 
#define GDRAW_RESET()   GDRAW_CMD(Command::reset)
 
#define GDRAW_SAVE()   GDRAW_CMD(Command::push)
 
#define GDRAW_RESTORE()   GDRAW_CMD(Command::pop)
 
#define GDRAW_XREL(cx)   GDRAW_REG_INT16(x2, cx)
 
#define GDRAW_YREL(cy)   GDRAW_REG_INT16(y2, cy)
 
#define GDRAW_XABS(x_)   GDRAW_REG_UINT16(OpCode::store, x2, x_)
 
#define GDRAW_YABS(y_)   GDRAW_REG_UINT16(OpCode::store, y2, y_)
 
#define GDRAW_ID(id_)   GDRAW_REG_UINT16(OpCode::store, id, id_)
 
#define GDRAW_SELECT_PEN(id)   GDRAW_REG_UINT16(OpCode::store, penId, id)
 
#define GDRAW_SELECT_BRUSH(id)   GDRAW_REG_UINT16(OpCode::store, brushId, id)
 
#define GDRAW_SELECT_TEXT(id)   GDRAW_REG_UINT16(OpCode::store, textId, id)
 
#define GDRAW_OFFSET_LENGTH(off, len)   GDRAW_REG_UINT32(OpCode::store, length, GDRAW_MAKE_UINT32(len, off))
 
#define GDRAW_PEN_COLOR(col)   GDRAW_REG_UINT32(OpCode::store, penColor, uint32_t(col))
 
#define GDRAW_PEN_WIDTH(width)   GDRAW_REG_UINT16(OpCode::store, penWidth, width)
 
#define GDRAW_STORE_PEN(id)   GDRAW_ID(id) GDRAW_CMD(Command::storePen)
 
#define GDRAW_BRUSH_COLOR(col)   GDRAW_REG_UINT32(OpCode::store, brushColor, uint32_t(col))
 
#define GDRAW_STORE_BRUSH(id)   GDRAW_ID(id) GDRAW_CMD(Command::storeBrush)
 
#define GDRAW_END_ANGLE(value)   GDRAW_REG_UINT16(OpCode::store, endAngle, value) GDRAW_CMD(Command::angle)
 
#define GDRAW_MOVE()   GDRAW_CMD(Command::move)
 
#define GDRAW_LINE()   GDRAW_CMD(Command::line)
 
#define GDRAW_LINE_TO()   GDRAW_CMD(Command::lineto)
 
#define GDRAW_RADIUS(value)   GDRAW_REG_UINT16(OpCode::store, radius, value)
 
#define GDRAW_RECT(radius)   GDRAW_RADIUS(radius) GDRAW_CMD(Command::drawRect)
 
#define GDRAW_FILL_RECT(radius)   GDRAW_RADIUS(radius) GDRAW_CMD(Command::fillRect)
 
#define GDRAW_ELLIPSE()   GDRAW_CMD(Command::drawEllipse)
 
#define GDRAW_FILL_ELLIPSE()   GDRAW_CMD(Command::fillEllipse)
 
#define GDRAW_START_ANGLE(angle)   GDRAW_REG_UINT16(OpCode::store, startAngle, value)
 
#define GDRAW_ANGLE(angle)   GDRAW_REG_UINT16(OpCode::store, angle, value)
 
#define GDRAW_ARC(startAngle)   GDRAW_START_ANGLE(startAngle) GDRAW_CMD(Command::drawArc)
 
#define GDRAW_FILL_ARC(startAngle)   GDRAW_START_ANGLE(startAngle) GDRAW_CMD(Command::fillArc)
 
#define GDRAW_CIRCLE(radius)   GDRAW_RADIUS(radius) GDRAW_CMD(Command::drawCircle)
 
#define GDRAW_FILL_CIRCLE(radius)   GDRAW_RADIUS(radius) GDRAW_CMD(Command::fillCircle)
 
#define GDRAW_BEGIN_SUB(id)   GDRAW_ID(id) GDRAW_CMD(Command::beginSub)
 
#define GDRAW_END_SUB()   GDRAW_CMD(Command::endSub)
 
#define GDRAW_CALL(id)   GDRAW_ID(id) GDRAW_CMD(Command::call)
 
#define GDRAW_RESOURCE(id, dataType, kind)
 
#define GDRAW_DEFINE_CHARS(id, len, ...)   GDRAW_RESOURCE(id, DataType::charArray, ResourceKind::text), len, __VA_ARGS__,
 
#define GDRAW_DRAW_CHARS(len, ...)   GDRAW_DEFINE_CHARS(0, len, __VA_ARGS__) GDRAW_SELECT_TEXT(0) GDRAW_CMD(Command::drawText)
 
#define GDRAW_DRAW_TEXT(id)   GDRAW_SELECT_TEXT(id) GDRAW_CMD(Command::drawText)
 
#define GDRAW_FONT_STYLE(font_id, style_)   GDRAW_REG_UINT32(OpCode::store, style, GDRAW_MAKE_UINT32(uint32_t(style_), font_id))
 

Macro Definition Documentation

◆ GDRAW_ANGLE

#define GDRAW_ANGLE (   angle)    GDRAW_REG_UINT16(OpCode::store, angle, value)

◆ GDRAW_ARC

#define GDRAW_ARC (   startAngle)    GDRAW_START_ANGLE(startAngle) GDRAW_CMD(Command::drawArc)

◆ GDRAW_BEGIN_SUB

#define GDRAW_BEGIN_SUB (   id)    GDRAW_ID(id) GDRAW_CMD(Command::beginSub)

◆ GDRAW_BRUSH_COLOR

#define GDRAW_BRUSH_COLOR (   col)    GDRAW_REG_UINT32(OpCode::store, brushColor, uint32_t(col))

◆ GDRAW_CALL

#define GDRAW_CALL (   id)    GDRAW_ID(id) GDRAW_CMD(Command::call)

◆ GDRAW_CIRCLE

#define GDRAW_CIRCLE (   radius)    GDRAW_RADIUS(radius) GDRAW_CMD(Command::drawCircle)

◆ GDRAW_CMD

#define GDRAW_CMD (   cmd)    GDRAW_OPCODE(OpCode::execute) | GDRAW_TYPE(Type::uint8) | uint8_t(Graphics::Drawing::cmd),

◆ GDRAW_DEFINE_CHARS

#define GDRAW_DEFINE_CHARS (   id,
  len,
  ... 
)    GDRAW_RESOURCE(id, DataType::charArray, ResourceKind::text), len, __VA_ARGS__,

◆ GDRAW_DRAW_CHARS

#define GDRAW_DRAW_CHARS (   len,
  ... 
)    GDRAW_DEFINE_CHARS(0, len, __VA_ARGS__) GDRAW_SELECT_TEXT(0) GDRAW_CMD(Command::drawText)

◆ GDRAW_DRAW_TEXT

#define GDRAW_DRAW_TEXT (   id)    GDRAW_SELECT_TEXT(id) GDRAW_CMD(Command::drawText)

◆ GDRAW_ELLIPSE

#define GDRAW_ELLIPSE ( )    GDRAW_CMD(Command::drawEllipse)

◆ GDRAW_END_ANGLE

#define GDRAW_END_ANGLE (   value)    GDRAW_REG_UINT16(OpCode::store, endAngle, value) GDRAW_CMD(Command::angle)

◆ GDRAW_END_SUB

#define GDRAW_END_SUB ( )    GDRAW_CMD(Command::endSub)

◆ GDRAW_FIELD

#define GDRAW_FIELD (   value,
  shift 
)    uint8_t(uint8_t(Graphics::Drawing::value) << shift)

◆ GDRAW_FILL_ARC

#define GDRAW_FILL_ARC (   startAngle)    GDRAW_START_ANGLE(startAngle) GDRAW_CMD(Command::fillArc)

◆ GDRAW_FILL_CIRCLE

#define GDRAW_FILL_CIRCLE (   radius)    GDRAW_RADIUS(radius) GDRAW_CMD(Command::fillCircle)

◆ GDRAW_FILL_ELLIPSE

#define GDRAW_FILL_ELLIPSE ( )    GDRAW_CMD(Command::fillEllipse)

◆ GDRAW_FILL_RECT

#define GDRAW_FILL_RECT (   radius)    GDRAW_RADIUS(radius) GDRAW_CMD(Command::fillRect)

◆ GDRAW_FONT_STYLE

#define GDRAW_FONT_STYLE (   font_id,
  style_ 
)    GDRAW_REG_UINT32(OpCode::store, style, GDRAW_MAKE_UINT32(uint32_t(style_), font_id))

◆ GDRAW_ID

#define GDRAW_ID (   id_)    GDRAW_REG_UINT16(OpCode::store, id, id_)

◆ GDRAW_INT16

#define GDRAW_INT16 (   value)    uint8_t(abs(value)), uint8_t(abs(value) >> 8),

◆ GDRAW_LINE

#define GDRAW_LINE ( )    GDRAW_CMD(Command::line)

◆ GDRAW_LINE_TO

#define GDRAW_LINE_TO ( )    GDRAW_CMD(Command::lineto)

◆ GDRAW_MAKE_UINT32

#define GDRAW_MAKE_UINT32 (   w1,
  w2 
)    (uint32_t(w2) << 16) | uint32_t(w1)

◆ GDRAW_MOVE

#define GDRAW_MOVE ( )    GDRAW_CMD(Command::move)

◆ GDRAW_OFFSET_LENGTH

#define GDRAW_OFFSET_LENGTH (   off,
  len 
)    GDRAW_REG_UINT32(OpCode::store, length, GDRAW_MAKE_UINT32(len, off))

◆ GDRAW_OPCODE

#define GDRAW_OPCODE (   opcode)    GDRAW_FIELD(opcode, 6)

◆ GDRAW_PEN_COLOR

#define GDRAW_PEN_COLOR (   col)    GDRAW_REG_UINT32(OpCode::store, penColor, uint32_t(col))

◆ GDRAW_PEN_WIDTH

#define GDRAW_PEN_WIDTH (   width)    GDRAW_REG_UINT16(OpCode::store, penWidth, width)

◆ GDRAW_RADIUS

#define GDRAW_RADIUS (   value)    GDRAW_REG_UINT16(OpCode::store, radius, value)

◆ GDRAW_RECT

#define GDRAW_RECT (   radius)    GDRAW_RADIUS(radius) GDRAW_CMD(Command::drawRect)

◆ GDRAW_REG_INT16

#define GDRAW_REG_INT16 (   reg,
  value 
)
Value:
((value) < 0 ? GDRAW_OPCODE(OpCode::sub) : GDRAW_OPCODE(OpCode::add)) | GDRAW_TYPE(Type::uint16) | \
GDRAW_REGDEF(reg, 2), \
GDRAW_INT16(value)

◆ GDRAW_REG_UINT16

#define GDRAW_REG_UINT16 (   opcode,
  reg,
  value 
)    GDRAW_OPCODE(opcode) | GDRAW_TYPE(Type::uint16) | GDRAW_REGDEF(reg, 2), GDRAW_UINT16(value)

◆ GDRAW_REG_UINT32

#define GDRAW_REG_UINT32 (   opcode,
  reg,
  value 
)    GDRAW_OPCODE(opcode) | GDRAW_TYPE(Type::uint32) | GDRAW_REGDEF(reg, 4), GDRAW_UINT32(value)

◆ GDRAW_REG_UINT8

#define GDRAW_REG_UINT8 (   opcode,
  reg,
  value 
)    GDRAW_OPCODE(opcode) | GDRAW_TYPE(Type::uint8) | GDRAW_REGDEF(reg, 1), uint8_t(value),

◆ GDRAW_REGDEF

#define GDRAW_REGDEF (   reg,
  size 
)    uint8_t(offsetof(Graphics::Drawing::Registers, reg) / size)

◆ GDRAW_RESET

#define GDRAW_RESET ( )    GDRAW_CMD(Command::reset)

◆ GDRAW_RESOURCE

#define GDRAW_RESOURCE (   id,
  dataType,
  kind 
)
Value:
GDRAW_ID(id) \
GDRAW_OPCODE(OpCode::store) | GDRAW_TYPE(Type::resource) | GDRAW_FIELD(Header::dataType, 2) | \
GDRAW_FIELD(Header::LengthSize::uint8, 1) | GDRAW_FIELD(Header::kind, 0)

◆ GDRAW_RESTORE

#define GDRAW_RESTORE ( )    GDRAW_CMD(Command::pop)

◆ GDRAW_SAVE

#define GDRAW_SAVE ( )    GDRAW_CMD(Command::push)

◆ GDRAW_SELECT_BRUSH

#define GDRAW_SELECT_BRUSH (   id)    GDRAW_REG_UINT16(OpCode::store, brushId, id)

◆ GDRAW_SELECT_PEN

#define GDRAW_SELECT_PEN (   id)    GDRAW_REG_UINT16(OpCode::store, penId, id)

◆ GDRAW_SELECT_TEXT

#define GDRAW_SELECT_TEXT (   id)    GDRAW_REG_UINT16(OpCode::store, textId, id)

◆ GDRAW_START_ANGLE

#define GDRAW_START_ANGLE (   angle)    GDRAW_REG_UINT16(OpCode::store, startAngle, value)

◆ GDRAW_STORE_BRUSH

#define GDRAW_STORE_BRUSH (   id)    GDRAW_ID(id) GDRAW_CMD(Command::storeBrush)

◆ GDRAW_STORE_PEN

#define GDRAW_STORE_PEN (   id)    GDRAW_ID(id) GDRAW_CMD(Command::storePen)

◆ GDRAW_TYPE

#define GDRAW_TYPE (   type)    GDRAW_FIELD(Header::type, 4)

◆ GDRAW_UINT16

#define GDRAW_UINT16 (   value)    uint8_t(value), uint8_t((value) >> 8),

◆ GDRAW_UINT32

#define GDRAW_UINT32 (   value)    uint8_t(value), uint8_t((value) >> 8), uint8_t((value) >> 16), uint8_t((value) >> 24),

◆ GDRAW_XABS

#define GDRAW_XABS (   x_)    GDRAW_REG_UINT16(OpCode::store, x2, x_)

◆ GDRAW_XREL

#define GDRAW_XREL (   cx)    GDRAW_REG_INT16(x2, cx)

◆ GDRAW_YABS

#define GDRAW_YABS (   y_)    GDRAW_REG_UINT16(OpCode::store, y2, y_)

◆ GDRAW_YREL

#define GDRAW_YREL (   cy)    GDRAW_REG_INT16(y2, cy)
uint16_t uint16
Definition: c_types.h:13
#define GDRAW_ID(id_)
Definition: Macros.h:68
#define GDRAW_TYPE(type)
Definition: Macros.h:44
#define GDRAW_FIELD(value, shift)
Definition: Macros.h:42
#define GDRAW_OPCODE(opcode)
Definition: Macros.h:43
uint8_t uint8
Definition: c_types.h:8