1 |
786 |
skrzyp |
# ====================================================================
|
2 |
|
|
#
|
3 |
|
|
# framebuf.cdl
|
4 |
|
|
#
|
5 |
|
|
# Generic framebuffer package configuration data
|
6 |
|
|
#
|
7 |
|
|
# ====================================================================
|
8 |
|
|
# ####ECOSGPLCOPYRIGHTBEGIN####
|
9 |
|
|
# -------------------------------------------
|
10 |
|
|
# This file is part of eCos, the Embedded Configurable Operating System.
|
11 |
|
|
# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
|
12 |
|
|
#
|
13 |
|
|
# eCos is free software; you can redistribute it and/or modify it under
|
14 |
|
|
# the terms of the GNU General Public License as published by the Free
|
15 |
|
|
# Software Foundation; either version 2 or (at your option) any later
|
16 |
|
|
# version.
|
17 |
|
|
#
|
18 |
|
|
# eCos is distributed in the hope that it will be useful, but WITHOUT
|
19 |
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
20 |
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
21 |
|
|
# for more details.
|
22 |
|
|
#
|
23 |
|
|
# You should have received a copy of the GNU General Public License
|
24 |
|
|
# along with eCos; if not, write to the Free Software Foundation, Inc.,
|
25 |
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
26 |
|
|
#
|
27 |
|
|
# As a special exception, if other files instantiate templates or use
|
28 |
|
|
# macros or inline functions from this file, or you compile this file
|
29 |
|
|
# and link it with other works to produce a work based on this file,
|
30 |
|
|
# this file does not by itself cause the resulting work to be covered by
|
31 |
|
|
# the GNU General Public License. However the source code for this file
|
32 |
|
|
# must still be made available in accordance with section (3) of the GNU
|
33 |
|
|
# General Public License v2.
|
34 |
|
|
#
|
35 |
|
|
# This exception does not invalidate any other reasons why a work based
|
36 |
|
|
# on this file might be covered by the GNU General Public License.
|
37 |
|
|
# -------------------------------------------
|
38 |
|
|
# ####ECOSGPLCOPYRIGHTEND####
|
39 |
|
|
# ====================================================================
|
40 |
|
|
######DESCRIPTIONBEGIN####
|
41 |
|
|
#
|
42 |
|
|
# Author(s): bartv
|
43 |
|
|
# Date: 2005-03-29
|
44 |
|
|
#
|
45 |
|
|
#####DESCRIPTIONEND####
|
46 |
|
|
#========================================================================
|
47 |
|
|
|
48 |
|
|
cdl_package CYGPKG_IO_FRAMEBUF {
|
49 |
|
|
display "Framebuffer support"
|
50 |
|
|
doc ref/io-framebuf.html
|
51 |
|
|
requires CYGPKG_INFRA CYGPKG_HAL CYGPKG_ERROR
|
52 |
|
|
include_dir cyg/io
|
53 |
|
|
compile framebuf.c linear.c palette.c
|
54 |
|
|
|
55 |
|
|
# A custom build step to generate a single header with details of all
|
56 |
|
|
# the framebuffers for this target. The dependency on
|
57 |
|
|
# copes with the case of a framebuffer device driver package being removed
|
58 |
|
|
make -priority 2 {
|
59 |
|
|
$(PREFIX)/include/cyg/io/framebufs/framebufs.h : $(REPOSITORY)/$(PACKAGE)/src/gen_framebufs.tcl \
|
60 |
|
|
$(PREFIX)/include/pkgconf/system.h \
|
61 |
|
|
$(subst $(PREFIX)/include/cyg/io/framebufs/framebufs.h,,$(wildcard $(PREFIX)/include/cyg/io/framebufs/*.h*))
|
62 |
|
|
tclsh $< $(dir $@)
|
63 |
|
|
}
|
64 |
|
|
|
65 |
|
|
description "
|
66 |
|
|
The generic framebuffer package provides an API for accessing
|
67 |
|
|
one or more framebuffers, plus support for appropriate device
|
68 |
|
|
drivers."
|
69 |
|
|
|
70 |
|
|
cdl_interface CYGINT_IO_FRAMEBUF_DEVICES {
|
71 |
|
|
display "Number of available framebuffer devices"
|
72 |
|
|
flavor data
|
73 |
|
|
description "
|
74 |
|
|
This interface specifies the number of framebuffer devices
|
75 |
|
|
supported by device driver(s) on this platform."
|
76 |
|
|
}
|
77 |
|
|
|
78 |
|
|
cdl_option CYGDAT_IO_FRAMEBUF_DEVICES {
|
79 |
|
|
display "Names of available framebuffer devices"
|
80 |
|
|
default_value { "" }
|
81 |
|
|
flavor data
|
82 |
|
|
description "
|
83 |
|
|
This option provides a list of the framebuffer devices available
|
84 |
|
|
on the current platform. It is controlled by the appropriate
|
85 |
|
|
device driver(s) and should not be edited by users."
|
86 |
|
|
}
|
87 |
|
|
|
88 |
|
|
cdl_option CYGDAT_IO_FRAMEBUF_TEST_DEVICE {
|
89 |
|
|
display "Framebuffer device to use for testing"
|
90 |
|
|
active_if CYGINT_IO_FRAMEBUF_DEVICES
|
91 |
|
|
flavor booldata
|
92 |
|
|
default_value 0
|
93 |
|
|
requires { is_substr(CYGDAT_IO_FRAMEBUF_DEVICES, " " . CYGDAT_IO_FRAMEBUF_TEST_DEVICE . " ") }
|
94 |
|
|
description "
|
95 |
|
|
This option determines the framebuffer device to be used for running
|
96 |
|
|
the testcases. By default the build system will automatically select
|
97 |
|
|
the first entry in CYGDAT_IO_FRAMEBUF_DEVICES, which will be the
|
98 |
|
|
only entry if there is only framebuffer device in the system."
|
99 |
|
|
}
|
100 |
|
|
|
101 |
|
|
cdl_component CYGPKG_IO_FRAMEBUF_FUNCTIONALITY {
|
102 |
|
|
display "Functionality supported by the platform's framebuffer(s)"
|
103 |
|
|
flavor none
|
104 |
|
|
description "
|
105 |
|
|
This component holds details of the functionality provided by the
|
106 |
|
|
framebuffer device driver(s) for the current platform."
|
107 |
|
|
|
108 |
|
|
cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_32BPP {
|
109 |
|
|
display "32bpp pixel support required"
|
110 |
|
|
flavor booldata
|
111 |
|
|
description "
|
112 |
|
|
This interface will be implemented if any of the framebuffer
|
113 |
|
|
device drivers for the current platform provides a 32 bits
|
114 |
|
|
per pixel display. This constrains the cyg_colour data type
|
115 |
|
|
to be at least 32 bits."
|
116 |
|
|
}
|
117 |
|
|
|
118 |
|
|
cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_TRUE_COLOUR {
|
119 |
|
|
display "Framebuffer supports true colour mode"
|
120 |
|
|
flavor booldata
|
121 |
|
|
define CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_TRUE_COLOR
|
122 |
|
|
description "
|
123 |
|
|
This interface will be implemented if any of the framebuffer
|
124 |
|
|
device drivers for the current platform support true colour
|
125 |
|
|
operation. In other words the contents of the framebuffer
|
126 |
|
|
defines the colours directly and there is no indirection via
|
127 |
|
|
a palette."
|
128 |
|
|
}
|
129 |
|
|
|
130 |
|
|
cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_PALETTE {
|
131 |
|
|
display "Framebuffer uses a palette for colours"
|
132 |
|
|
flavor booldata
|
133 |
|
|
description "
|
134 |
|
|
This interface will be implemented if any of the framebuffer
|
135 |
|
|
device drivers for the current platform use a palette. In
|
136 |
|
|
other words the contents of the framebuffer's memory do not
|
137 |
|
|
represent colours directly, but instead are treated as indices
|
138 |
|
|
into a separate table known as the palette."
|
139 |
|
|
}
|
140 |
|
|
|
141 |
|
|
cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE {
|
142 |
|
|
display "Framebuffer uses a writeable palette for colours"
|
143 |
|
|
flavor booldata
|
144 |
|
|
description "
|
145 |
|
|
This interface will be implemented if any of the framebuffer
|
146 |
|
|
device drivers for the current platform use a palette, and this
|
147 |
|
|
palette can be modified at run-time. In other words the contents
|
148 |
|
|
of the framebuffer's memory do not represent colours directly,
|
149 |
|
|
but instead are treated as indices into a separate table known
|
150 |
|
|
as the palette."
|
151 |
|
|
}
|
152 |
|
|
|
153 |
|
|
cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_VIEWPORT {
|
154 |
|
|
display "Framebuffer provides viewport support"
|
155 |
|
|
flavor booldata
|
156 |
|
|
description "
|
157 |
|
|
This interface will be implemented if any of the framebuffer
|
158 |
|
|
device drivers for the current platform provide viewport support.
|
159 |
|
|
In other words only a subset of the framebuffer, the viewport,
|
160 |
|
|
is actually visible on the display and application code can move
|
161 |
|
|
this viewport."
|
162 |
|
|
}
|
163 |
|
|
|
164 |
|
|
cdl_interface CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_DOUBLE_BUFFER {
|
165 |
|
|
display "Framebuffer provides double buffering support"
|
166 |
|
|
flavor booldata
|
167 |
|
|
description "
|
168 |
|
|
This interface will be implemented if any of the framebuffer
|
169 |
|
|
device drivers for the current platform provide support for
|
170 |
|
|
double buffering. In other words the framebuffer memory that
|
171 |
|
|
is updated by graphics operations is not what actually gets
|
172 |
|
|
displayed. Instead there is a separate hidden area of memory
|
173 |
|
|
used for the display, and when drawing is complete a flush
|
174 |
|
|
operation is needed to move the framebuffer contents to that
|
175 |
|
|
hidden area. This makes it possible to update the display more
|
176 |
|
|
smoothly, at the cost of potentially expensive memory copy
|
177 |
|
|
operations."
|
178 |
|
|
}
|
179 |
|
|
}
|
180 |
|
|
|
181 |
|
|
cdl_option CYGFUN_IO_FRAMEBUF_INSTALL_DEFAULT_PALETTE {
|
182 |
|
|
display "Framebuffers should install a default palette"
|
183 |
|
|
flavor bool
|
184 |
|
|
default_value 1
|
185 |
|
|
active_if CYGHWR_IO_FRAMEBUF_FUNCTIONALITY_WRITEABLE_PALETTE
|
186 |
|
|
description "
|
187 |
|
|
Framebuffer devices which involve a writeable palette may set this
|
188 |
|
|
to a default palette when activated by cyg_fb_on() or equivalent
|
189 |
|
|
functionality. This is useful when the application will access the
|
190 |
|
|
framebuffer directly. It is less useful if a higher-level graphics
|
191 |
|
|
library is in use because typically that will install its own
|
192 |
|
|
palette, and typically there is a code/data overhead of approximately 1K."
|
193 |
|
|
}
|
194 |
|
|
|
195 |
|
|
cdl_component CYGPKG_IO_FRAMEBUF_OPTIONS {
|
196 |
|
|
display "Framebuffer build options"
|
197 |
|
|
flavor none
|
198 |
|
|
description "
|
199 |
|
|
Package specific build options including control over
|
200 |
|
|
compiler flags used only in building the generic frame
|
201 |
|
|
buffer package, and details of which tests are built."
|
202 |
|
|
|
203 |
|
|
cdl_option CYGPKG_IO_FRAMEBUF_CFLAGS_ADD {
|
204 |
|
|
display "Additional compiler flags"
|
205 |
|
|
flavor data
|
206 |
|
|
no_define
|
207 |
|
|
default_value { "" }
|
208 |
|
|
description "
|
209 |
|
|
This option modifies the set of compiler flags for
|
210 |
|
|
building the generic framebuffer package. These flags
|
211 |
|
|
are used in addition to the set of global flags."
|
212 |
|
|
}
|
213 |
|
|
|
214 |
|
|
cdl_option CYGPKG_IO_FRAMEBUF_CFLAGS_REMOVE {
|
215 |
|
|
display "Suppressed compiler flags"
|
216 |
|
|
flavor data
|
217 |
|
|
no_define
|
218 |
|
|
default_value { "" }
|
219 |
|
|
description "
|
220 |
|
|
This option modifies the set of compiler flags for
|
221 |
|
|
building the generic framebuffer package. These flags
|
222 |
|
|
are removed from the set of global flags if present."
|
223 |
|
|
}
|
224 |
|
|
|
225 |
|
|
cdl_option CYGPKG_IO_FRAMEBUF_TESTS {
|
226 |
|
|
display "Framebuffer tests"
|
227 |
|
|
active_if CYGINT_IO_FRAMEBUF_DEVICES
|
228 |
|
|
flavor booldata
|
229 |
|
|
calculated { "tests/fb tests/fbmacro" }
|
230 |
|
|
description "
|
231 |
|
|
This option specifies the set of tests for the framebuffer package"
|
232 |
|
|
}
|
233 |
|
|
}
|
234 |
|
|
}
|