Round display support (gabbro): round template variants and arc status #62
Labels
No labels
area:companion
area:docs
area:shared
area:tooling
area:watchapp
blocker
kind:chore
kind:feature
kind:spike
kind:test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/PedalPebble#62
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Make the Pebble Round 2 a device the app was designed for rather than tolerated on. 260x260 round, but a circle of that size inscribes only about 184x184 - so a screen with more total pixels than emery has less usable area for grids.
Acceptance criteria
HERO1centred with ~170 px digits - the template that suits a circle bestHERO2hero centred, the two cells inset to the chord width at their vertical positionQUADinset to the inscribed square, cells about 92x92GRID6falls back toQUADongabbro, as it does onbasaltgraphics_draw_arc()andgpoint_from_polar(), with glyphs placed radially - a straight strip has almost no width on a circleNAVcentred turn arrow with arc-aligned textMAPround-native: a heading-up centred map, which suits a circle better than a rectanglePBL_ROUND/PBL_IF_ROUND_ELSE(), never with runtime screen-size checkslayer_get_bounds()gbitmap_get_data_row_info()used wherever the framebuffer is touched directly; rows are shorter near the top and bottom of a round displaytext_layer_enable_screen_text_flow_and_paging()enabled for text that can overflow, so it follows the curve rather than clippinggabbroemulator and, where hardware allows, on deviceFiles
watchapp/src/c/page_render.cwatchapp/src/c/status_bar.cNotes
Rectangular layouts do NOT auto-adapt to round - the SDK's automatic scaling is chalk to gabbro, which is round to round. See docs/DESIGN.md section 3 and docs/DECISIONS.md D24.
Update — 2026-09-01: moved to Phase 1b, and the DPI figure was wrong
Moved to Phase 1b — Generalise the display (D32). Round support is not cancelled; it is better
designed after a few real rides on the rectangle than before the first one, and it was landing before
#4 had confirmed the transport the whole architecture depends on.
Correction: the Round 2 is ~200 DPI, not 283. 260 px across a 1.3″ diagonal is about 200 — the
same density as the Time 2 (200 × 228 over 1.5″ ≈ 202 DPI). See the D24 correction.
scale is needed — but
gabbrotext cannot be smaller in pixels either, because the density itwas credited with is not there
resources
QUAD's emphasised slot 1 (D29) works within the inscribed squareemery,gabbroorbasalt" as an assertion rather than a look in the emulator