reticulatedpines / magiclantern_simplified

A Git based version of Magic Lantern, for those unwilling or unable to work using Mercurial. The vast majority of branches have been removed, with those thought to be important brought in individually and merged.
GNU General Public License v2.0
142 stars 47 forks source link

compositor.c: add XCM support for newer models #108

Closed kitor closed 4 months ago

kitor commented 11 months ago

Updates to bring CONFIG_COMPOSITOR_DEDICATED_LAYER (or drawing on dedicated compositor layer) working on RP and newer models. Starting from RP Canon standardized the API.

Old implementation was based on EOS R which had some early-implementation quirks - those are shared only with SX740. New implementation should support all Digic 8 models with XCM (thus M50 is excluded, as it is the last camera with pure Ximr), and incorporates (disabled) code paths for Digic X support.

Digic X support is disabled as while API is +/- the same, we don't know how to allocate memory on specific IBus, and XCM now requires it to happen, else code will assert.

This PR changes most of compositor.c, thus don't read it the diff, read the file - diff makes no sense.

Tested R/RP/SX70/SX740. 850D done blindly, requires checking if camera still boots. If it does, shall print something like this on UART on boot:

     2885:   1048.119 starting menu_redraw_task
     2886:   1048.919 Canon layer: 0x02e18500
     2887:   1048.930 Found 2 layers
     2896:   1051.403 MARV 0x0012b3a8, bitmap_data 0x49a55494
     2897:   1055.164 Our layer: 0x0012b3a8