RenderDoc checklist inspired by writeup of Charles G. of LunarG Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2749 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
40 lines
1.2 KiB
Perl
40 lines
1.2 KiB
Perl
#!/usr/bin/perl
|
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
use strict;
|
|
use warnings;
|
|
sub generate_lanczos {
|
|
my $pi = 3.14159265358979;
|
|
sub sinc {
|
|
if ($_[0] eq 0.0) {
|
|
return 1.0;
|
|
} else {
|
|
return sin($pi * $_[0]) / ($pi * $_[0]);
|
|
}
|
|
}
|
|
sub lanczos {
|
|
my $d = sqrt($_[0] * $_[0] + $_[1] * $_[1]);
|
|
return sinc($d) / sinc($d / $_[2]);
|
|
}
|
|
my $r = 3.0; #radius (1 = 3 steps)
|
|
my $k_size = ($r * 2.0 + 1.0) * ($r * 2.0 + 1.0);
|
|
my $w_sum = \0.0;
|
|
my $factor = 1.0 / ($r + 1.0);
|
|
#kernel size = (r * 2 + 1) ^ 2
|
|
printf("const float w_kernel[%i] = float[] (\n ", $k_size);
|
|
for (my $x = -$r; $x <= $r; $x++) {
|
|
for (my $y = -$r; $y <= $r; $y++) {
|
|
my $w = lanczos($x, $y, $r);
|
|
printf("%f, ", $w);
|
|
$w_sum += $w;
|
|
}
|
|
}
|
|
printf("\n);\nconst vec2 w_pos[%i] = vec[](\n ", $k_size);
|
|
for (my $x = -$r; $x <= $r; $x++) {
|
|
for (my $y = -$r; $y <= $r; $y++) {
|
|
printf("vec2(%f, %f), ", $x * $factor, $y * $factor);
|
|
}
|
|
}
|
|
printf("\n);\nconst float w_sum = %f;\n", $w_sum);
|
|
}
|
|
generate_lanczos;
|