summaryrefslogtreecommitdiff
path: root/ecos/packages/devs/framebuf/synth/current/misc/example.tdf
blob: 5cae70af53bd3bd41ff429b198310a1ac8532d8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# An example framebuffer create function. This is for use with the
# synthetic target framebuffer example program which uses four
# devices:
#
#  fb0: 320x240 32bpp true 0888
#  fb1: 320x240 16bpp true 555 with two pages
#  fb2: 320x240 16bpp true 565 with a viewport of 160x120
#  fb3: 320x240 8bpp  pal  888
#
# These are all created in a single toplevel .synth_framebufs, one above the other,
# with labels in between.
proc my_framebuf_create_frame { fb_id magnification depth little_endian width height viewport_width viewport_height stride number_pages format } {
    if { ![winfo exists .synth_framebufs] } {
        toplevel    .synth_framebufs
        wm title    .synth_framebufs "Synthetic target framebuffers"
        wm protocol .synth_framebufs WM_DELETE_WINDOW {}
        wm geometry .synth_framebufs +1000+0

        label .synth_framebufs.fb0_label -text "FB0 320x240 32bpp true 0888"
        frame .synth_framebufs.fb0 -container 1 -height 240 -width 320
        label .synth_framebufs.fb1_label -text "FB1 320x240 16bpp true 0555 two pages"
        frame .synth_framebufs.fb1 -container 1 -height 240 -width 320
        label .synth_framebufs.fb2_label -text "FB2 320x240 16bpp true 0565\nviewport 160x120 magnified *2"
        frame .synth_framebufs.fb2 -container 1 -height 240 -width 320
        label .synth_framebufs.fb3_label -text "FB3 320x240  8bpp paletted 888"
        frame .synth_framebufs.fb3 -container 1 -height 240 -width 320
        pack .synth_framebufs.fb0_label -side top -expand 1 -anchor w -fill x
        pack .synth_framebufs.fb0       -side top -expand 0 -anchor w
        pack .synth_framebufs.fb1_label -side top -expand 1 -anchor w -fill x
        pack .synth_framebufs.fb1       -side top -expand 0 -anchor w
        pack .synth_framebufs.fb2_label -side top -expand 1 -anchor w -fill x
        pack .synth_framebufs.fb2       -side top -expand 0 -anchor w
        pack .synth_framebufs.fb3_label -side top -expand 1 -anchor w -fill x
        pack .synth_framebufs.fb3       -side top -expand 0 -anchor w
    }
    return .synth_framebufs.fb$fb_id
}

synth_device framebuf {
    fb2_magnification   2
    create_frame_proc   my_framebuf_create_frame
}