34 lines
1021 B
C++
34 lines
1021 B
C++
|
|
#pragma once
|
|
|
|
/*
|
|
Experimental bilinearn downscaling algorithm. Not tested yet and completely
|
|
"vibe-coded" by ai.
|
|
|
|
If you use this and find an issue then please report it.
|
|
*/
|
|
|
|
#include "fl/int.h"
|
|
#include "crgb.h"
|
|
|
|
namespace fl {
|
|
|
|
class XYMap;
|
|
|
|
void downscale(const CRGB *src, const XYMap &srcXY, CRGB *dst,
|
|
const XYMap &dstXY);
|
|
|
|
// Optimized versions for downscaling by 50%. This is here for testing purposes
|
|
// mostly. You should prefer to use downscale(...) instead of calling these
|
|
// functions. It's important to note that downscale(...) will invoke
|
|
// downscaleHalf(...) automatically when the source and destination are half the
|
|
// size of each other.
|
|
void downscaleHalf(const CRGB *src, fl::u16 srcWidth, fl::u16 srcHeight,
|
|
CRGB *dst);
|
|
void downscaleHalf(const CRGB *src, const XYMap &srcXY, CRGB *dst,
|
|
const XYMap &dstXY);
|
|
void downscaleArbitrary(const CRGB *src, const XYMap &srcXY, CRGB *dst,
|
|
const XYMap &dstXY);
|
|
|
|
} // namespace fl
|