Skip to content

Rebuild native renderer binaries - #752

Merged
SimonCropp merged 1 commit into
viewer-imagesfrom
native-binaries-viewer-images
Aug 13, 2026
Merged

Rebuild native renderer binaries#752
SimonCropp merged 1 commit into
viewer-imagesfrom
native-binaries-viewer-images

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Rebuilt diffengine_viewer from native/ for the four RIDs that load one.
Windows is not among them: that head renders with WinForms.

Produced by the build-native workflow from 8e31213.

@SimonCropp
SimonCropp merged commit b027a8e into viewer-images Aug 13, 2026
1 check passed
@SimonCropp
SimonCropp deleted the native-binaries-viewer-images branch August 13, 2026 23:14
SimonCropp added a commit that referenced this pull request Aug 13, 2026
* Compare images in the viewer

Image files are compared as pictures rather than as text, wherever they turn
up: a pair passed on the command line, or a move or delete the tray is
holding. Previously they were read as text, which meant a pane of mojibake,
and DiffEngine never routed one here at all.

FileSide.Read decides text or picture by extension, because the expected side
of a brand new snapshot has no bytes to sniff and still has to render as a
missing image rather than empty text. ImageRows then produces the same aligned
Row lists DiffRows does, one per property and coloured against the other side,
so an image comparison is described by rows every head already draws. Whether
the two are the same file belongs to the pair rather than to either side, so
it is the status line.

Pane.Image is an enrichment on top of that: all three heads paint the picture
under those rows, each with its toolkit's own decoder, so which formats draw
is per platform while what the comparison says is not. All three fit from the
file header's dimensions rather than the decoder's, one blank line under the
pane's rows, so the placement rule lives in one place.

Headers are sniffed by hand rather than by System.Drawing, which does not
exist on macOS or Linux, and the extension list lives in DiffEngine and is
linked into the viewer so the tool registration and the renderer cannot
disagree.

DEVIEW_VERSION 6: DeviewPane carries the picture. That widens an array
element, so an older library would read every pane after the first at the
wrong offset and the committed native binaries have to be rebuilt before they
will load.

* Rebuild native renderer binaries (#752)

Co-authored-by: SimonCropp <122666+SimonCropp@users.noreply.github.com>

* Restore DiffRunner.file1.txt

DiffRunnerTests reads two fixtures from beside its own source file, and one of
them was missing from the working tree and got swept into the previous commit
as a deletion. LaunchAsync guards that both paths exist before it does anything
else, so the four launch tests failed on the Windows CI job.

* Accept the image pixel baselines

Captured by the Linux and macOS jobs, which build the shim from source, so they
describe the renderers in this branch rather than the committed binaries.

Both heads draw the two pictures at native size, one blank line under the
property rows, on a checkerboard the transparent half shows through. The byte
counts read the same on all three platforms, which is what SamplePng's stored
deflate blocks are for.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: SimonCropp <122666+SimonCropp@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

Development

Successfully merging this pull request may close these issues.

1 participant