[FL-2627] Flipper applications: SDK, build and debug system (#1387)
* Added support for running applications from SD card (FAPs - Flipper Application Packages) * Added plugin_dist target for fbt to build FAPs * All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default * Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them * Added debugging support for FAPs with fbt debug & VSCode * Added public firmware API with automated versioning Co-authored-by: hedger <hedger@users.noreply.github.com> Co-authored-by: SG <who.just.the.doctor@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
90
applications/services/gui/canvas_i.h
Normal file
90
applications/services/gui/canvas_i.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/**
|
||||
* @file canvas_i.h
|
||||
* GUI: internal Canvas API
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "canvas.h"
|
||||
#include <u8g2.h>
|
||||
|
||||
/** Canvas structure
|
||||
*/
|
||||
struct Canvas {
|
||||
u8g2_t fb;
|
||||
CanvasOrientation orientation;
|
||||
uint8_t offset_x;
|
||||
uint8_t offset_y;
|
||||
uint8_t width;
|
||||
uint8_t height;
|
||||
};
|
||||
|
||||
/** Allocate memory and initialize canvas
|
||||
*
|
||||
* @return Canvas instance
|
||||
*/
|
||||
Canvas* canvas_init();
|
||||
|
||||
/** Free canvas memory
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
*/
|
||||
void canvas_free(Canvas* canvas);
|
||||
|
||||
/** Reset canvas drawing tools configuration
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
*/
|
||||
void canvas_reset(Canvas* canvas);
|
||||
|
||||
/** Commit canvas. Send buffer to display
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
*/
|
||||
void canvas_commit(Canvas* canvas);
|
||||
|
||||
/** Get canvas buffer.
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
*
|
||||
* @return pointer to buffer
|
||||
*/
|
||||
uint8_t* canvas_get_buffer(Canvas* canvas);
|
||||
|
||||
/** Get canvas buffer size.
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
*
|
||||
* @return size of canvas in bytes
|
||||
*/
|
||||
size_t canvas_get_buffer_size(Canvas* canvas);
|
||||
|
||||
/** Set drawing region relative to real screen buffer
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
* @param offset_x x coordinate offset
|
||||
* @param offset_y y coordinate offset
|
||||
* @param width width
|
||||
* @param height height
|
||||
*/
|
||||
void canvas_frame_set(
|
||||
Canvas* canvas,
|
||||
uint8_t offset_x,
|
||||
uint8_t offset_y,
|
||||
uint8_t width,
|
||||
uint8_t height);
|
||||
|
||||
/** Set canvas orientation
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
* @param orientation CanvasOrientation
|
||||
*/
|
||||
void canvas_set_orientation(Canvas* canvas, CanvasOrientation orientation);
|
||||
|
||||
/** Get canvas orientation
|
||||
*
|
||||
* @param canvas Canvas instance
|
||||
*
|
||||
* @return CanvasOrientation
|
||||
*/
|
||||
CanvasOrientation canvas_get_orientation(const Canvas* canvas);
|
Reference in New Issue
Block a user