tvOS thumbnails exceed the requested point-size bound at 1× display scale

Closed Beginner friendly
#42 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

A pull request for this has already been merged.

  • #44 by @JoeMatt — merged

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
ios, swift
Domain
mobile

Research direction

Read DeltaSkin+Rendering.swift and RenderingTests.rendersThumbnails(name:) in the SkinKit UI tests, then run the supplied tvOS simulator reproduction. Trace how maxDimension in points and the 2× raster density are handled by fresh renders and disk-cache loads. Done when all 23 fixture skins return images whose longest side is at most 121 points while retaining 2× density.

Written by the indexing model from the issue text.

Description

The existing SkinKitUITests RenderingTests.rendersThumbnails(name:) fails for all 23 fixture skins on the tvOS 26.5 simulator. It requests maxDimension: 120 and asserts the UIImage longest side is at most 121 points.

DeltaSkin+Rendering.swift computes canvas points as thumbSize * thumbnailPixelScale / UIScreen.main.scale. At TV scale 1, a 120-point thumbnail returns a 240-point UIImage. Disk cache loads also use screen scale. The protocol documents maxDimension in points and the default implementation returns a 2× image at the requested point size.

Observed while validating the separate control-artwork regression in #41. The thumbnail renderer and this test are unchanged from main 9fa866b11fdc7d70af04c5f7aa3e9fcce20b063c. All six new control-artwork fallback tests pass on tvOS; the iOS UI suite passes 102 tests. Keep thumbnail raster density at 2× while returning a consistent point size on fresh renders and disk-cache hits.

Reproduction: xcodebuild test -scheme SkinKit-Package -destination 'platform=tvOS Simulator,id=<dedicated-simulator>' -only-testing:SkinKitUITests -parallel-testing-enabled NO CODE_SIGNING_ALLOWED=NO.

Part of #7.

Dominant language
Swift
Stars
0
Forks
0
Avg merge
2h 38m
Merged PRs (30d)
15

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Provenance-Emu/SkinKit

All issues in Provenance-Emu/SkinKit

Similar issues

More Swift issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.