genode/repos/gems/run/menu_view.run
Norman Feske ef741ef80d Change pixel format to 32 bits per pixel
Until now, Genode's framebuffer session interface was based on the
RGB565 pixel format. This patch changes the pixel format to 32-bit
XRGB where the X part is ignored. It adapts all graphical applications
and device drivers accordingly.

The patch also adjusts the users of the drivers_interactive packages,
assigning 64 MiB RAM and 1500 caps to the drivers subsystem, which is
sufficient for covering high resolutions at 32 bits per pixel and to
accommodate multi-component USB HID input stacks.

Fixes #3784
2020-06-29 14:22:29 +02:00

268 lines
8.7 KiB
Plaintext

create_boot_directory
import_from_depot [depot_user]/src/[base_src] \
[depot_user]/pkg/[drivers_interactive_pkg] \
[depot_user]/pkg/fonts_fs \
[depot_user]/src/init \
[depot_user]/src/dynamic_rom \
[depot_user]/src/report_rom \
[depot_user]/src/nitpicker \
[depot_user]/src/libc \
[depot_user]/src/libpng \
[depot_user]/src/zlib
install_config {
<config>
<parent-provides>
<service name="PD"/>
<service name="CPU"/>
<service name="ROM"/>
<service name="RM"/>
<service name="LOG"/>
<service name="IRQ"/>
<service name="IO_MEM"/>
<service name="IO_PORT"/>
</parent-provides>
<default caps="100"/>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="drivers" caps="1500">
<resource name="RAM" quantum="64M" constrain_phys="yes"/>
<binary name="init"/>
<route>
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides>
<service name="Input"/> <service name="Framebuffer"/>
</provides>
</start>
<start name="nitpicker">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gui"/></provides>
<config>
<background color="#123456"/>
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
<domain name="default" layer="3" content="client" label="no" hover="always" />
<policy label_prefix="pointer" domain="pointer"/>
<default-policy domain="default"/>
</config>
</start>
<start name="pointer">
<resource name="RAM" quantum="1M"/>
<route>
<service name="Gui"> <child name="nitpicker" /> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="dynamic_rom">
<resource name="RAM" quantum="4M"/>
<provides> <service name="ROM"/> </provides>
<config verbose="yes">
<rom name="dialog">
<inline description="dependency graph">
<dialog>
<depgraph>
<frame name="storage"> <label text="Storage"/> </frame>
<frame name="gui"> <label text="GUI"/> </frame>
<frame name="usbdev"> <label text="USB Devices"/> </frame>
<button name="s.ahci1" dep="storage"> <label text="ahci1"/> </button>
<button name="s.usb1" dep="storage"> <label text="usb1"/> </button>
<button name="s.usb2" dep="storage"> <label text="usb2"/> </button>
<button name="s.usb3" dep="storage"> <label text="usb3"/> </button>
<frame name="s.usb2.part" dep="s.usb2"> <label text="Partition"/> </frame>
<button name="s.usb2.1" dep="s.usb2.part"> <label text="1"/> </button>
<frame name="s.usb2.1.ext2fs" dep="s.usb2.1"> <label text="Ext2 FS"/> </frame>
<button name="s.usb2.2" dep="s.usb2.part"> <label text="2"/> </button>
<frame name="s.usb2.1.ext2fs.subfs" dep="s.usb2.1.ext2fs"> <label text="Sub FS"/> </frame>
<button name="g.pointer" dep="gui"> <label text="pointer"/> </button>
<button name="g.overlay" dep="gui"> <label text="overlay"/> </button>
<button name="g.primary" dep="gui"> <label text="primary"/> </button>
<button name="g.background" dep="gui"> <label text="background"/> </button>
<button name="g.pointer.new" dep="g.pointer"> <label text="+"/> </button>
<button name="g.overlay.new" dep="g.overlay"> <label text="+"/> </button>
<button name="g.background.new" dep="g.background"> <label text="+"/> </button>
<button name="u.1-2" dep="usbdev"> <label text="1-2"/> </button>
<button name="u.1-3" dep="usbdev"> <label text="1-3"/> </button>
<frame name="vbox" dep="s.usb2.1.ext2fs.subfs">
<label text="VBox5"/>
</frame>
<dep node="vbox" on="g.primary"/>
<dep node="vbox" on="s.ahci1"/>
<dep node="vbox" on="u.1-3"/>
<frame name="fs_view" dep="s.usb2.1.ext2fs.subfs">
<label text="FS View"/>
</frame>
<dep node="fs_view" from="g.primary"/>
</depgraph>
</dialog>
</inline>
<sleep milliseconds="1000" />
<inline description="dependency graph">
<dialog>
<depgraph>
<frame name="storage"> <label text="Storage"/> </frame>
<frame name="gui"> <label text="GUI"/> </frame>
<frame name="usbdev"> <label text="USB"/> </frame>
<button name="s.ahci1" dep="storage"> <label text="ahci1"/> </button>
<button name="s.usb1" dep="storage"> <label text="usb1"/> </button>
<button name="s.usb2" dep="storage"> <label text="usb2"/> </button>
<button name="s.usb3" dep="storage"> <label text="usb3"/> </button>
<frame name="s.usb2.part" dep="s.usb2"> <label text="Partition"/> </frame>
<button name="s.usb2.2" dep="s.usb2.part"> <label text="2"/> </button>
<button name="g.pointer" dep="gui"> <label text="pointer"/> </button>
<button name="g.overlay" dep="gui"> <label text="overlay"/> </button>
<button name="g.primary" dep="gui"> <label text="primary"/> </button>
<button name="g.background" dep="gui"> <label text="background"/> </button>
<button name="u.1-2" dep="usbdev"> <label text="1-2"/> </button>
<button name="u.1-3" dep="usbdev"> <label text="1-3"/> </button>
</depgraph>
</dialog>
</inline>
<sleep milliseconds="1000" />
<inline description="example menu">
<dialog>
<frame>
<hbox>
<vbox name="x">
<button name="virtualbox">
<label text="VirtualBox"/>
</button>
<button name="toolchain" hovered="yes">
<label text="Tool chain"
font="monospace/regular"/>
</button>
<button name="log" hovered="yes" selected="yes">
<label text="Log window"
font="title/regular"/>
</button>
<button name="config" selected="yes">
<label text="Configuration Configuration Configuration"
font="annotation/regular"/>
</button>
<hbox>
<button name="x1"> <label text="x1"/> </button>
<button name="x2"> <label text="x2"/> </button>
<button name="x3"> <label text="x3"/> </button>
</hbox>
<frame>
<label text="A single line" font="annotation/regular"/>
</frame>
</vbox>
<float north="yes">
<vbox>
<button name="virtualbox">
<label text="VirtualBox"/>
</button>
<button name="toolchain" hovered="yes">
<label text="Tool chain"
font="monospace/regular"/>
</button>
</vbox>
</float>
</hbox>
</frame>
</dialog>
</inline>
<sleep milliseconds="1000" />
<inline description="example menu">
<dialog>
<frame>
<vbox>
<button name="virtualbox" hovered="yes">
<label text="VirtualBox"/>
</button>
<button name="config" selected="yes" hovered="yes">
<label text="Configuration"/>
</button>
</vbox>
</frame>
</dialog>
</inline>
<sleep milliseconds="1000" />
</rom>
</config>
</start>
<start name="report_rom">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Report"/> <service name="ROM"/> </provides>
<config verbose="yes"/>
</start>
<start name="fonts_fs" caps="300">
<resource name="RAM" quantum="8M"/>
<binary name="vfs"/>
<route>
<service name="ROM" label="config"> <parent label="fonts_fs.config"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides> <service name="File_system"/> </provides>
</start>
<start name="menu_view" caps="200">
<resource name="RAM" quantum="8M"/>
<config xpos="200" ypos="100">
<report hover="yes"/>
<libc stderr="/dev/log"/>
<vfs>
<tar name="menu_view_styles.tar" />
<dir name="dev"> <log/> </dir>
<dir name="fonts"> <fs label="fonts"/> </dir>
</vfs>
</config>
<route>
<service name="ROM" label="dialog"> <child name="dynamic_rom" /> </service>
<service name="Report" label="hover"> <child name="report_rom"/> </service>
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
</config>}
build { app/menu_view }
build_boot_image { menu_view menu_view_styles.tar }
run_genode_until forever