This document is an updated proposal to address feedback on the first
proposal, which included: "overengineered", "hopelessly
-overengineered", and "unnecessarily complex."
+overengineered", and "unnecessarily complex." I perceive this
+feedback as a positive: it is far easier to imagine a feature and
+remove it, than to fail to picture it and need to shoehorn it in
+later.
-I perceive this feedback as a positive: it is far easier to imagine a
-feature and remove it, than to fail to picture it and need it later.
The original proposal was a superset of every image format referenced,
and generalized beyond to multimedia. This proposal is sharply
reduced from that to: "put this pixel rectangle from the image, into
that cell-based rectangle with specific scaling policy". It is mostly
-a subset of the iTerm2 protocol, with specifications for what happens
-to the cursor, and more precise definitions of the
-"preserveAspectRatio" equivalent options.
+a subset of the iTerm2 protocol, with:
+
+* Specifications for what happens to the cursor.
+
+* More precise definitions of the "preserveAspectRatio" equivalent
+ options.
+
+* Explicit restriction to a Cell-based target region.
+
+* Definition that pixels not covered by image are set to the current
+ background color.
3. Elimination of response codes, and with it:
- The ability for multiplexers to blindly pass on the sequences to
- their host terminal.
+ their host terminal (because unique IDs are not generated by the
+ terminal).
- The ability for applications to reliably detect success or
failure of image display operations.
- The pixels are drawn starting at the upper-left corner of the text
cursor position.
+ - All pixels in the target Cell rectangle that are not covered by
+ the image itself are set the current background color (like
+ sixel raster attributes).
+
- If scroll is specified as 1 (enabled), then:
a. The screen is scrolled up if the image overflows into the
- Pixels that would be drawn to the right of the visible region on
screen are discarded.
+ - If scale is "none", then pixels that would be drawn outside the
+ target Cell rectangle are discarded.
+
The keys for the key-value pairs that must be supported by the