Cache rendered chars, experimental null char handling #4

Merged
vinzenz merged 5 commits from next into main 2025-07-12 14:23:22 +02:00
4 changed files with 8 additions and 20 deletions
Showing only changes of commit c3b9ecf402 - Show all commits

14
Cargo.lock generated
View file

@ -760,17 +760,6 @@ dependencies = [
"hashbrown",
]
[[package]]
name = "inherent"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c38228f24186d9cc68c729accb4d413be9eaed6ad07ff79e0270d9e56f3de13"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
@ -1522,11 +1511,12 @@ dependencies = [
[[package]]
name = "servicepoint"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b04582e916474f1bc1605cad3773262c425d9062b487e49a0df59662f2cca8d"
dependencies = [
"bitvec",
"bzip2",
"flate2",
"inherent",
"log",
"once_cell",
"rust-lzma",

View file

@ -32,7 +32,6 @@ softbuffer = "0.4.6"
[dependencies.servicepoint]
version = "0.16.0"
features = ["all_compressions"]
path = "../servicepoint-uniffi3"
[profile.release]
lto = true # Enable link-time optimization

View file

@ -75,6 +75,7 @@
NIX_LD_LIBRARY_PATH = LD_LIBRARY_PATH;
NIX_LD = pkgs.stdenv.cc.bintools.dynamicLinker;
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
RUST_BACKTRACE = "1";
};
}
);

View file

@ -7,7 +7,7 @@ use log::{debug, error, info, trace, warn};
use servicepoint::{
BinaryOperation, BitVecCommand, Bitmap, BitmapCommand, BrightnessGrid,
BrightnessGridCommand, CharGridCommand, ClearCommand, CompressionCode,
Cp437GridCommand, FadeOutCommand, GlobalBrightnessCommand,
Cp437GridCommand, FadeOutCommand, GlobalBrightnessCommand, Grid, GridMut,
HardResetCommand, Origin, TypedCommand, PIXEL_COUNT, PIXEL_WIDTH,
TILE_SIZE,
};
@ -195,17 +195,15 @@ impl CommandExecute for CharGridCommand {
let char = grid.get(char_x, char_y);
trace!("drawing {char}");
let tile_x = char_x + x;
let tile_y = char_y + y;
let pixel_x = (char_x + x) * TILE_SIZE;
let pixel_y = (char_y + y) * TILE_SIZE;
if let Err(e) = context.font_renderer.render(
char,
&mut display
.window_mut(
tile_x * TILE_SIZE,
tile_y * TILE_SIZE,
TILE_SIZE,
TILE_SIZE,
pixel_x..pixel_x + TILE_SIZE,
pixel_y..pixel_y + TILE_SIZE,
)
.unwrap(),
) {