Skip to content

IconForge: BYOND Parity + Tests, Optimizations, New Transforms#230

Merged
ZeWaka merged 22 commits intotgstation:masterfrom
itsmeowForks:iconforge-tests-rebased
Jul 10, 2025
Merged

IconForge: BYOND Parity + Tests, Optimizations, New Transforms#230
ZeWaka merged 22 commits intotgstation:masterfrom
itsmeowForks:iconforge-tests-rebased

Conversation

@itsmeow
Copy link
Copy Markdown
Contributor

@itsmeow itsmeow commented Jul 4, 2025

New Features

  • Adds x/y offset support to RUSTG_ICONFORGE_BLEND_ICON
  • Adds RUSTG_ICONFORGE_MAP_COLORS (Full Parity)
  • Adds RUSTG_ICONFORGE_FLIP (Full Parity)
  • Adds RUSTG_ICONFORGE_TURN (Partial Parity, only for 90deg turns)
  • Adds RUSTG_ICONFORGE_SHIFT (Full Parity)
  • Adds RUSTG_ICONFORGE_SWAP_COLOR (Full Parity)
  • Adds RUSTG_ICONFORGE_DRAW_BOX (Full Parity)
  • Adds or blend mode
  • Adds support for GAGS ColorMatrix layer type

Changes

No breaking changes.

  • BYOND Parity for all blend modes, within +/- 1 bit per pixel.
  • Optimizes most basic icon operations.
  • Optimizes pixel blending.
  • Removes allocation of Rgba structs for each blended pixel.
  • Re-uses Hex->RGB conversions where possible
  • Full BYOND Parity for some types of Scale()
  • Full BYOND Parity for delays adjustment during mixed-frame icon blending
  • Output icon states are now sorted by the position they are at in the input JSON object, rather than by name.

Tests

  • Adds parity tests for all supported icon operations
  • Adds parity test for GAGS configuration

image
image

@itsmeow itsmeow changed the title IconForge: BYOND Parity + Tests IconForge: BYOND Parity + Tests, Optimizations, New Transforms Jul 4, 2025
@ZeWaka ZeWaka merged commit 4a73c5b into tgstation:master Jul 10, 2025
4 checks passed
ZeWaka added a commit that referenced this pull request Jul 10, 2025
ZeWaka added a commit that referenced this pull request Jul 16, 2025
itsmeow added a commit to BeeStation/rust-g that referenced this pull request Feb 26, 2026
itsmeow pushed a commit to BeeStation/rust-g that referenced this pull request Feb 26, 2026
itsmeow added a commit to BeeStation/rust-g that referenced this pull request Feb 26, 2026
* fixes the clippy lints on nightly (tgstation#215)

* Adds a new time function, `formatted_timestamp` (tgstation#214)

* dmi_create_png is rgba instead of rgb (tgstation#217)

* add useragent to byond installer

* crate internal updates (tgstation#218)

* v3.9.0 (tgstation#219)

* Enable pathfinder by default (tgstation#220)

* Fix clippy URL lifetime lint (tgstation#223)

* Improve DM test functionality on Windows, fix regressions (tgstation#221)

* Adds `roll_dice`, an advanced xdy dice roller. (tgstation#216)

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>

* v3.11.0 (tgstation#224)

* Fix TOML dme test failing (tgstation#227)

* hash: optimize file hashing (tgstation#228)

* IconForge: DMI Generation, Code Reorganization, Improved Caching, Cleaner I/O (tgstation#213)

* Adds a new `uuid` module (tgstation#229)

* IconForge: BYOND Parity + Tests, Optimizations, New Transforms (tgstation#230)

* `clippy` lints for tgstation#230 (tgstation#233)

* Adds `http_request_fire_and_forget` (tgstation#232)

* DMI metadata reading and injection (tgstation#234)

* 4.0.0 (tgstation#235)

* dmi: Add QR code generation (tgstation#226)

* Bump `dmi` to 0.5.0, optimize `dmi_read_metadata` (tgstation#238)

* Update CI to target 516.1666 (tgstation#237)

* 4.1.0 (tgstation#239)

* makes `rustg_noise_poisson_map` around 8x faster (tgstation#240)

* IconForge: Headless Icon Generation (tgstation#236)

* `cargo update` & `cargo upgrade` & `png` fix (tgstation#241)

* assorted optimizations to `cellularnoise`, `dbpnoise`, and `worleynoise` (tgstation#243)

* v4.2.0 (tgstation#242)

* Fix attempt for CI

* hash: Adds ChaCha20 CSPRNG functions, updates TOTP generator, adds Base32 (tgstation#225)

* Handle errors in panic hook explicitly (tgstation#245)

* do not store Git information static (tgstation#247)

* Prevent `decode_base64` and `decode_base32` from panicking if given invalid base64 (tgstation#244)

* 4.3.0 (tgstation#249)

* fix iconforge generate_headless on win for bad paths not panicing (tgstation#248)

* 5.0.0 (tgstation#250)

* redo iconforge errors - 5.0.1 (tgstation#252)

* 6.0.0 - drop windows 7 support (tgstation#251)

* fix spritesheet gen on linux (tgstation#255)

* cargo update and clippy (tgstation#253)

* 6.0.1 - and `cargo update` (tgstation#256)

---------

Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Comrade Niobe <126028983+ComradeNiobe@users.noreply.github.com>
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: Y0SH1M4S73R <y0sh1m4s73r@gmail.com>
Co-authored-by: Ivy <distributivgesetz93@gmail.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants