1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// This file is part of the 64k demo project.
// It provides reusable test helpers for GPU effect testing.
// Includes pixel validation utilities.
#pragma once
#include <cstdint>
#include <functional>
#include <vector>
// ============================================================================
// Pixel Validation Helpers
// ============================================================================
// Validate pixels using a predicate function
// Returns true if at least one pixel matches the predicate
bool validate_pixels(
const std::vector<uint8_t>& pixels, int width, int height,
std::function<bool(uint8_t r, uint8_t g, uint8_t b, uint8_t a)> predicate);
// Check if any pixel is non-black (rendered something)
bool has_rendered_content(const std::vector<uint8_t>& pixels, int width,
int height);
// Check if all pixels match a specific color (within tolerance)
bool all_pixels_match_color(const std::vector<uint8_t>& pixels, int width,
int height, uint8_t r, uint8_t g, uint8_t b,
uint8_t tolerance = 5);
// Compute simple hash of pixel data (for deterministic output checks)
uint64_t hash_pixels(const std::vector<uint8_t>& pixels);
|