Browse Source
remove lanczos and convert to perl, add scripts to find unused strings, better optimised assets script
remove lanczos and convert to perl, add scripts to find unused strings, better optimised assets script
Signed-off-by: lizzie <lizzie@eden-emu.dev>pull/2749/head
No known key found for this signature in database
GPG Key ID: 287378CADCAB13
5 changed files with 52 additions and 56 deletions
-
7tools/README.md
-
7tools/find-unused-strings.sh
-
40tools/lanczos-gen.pl
-
48tools/lanczos_gen.c
-
6tools/optimize-assets.sh
@ -0,0 +1,7 @@ |
|||
#!/bin/sh -e |
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|||
# SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
cat src/android/app/src/main/res/values/strings.xml \ |
|||
| grep 'string name="' | awk -F'"' '$0=$2' \ |
|||
| xargs -I {} sh -c 'grep -qirnw R.string.'{}' src/android/app/src || echo '{} |
|||
@ -0,0 +1,40 @@ |
|||
#!/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; |
|||
@ -1,48 +0,0 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|||
// SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
// clang -lm tools/lanczos_gen.c -o tools/lanczos_gen && ./tools/lanczos_gen |
|||
#include <stdio.h> |
|||
#include <math.h> |
|||
|
|||
double sinc(double x) { |
|||
return x == 0.0f ? 1.0f : sin(M_PI * x) / (M_PI * x); |
|||
} |
|||
|
|||
typedef struct vec2 { |
|||
double x; |
|||
double y; |
|||
} vec2; |
|||
|
|||
double lanczos(vec2 v, float a) { |
|||
double d = sqrt(v.x * v.x + v.y * v.y); |
|||
return sinc(d) / sinc(d / a); |
|||
} |
|||
|
|||
int main(int argc, char* argv[]) { |
|||
const int r = 3; //radius (1 = 3 steps) |
|||
const int k_size = (r * 2 + 1) * (r * 2 + 1); |
|||
double w_sum = 0.0f; |
|||
// kernel size = (r * 2 + 1) ^ 2 |
|||
printf("const float w_kernel[%i] = float[] (\n ", k_size); |
|||
double factor = 1.0f / ((double)r + 1.0f); |
|||
for (int x = -r; x <= r; x++) |
|||
for (int y = -r; y <= r; y++) { |
|||
double w = lanczos((vec2){ .x = x, .y = y }, (double)r); |
|||
printf("%lff, ", w); |
|||
w_sum += w; |
|||
} |
|||
printf("\n);\n"); |
|||
printf("const vec2 w_pos[%i] = vec2[] (\n ", k_size); |
|||
for (int x = -r; x <= r; x++) |
|||
for (int y = -r; y <= r; y++) { |
|||
vec2 kp = (vec2){ |
|||
.x = x * factor, |
|||
.y = y * factor |
|||
}; |
|||
printf("vec2(%lff, %lff), ", kp.x, kp.y); |
|||
} |
|||
printf("\n);\n"); |
|||
printf("const float w_sum = %lff;\n", w_sum); |
|||
return 0; |
|||
} |
|||
@ -1,9 +1,5 @@ |
|||
#!/bin/sh -e |
|||
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project |
|||
# SPDX-License-Identifier: GPL-3.0-or-later |
|||
|
|||
# Optimizes assets of Eden (requires OptiPng) |
|||
|
|||
which optipng || exit |
|||
find . -type f -name "*.png" -exec optipng -o7 {} \; |
|||
find . -type f -iname '*.png' -print0 | xargs -0 -P 16 -I {} optipng -o7 {} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue