31#ifndef __ARM_2D_DRAW_H__
32#define __ARM_2D_DRAW_H__
36#include "arm_2d_types.h"
43# pragma clang diagnostic push
44# pragma clang diagnostic ignored "-Wunknown-warning-option"
45# pragma clang diagnostic ignored "-Wreserved-identifier"
46# pragma clang diagnostic ignored "-Wdeclaration-after-statement"
47# pragma clang diagnostic ignored "-Wsign-conversion"
48# pragma clang diagnostic ignored "-Wpadded"
49# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
60#define arm_2dp_c8bit_draw_point arm_2dp_gray8_draw_point
61#define arm_2dp_rgb16_draw_point arm_2dp_rgb565_draw_point
62#define arm_2dp_rgb32_draw_point arm_2dp_cccn888_draw_point
64#define arm_2d_c8bit_draw_point(__TARGET_ADDR, \
67 arm_2dp_gray8_draw_point(NULL, \
73#define arm_2d_rgb16_draw_point(__TARGET_ADDR, \
76 arm_2dp_rgb565_draw_point(NULL, \
82#define arm_2d_rgb32_draw_point(__TARGET_ADDR, \
85 arm_2dp_cccn888_draw_point(NULL, \
91#define arm_2d_gray8_draw_point(__TARGET_ADDR, \
95 arm_2dp_gray8_draw_point(NULL, \
101#define arm_2d_rgb565_draw_point(__TARGET_ADDR, \
105 arm_2dp_rgb565_draw_point(NULL, \
111#define arm_2d_cccn888_draw_point(__TARGET_ADDR, \
115 arm_2dp_cccn888_draw_point(NULL, \
122#define arm_2d_c8bit_draw_pattern( __PATTERN_ADDR, \
128 arm_2dp_c8bit_draw_pattern(NULL, \
136#define arm_2d_rgb16_draw_pattern( __PATTERN_ADDR, \
142 arm_2dp_rgb16_draw_pattern(NULL, \
150#define arm_2d_rgb32_draw_pattern( __PATTERN_ADDR, \
156 arm_2dp_rgb32_draw_pattern(NULL, \
164#define arm_2d_c8bit_fill_colour( __TARGET_ADDR, \
167 arm_2dp_c8bit_fill_colour(NULL, \
172#define arm_2d_rgb16_fill_colour( __TARGET_ADDR, \
175 arm_2dp_rgb16_fill_colour(NULL, \
180#define arm_2d_rgb32_fill_colour( __TARGET_ADDR, \
183 arm_2dp_rgb32_fill_colour(NULL, \
291 uint_fast8_t chColour)
293 assert(NULL != ptTarget);
294 assert(ptTarget->tInfo.bIsRoot);
295 assert(tLocation.iX < ptTarget->tRegion.tSize.iWidth);
296 assert(tLocation.iY < ptTarget->tRegion.tSize.iHeight);
298 uint8_t *pchPoint = ptTarget->pchBuffer
299 + tLocation.iY * ptTarget->tRegion.tSize.iWidth
301 *pchPoint = (uint8_t)chColour;
315 uint_fast16_t hwColour)
317 assert(NULL != ptTarget);
318 assert(ptTarget->tInfo.bIsRoot);
319 assert(tLocation.iX < ptTarget->tRegion.tSize.iWidth);
320 assert(tLocation.iY < ptTarget->tRegion.tSize.iHeight);
322 uint16_t *phwPoint = ptTarget->phwBuffer
323 + tLocation.iY * ptTarget->tRegion.tSize.iWidth
325 *phwPoint = (uint16_t)hwColour;
341 assert(NULL != ptTarget);
342 assert(ptTarget->tInfo.bIsRoot);
343 assert(tLocation.iX < ptTarget->tRegion.tSize.iWidth);
344 assert(tLocation.iY < ptTarget->tRegion.tSize.iHeight);
346 uint32_t *pwPoint = ptTarget->pwBuffer
347 + tLocation.iY * ptTarget->tRegion.tSize.iWidth
373 uint_fast8_t chColour,
397 uint_fast16_t hwColour,
456 uint8_t chForeColour,
457 uint8_t chBackColour);
477 uint16_t hwForeColour,
478 uint16_t hwBackColour);
498 uint32_t wForeColour,
499 uint32_t wBackColour);
518 uint_fast8_t chColour);
533 uint_fast16_t hwColour);
553#if defined(__clang__)
554# pragma clang diagnostic pop