Luna/libui/include/ui/Canvas.h

31 lines
603 B
C++

#pragma once
#include <luna/Result.h>
#include <luna/Types.h>
#include <ui/Color.h>
#include <ui/Point.h>
#include <ui/Rect.h>
namespace ui
{
/**
* @brief A drawable surface.
*/
struct Canvas
{
int width;
int height;
int stride;
u8* ptr;
static Canvas create(u8* ptr, int width, int height);
Result<Canvas> subcanvas(Point begin, int width, int height, bool clamp);
Rect rect()
{
return Rect { .begin = { 0, 0 }, .width = width, .height = height };
}
void fill(Color color);
};
};