32#include <Pt/Gfx/Api.h>
33#include <Pt/Gfx/ViewBase.h>
58concept PixelLike = std::destructible<P> &&
requires {
59 typename P::FormatType;
60 typename P::ColorType;
61} &&
requires(P p,
const P cp,
62 const typename P::ColorType& color,
63 typename P::ColorType* colors,
65 Pt::ssize_t n, std::size_t len)
70 { p = color } -> std::same_as<P&>;
75 { cp.view() } -> std::same_as<const ViewBase&>;
76 { cp.base() } -> std::same_as<const Pt::uint8_t*>;
77 { p.base() } -> std::same_as<Pt::uint8_t*>;
84 { cp.getColor() } -> std::same_as<typename P::ColorType>;
85 cp.getColors(colors, len);
89 p.assign(colors, len);
93 { cp.equals(cp) } -> std::same_as<bool>;
106concept ConstPixelLike = std::destructible<P> &&
requires {
107 typename P::FormatType;
108 typename P::ColorType;
109} &&
requires(P p,
const P cp,
110 typename P::ColorType* colors,
112 Pt::ssize_t n, std::size_t len)
119 p.reset(cview, n, n);
122 { cp.view() } -> std::same_as<const ViewBase&>;
123 { cp.base() } -> std::same_as<const Pt::uint8_t*>;
130 { cp.getColor() } -> std::same_as<typename P::ColorType>;
131 cp.getColors(colors, len);
133 { cp.equals(cp) } -> std::same_as<bool>;
140typename T::Traits::Pixel pixel(T& source,
141 Pt::ssize_t x, Pt::ssize_t y)
143 return typename T::Traits::Pixel(source, x, y);
148typename T::Traits::ConstPixel pixel(
const T& source,
149 Pt::ssize_t x, Pt::ssize_t y)
151 return typename T::Traits::ConstPixel(source, x, y);
157 Pt::ssize_t x, Pt::ssize_t y)
165 Pt::ssize_t x, Pt::ssize_t y)
Read-only cursor to one pixel.
Definition ImageFormat.h:345
Cursor to one pixel.
Definition ImageFormat.h:219
Width, height and stride of an image or view.
Definition ViewBase.h:50
Graphics and imaging services.
Definition Api-Argb32Image.h:12
Core module.
Definition Allocator.h:33