2 Copyright (c) 2012, Broadcom Europe Ltd
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in the
11 documentation and/or other materials provided with the distribution.
12 * Neither the name of the copyright holder nor the
13 names of its contributors may be used to endorse or promote products
14 derived from this software without specific prior written permission.
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 * This file provides just enough types and stubs, so that the rpi-backend
30 * can be built without the real headers and libraries of the Raspberry Pi.
32 * This file CANNOT be used to build a working rpi-backend, it is intended
33 * only for build-testing, when the proper headers are not available.
41 /* from /opt/vc/include/bcm_host.h */
43 static inline void bcm_host_init(void) {}
44 static inline void bcm_host_deinit(void) {}
46 /* from /opt/vc/include/interface/vctypes/vc_display_types.h */
50 VCOS_DISPLAY_INPUT_FORMAT_INVALID = 0,
51 } DISPLAY_INPUT_FORMAT_T;
53 /* from /opt/vc/include/interface/vctypes/vc_image_types.h */
55 typedef struct tag_VC_RECT_T {
64 } VC_IMAGE_TRANSFORM_T;
69 /* these are not the right values: */
74 /* from /opt/vc/include/interface/vmcs_host/vc_dispmanx_types.h */
76 typedef uint32_t DISPMANX_DISPLAY_HANDLE_T;
77 typedef uint32_t DISPMANX_UPDATE_HANDLE_T;
78 typedef uint32_t DISPMANX_ELEMENT_HANDLE_T;
79 typedef uint32_t DISPMANX_RESOURCE_HANDLE_T;
80 typedef uint32_t DISPMANX_PROTECTION_T;
82 #define DISPMANX_NO_HANDLE 0
83 #define DISPMANX_PROTECTION_NONE 0
84 #define DISPMANX_ID_HDMI 2
87 /* Bottom 2 bits sets the alpha mode */
88 DISPMANX_FLAGS_ALPHA_FROM_SOURCE = 0,
89 DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS = 1,
90 DISPMANX_FLAGS_ALPHA_FIXED_NON_ZERO = 2,
91 DISPMANX_FLAGS_ALPHA_FIXED_EXCEED_0X07 = 3,
93 DISPMANX_FLAGS_ALPHA_PREMULT = 1 << 16,
94 DISPMANX_FLAGS_ALPHA_MIX = 1 << 17
95 } DISPMANX_FLAGS_ALPHA_T;
98 DISPMANX_FLAGS_ALPHA_T flags;
100 DISPMANX_RESOURCE_HANDLE_T mask;
101 } VC_DISPMANX_ALPHA_T;
106 VC_IMAGE_TRANSFORM_T transform;
107 DISPLAY_INPUT_FORMAT_T input_format;
108 } DISPMANX_MODEINFO_T;
111 DISPMANX_NO_ROTATE = 0,
112 } DISPMANX_TRANSFORM_T;
118 typedef void (*DISPMANX_CALLBACK_FUNC_T)(DISPMANX_UPDATE_HANDLE_T u,
121 /* from /opt/vc/include/interface/vmcs_host/vc_dispmanx.h */
124 vc_dispmanx_rect_set(VC_RECT_T *rect, uint32_t x_offset, uint32_t y_offset,
125 uint32_t width, uint32_t height)
130 rect->height = height;
134 static inline DISPMANX_RESOURCE_HANDLE_T
135 vc_dispmanx_resource_create(VC_IMAGE_TYPE_T type, uint32_t width,
136 uint32_t height, uint32_t *native_image_handle)
138 return DISPMANX_NO_HANDLE;
142 vc_dispmanx_resource_write_data(DISPMANX_RESOURCE_HANDLE_T res,
143 VC_IMAGE_TYPE_T src_type,
146 const VC_RECT_T *rect)
152 vc_dispmanx_resource_write_data_rect(DISPMANX_RESOURCE_HANDLE_T handle,
153 VC_IMAGE_TYPE_T src_type,
156 const VC_RECT_T *src_rect,
164 vc_dispmanx_resource_delete(DISPMANX_RESOURCE_HANDLE_T res)
169 static inline DISPMANX_DISPLAY_HANDLE_T
170 vc_dispmanx_display_open(uint32_t device)
172 return DISPMANX_NO_HANDLE;
176 vc_dispmanx_display_close(DISPMANX_DISPLAY_HANDLE_T display)
182 vc_dispmanx_display_get_info(DISPMANX_DISPLAY_HANDLE_T display,
183 DISPMANX_MODEINFO_T *pinfo)
188 static inline DISPMANX_UPDATE_HANDLE_T
189 vc_dispmanx_update_start(int32_t priority)
191 return DISPMANX_NO_HANDLE;
194 static inline DISPMANX_ELEMENT_HANDLE_T
195 vc_dispmanx_element_add(DISPMANX_UPDATE_HANDLE_T update,
196 DISPMANX_DISPLAY_HANDLE_T display,
198 const VC_RECT_T *dest_rect,
199 DISPMANX_RESOURCE_HANDLE_T src,
200 const VC_RECT_T *src_rect,
201 DISPMANX_PROTECTION_T protection,
202 VC_DISPMANX_ALPHA_T *alpha,
203 DISPMANX_CLAMP_T *clamp,
204 DISPMANX_TRANSFORM_T transform)
206 return DISPMANX_NO_HANDLE;
210 vc_dispmanx_element_change_source(DISPMANX_UPDATE_HANDLE_T update,
211 DISPMANX_ELEMENT_HANDLE_T element,
212 DISPMANX_RESOURCE_HANDLE_T src)
218 vc_dispmanx_element_modified(DISPMANX_UPDATE_HANDLE_T update,
219 DISPMANX_ELEMENT_HANDLE_T element,
220 const VC_RECT_T *rect)
226 vc_dispmanx_element_remove(DISPMANX_UPDATE_HANDLE_T update,
227 DISPMANX_ELEMENT_HANDLE_T element)
233 vc_dispmanx_update_submit(DISPMANX_UPDATE_HANDLE_T update,
234 DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg)
240 vc_dispmanx_update_submit_sync(DISPMANX_UPDATE_HANDLE_T update)
246 vc_dispmanx_element_change_attributes(DISPMANX_UPDATE_HANDLE_T update,
247 DISPMANX_ELEMENT_HANDLE_T element,
248 uint32_t change_flags,
251 const VC_RECT_T *dest_rect,
252 const VC_RECT_T *src_rect,
253 DISPMANX_RESOURCE_HANDLE_T mask,
254 VC_IMAGE_TRANSFORM_T transform)
259 /* from /opt/vc/include/EGL/eglplatform.h */
262 DISPMANX_ELEMENT_HANDLE_T element;
265 } EGL_DISPMANX_WINDOW_T;
267 #endif /* RPI_BCM_STUBS */