|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Live viewport: where it is looking, how magnified, and what it owes the panel. More...
#include <zoom.h>
Data Fields | |
| zoom_source_t | src |
| Bound source. | |
| zoom_scratch_t | scratch |
| Caller-owned composite buffers. | |
| ra8_ui_rect_t | dst |
| Viewport in framebuffer pixels. | |
| int32_t | anchor_x |
| Plane column shown at dst.x. | |
| int32_t | anchor_y |
| Plane row shown at dst.y. | |
| uint32_t | last_input_ms |
| Timestamp of the last viewport change. | |
| uint16_t | settle_ms |
| Input silence before the quality repaint. | |
| uint16_t | strip_rows |
| Destination rows per composite strip. | |
| uint8_t | scale |
| Current integer magnification. | |
| uint8_t | scale_max |
| Ladder ceiling for this view. | |
| zoom_policy_t | policy |
| Waveform scheduling policy. | |
| zoom_refresh_t | pending_kind |
| Waveform the owed flush should use. | |
| bool | pending |
| A flush is owed. | |
| bool | settle_armed |
| A quality repaint is still due after settling. | |
| bool | active |
| The view is open. | |
Live viewport: where it is looking, how magnified, and what it owes the panel.
Opaque by convention – read it through the accessors, never write it. The two anchor fields are the state that matters and they are in magnified-plane coordinates (see the file docblock), so anchor_x + c is the plane column shown at destination column c and (anchor_x + c) / scale is the source column.
| State | Event | Next state | Action |
|---|---|---|---|
| closed | view_open | quality pending | anchor from focus, clamp |
| any pending | view_present | shown | hand the rect + waveform to the caller |
| shown | view_pan / view_set_scale | fast (responsive) or quality pending | re-clamp anchor, arm settle |
| shown | view_tick past settle_ms | quality pending | disarm settle |
| any | view_close | closed | nothing owed |
| bool zoom_view_t::active |
The view is open.
Definition at line 487 of file zoom.h.
Referenced by internal_render_ready(), internal_view_adopt(), zoom_view_active(), zoom_view_close(), zoom_view_invalidate(), zoom_view_open(), zoom_view_pan(), zoom_view_pan_dir(), zoom_view_present(), zoom_view_rebind(), zoom_view_set_scale(), zoom_view_tick(), and zoom_view_window().
| int32_t zoom_view_t::anchor_x |
Plane column shown at dst.x.
Definition at line 476 of file zoom.h.
Referenced by internal_emit_strip(), internal_expand_row(), internal_reclamp(), internal_view_adopt(), zoom_view_pan(), zoom_view_render(), zoom_view_set_scale(), and zoom_view_window().
| int32_t zoom_view_t::anchor_y |
Plane row shown at dst.y.
Definition at line 477 of file zoom.h.
Referenced by internal_emit_strip(), internal_fill_strip(), internal_reclamp(), internal_view_adopt(), zoom_view_pan(), zoom_view_set_scale(), and zoom_view_window().
| ra8_ui_rect_t zoom_view_t::dst |
Viewport in framebuffer pixels.
Definition at line 475 of file zoom.h.
Referenced by internal_emit_strip(), internal_fill_strip(), internal_reclamp(), internal_view_adopt(), zoom_view_pan_dir(), zoom_view_present(), zoom_view_render(), zoom_view_set_scale(), and zoom_view_window().
| uint32_t zoom_view_t::last_input_ms |
Timestamp of the last viewport change.
Definition at line 478 of file zoom.h.
Referenced by internal_touch(), internal_view_adopt(), and zoom_view_tick().
| bool zoom_view_t::pending |
A flush is owed.
Definition at line 485 of file zoom.h.
Referenced by internal_touch(), internal_view_adopt(), zoom_view_close(), zoom_view_present(), and zoom_view_tick().
| zoom_refresh_t zoom_view_t::pending_kind |
Waveform the owed flush should use.
Definition at line 484 of file zoom.h.
Referenced by internal_touch(), internal_view_adopt(), zoom_view_present(), and zoom_view_tick().
| zoom_policy_t zoom_view_t::policy |
Waveform scheduling policy.
Definition at line 483 of file zoom.h.
Referenced by internal_touch(), and internal_view_adopt().
| uint8_t zoom_view_t::scale |
Current integer magnification.
Definition at line 481 of file zoom.h.
Referenced by ez_draw_status(), ez_scene_tap(), internal_expand_row(), internal_fill_row(), internal_reclamp(), internal_view_adopt(), zoom_view_render(), zoom_view_set_scale(), and zoom_view_window().
| uint8_t zoom_view_t::scale_max |
Ladder ceiling for this view.
Definition at line 482 of file zoom.h.
Referenced by internal_view_adopt(), and zoom_view_set_scale().
| zoom_scratch_t zoom_view_t::scratch |
Caller-owned composite buffers.
Definition at line 474 of file zoom.h.
Referenced by internal_emit_strip(), internal_expand_row(), internal_fill_row(), internal_fill_strip(), and internal_view_adopt().
| bool zoom_view_t::settle_armed |
A quality repaint is still due after settling.
Definition at line 486 of file zoom.h.
Referenced by internal_touch(), internal_view_adopt(), zoom_view_close(), and zoom_view_tick().
| uint16_t zoom_view_t::settle_ms |
Input silence before the quality repaint.
Definition at line 479 of file zoom.h.
Referenced by internal_view_adopt(), and zoom_view_tick().
| zoom_source_t zoom_view_t::src |
Bound source.
Definition at line 473 of file zoom.h.
Referenced by internal_fill_row(), internal_reclamp(), internal_render_ready(), internal_view_adopt(), zoom_view_rebind(), zoom_view_render(), and zoom_view_window().
| uint16_t zoom_view_t::strip_rows |
Destination rows per composite strip.
Definition at line 480 of file zoom.h.
Referenced by internal_render_ready(), internal_view_adopt(), and zoom_view_render().