PicoGraphics: Various compile warning fixes for Pretty Poly.

pull/783/head
Phil Howard 2023-05-25 11:51:12 +01:00
rodzic cc7219b44a
commit 09a58b269f
3 zmienionych plików z 10 dodań i 9 usunięć

Wyświetl plik

@ -268,7 +268,7 @@ namespace pimoroni {
pretty_poly::contour_t<int> contour(new pretty_poly::point_t<int>[points.size()], points.size()); pretty_poly::contour_t<int> contour(new pretty_poly::point_t<int>[points.size()], points.size());
for(auto i = 0; i < points.size(); i++) { for(auto i = 0u; i < points.size(); i++) {
contour.points[i] = pretty_poly::point_t<int>(points[i].x, points[i].y); contour.points[i] = pretty_poly::point_t<int>(points[i].x, points[i].y);
} }

Wyświetl plik

@ -116,7 +116,7 @@ namespace pretty_poly {
rect_t bounds() { rect_t bounds() {
T minx = this->points[0].x, maxx = minx; T minx = this->points[0].x, maxx = minx;
T miny = this->points[0].y, maxy = miny; T miny = this->points[0].y, maxy = miny;
for(auto i = 1; i < this->count; i++) { for(auto i = 1u; i < this->count; i++) {
minx = min(minx, this->points[i].x); minx = min(minx, this->points[i].x);
miny = min(miny, this->points[i].y); miny = min(miny, this->points[i].y);
maxx = max(maxx, this->points[i].x); maxx = max(maxx, this->points[i].x);

Wyświetl plik

@ -50,9 +50,10 @@ namespace pretty_poly {
} }
void init(void *memory) { void init(void *memory) {
uintptr_t m = (uintptr_t)memory;
tile_buffer = new(memory) uint8_t[tile_buffer_size]; tile_buffer = new(memory) uint8_t[tile_buffer_size];
node_counts = new(memory + tile_buffer_size) unsigned[node_buffer_size]; node_counts = new((void *)(m + tile_buffer_size)) unsigned[node_buffer_size];
nodes = new(memory + tile_buffer_size + (node_buffer_size * sizeof(unsigned))) int[node_buffer_size][32]; nodes = new((void *)(m + tile_buffer_size + (node_buffer_size * sizeof(unsigned)))) int[node_buffer_size][32];
} }
void set_options(tile_callback_t callback, antialias_t antialias, rect_t clip) { void set_options(tile_callback_t callback, antialias_t antialias, rect_t clip) {
@ -66,7 +67,7 @@ namespace pretty_poly {
} }
// dy step (returns 1, 0, or -1 if the supplied value is > 0, == 0, < 0) // dy step (returns 1, 0, or -1 if the supplied value is > 0, == 0, < 0)
__attribute__((always_inline)) int sign(int v) { inline constexpr int sign(int v) {
// assumes 32-bit int/unsigned // assumes 32-bit int/unsigned
return ((unsigned)-v >> 31) - ((unsigned)v >> 31); return ((unsigned)-v >> 31) - ((unsigned)v >> 31);
} }
@ -117,7 +118,7 @@ namespace pretty_poly {
// consume accumulated error // consume accumulated error
while(e > dy) {e -= dy; x += xinc;} while(e > dy) {e -= dy; x += xinc;}
if(y >= 0 && y < node_buffer_size) { if(y >= 0 && y < (int)node_buffer_size) {
// clamp node x value to tile bounds // clamp node x value to tile bounds
int nx = max(min(x, (int)(tile_bounds.w << settings::antialias)), 0); int nx = max(min(x, (int)(tile_bounds.w << settings::antialias)), 0);
debug(" + adding node at %d, %d\n", x, y); debug(" + adding node at %d, %d\n", x, y);
@ -142,7 +143,7 @@ namespace pretty_poly {
(((contour.points[contour.count - 1].y * scale) << settings::antialias) / 65536) + oy (((contour.points[contour.count - 1].y * scale) << settings::antialias) / 65536) + oy
); );
for(int i = 0; i < contour.count; i++) { for(auto i = 0u; i < contour.count; i++) {
point_t<int> point( point_t<int> point(
(((contour.points[i].x * scale) << settings::antialias) / 65536) + ox, (((contour.points[i].x * scale) << settings::antialias) / 65536) + ox,
(((contour.points[i].y * scale) << settings::antialias) / 65536) + oy (((contour.points[i].y * scale) << settings::antialias) / 65536) + oy
@ -155,14 +156,14 @@ namespace pretty_poly {
} }
void render_nodes(const tile_t &tile) { void render_nodes(const tile_t &tile) {
for(auto y = 0; y < node_buffer_size; y++) { for(auto y = 0; y < (int)node_buffer_size; y++) {
if(node_counts[y] == 0) { if(node_counts[y] == 0) {
continue; continue;
} }
std::sort(&nodes[y][0], &nodes[y][0] + node_counts[y]); std::sort(&nodes[y][0], &nodes[y][0] + node_counts[y]);
for(auto i = 0; i < node_counts[y]; i += 2) { for(auto i = 0u; i < node_counts[y]; i += 2) {
int sx = nodes[y][i + 0]; int sx = nodes[y][i + 0];
int ex = nodes[y][i + 1]; int ex = nodes[y][i + 1];