diff options
Diffstat (limited to 'firmware/drivers/lcd-color-common.c')
-rw-r--r-- | firmware/drivers/lcd-color-common.c | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/firmware/drivers/lcd-color-common.c b/firmware/drivers/lcd-color-common.c index 8a9ef64cea..a1d2f47c22 100644 --- a/firmware/drivers/lcd-color-common.c +++ b/firmware/drivers/lcd-color-common.c | |||
@@ -40,7 +40,6 @@ static fb_data lcd_static_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH] | |||
40 | IRAM_LCDFRAMEBUFFER CACHEALIGN_AT_LEAST_ATTR(16); | 40 | IRAM_LCDFRAMEBUFFER CACHEALIGN_AT_LEAST_ATTR(16); |
41 | 41 | ||
42 | static void *lcd_frameaddress_default(int x, int y); | 42 | static void *lcd_frameaddress_default(int x, int y); |
43 | static bool lcd_clip_viewport_pixel(int *x, int *y); | ||
44 | 43 | ||
45 | static fb_data* lcd_backdrop = NULL; | 44 | static fb_data* lcd_backdrop = NULL; |
46 | static long lcd_backdrop_offset IDATA_ATTR = 0; | 45 | static long lcd_backdrop_offset IDATA_ATTR = 0; |
@@ -194,119 +193,6 @@ fb_data* lcd_get_backdrop(void) | |||
194 | return lcd_backdrop; | 193 | return lcd_backdrop; |
195 | } | 194 | } |
196 | 195 | ||
197 | /* Set a single pixel */ | ||
198 | void lcd_drawpixel(int x, int y) | ||
199 | { | ||
200 | if (lcd_clip_viewport_pixel(&x, &y)) | ||
201 | lcd_fastpixelfuncs[lcd_current_viewport->drawmode](FBADDR(x, y)); | ||
202 | } | ||
203 | |||
204 | /* Draw a line */ | ||
205 | void lcd_drawline(int x1, int y1, int x2, int y2) | ||
206 | { | ||
207 | int numpixels; | ||
208 | int i; | ||
209 | int deltax, deltay; | ||
210 | int d, dinc1, dinc2; | ||
211 | int x, xinc1, xinc2; | ||
212 | int y, yinc1, yinc2; | ||
213 | int x_vp, y_vp, w_vp, h_vp; | ||
214 | lcd_fastpixelfunc_type *pfunc = lcd_fastpixelfuncs[lcd_current_viewport->drawmode]; | ||
215 | |||
216 | deltay = abs(y2 - y1); | ||
217 | if (deltay == 0) | ||
218 | { | ||
219 | /* DEBUGF("lcd_drawline() called for horizontal line - optimisation.\n"); */ | ||
220 | lcd_hline(x1, x2, y1); | ||
221 | return; | ||
222 | } | ||
223 | deltax = abs(x2 - x1); | ||
224 | if (deltax == 0) | ||
225 | { | ||
226 | /* DEBUGF("lcd_drawline() called for vertical line - optimisation.\n"); */ | ||
227 | lcd_vline(x1, y1, y2); | ||
228 | return; | ||
229 | } | ||
230 | xinc2 = 1; | ||
231 | yinc2 = 1; | ||
232 | |||
233 | if (deltax >= deltay) | ||
234 | { | ||
235 | numpixels = deltax; | ||
236 | d = 2 * deltay - deltax; | ||
237 | dinc1 = deltay * 2; | ||
238 | dinc2 = (deltay - deltax) * 2; | ||
239 | xinc1 = 1; | ||
240 | yinc1 = 0; | ||
241 | } | ||
242 | else | ||
243 | { | ||
244 | numpixels = deltay; | ||
245 | d = 2 * deltax - deltay; | ||
246 | dinc1 = deltax * 2; | ||
247 | dinc2 = (deltax - deltay) * 2; | ||
248 | xinc1 = 0; | ||
249 | yinc1 = 1; | ||
250 | } | ||
251 | numpixels++; /* include endpoints */ | ||
252 | |||
253 | if (x1 > x2) | ||
254 | { | ||
255 | xinc1 = -xinc1; | ||
256 | xinc2 = -xinc2; | ||
257 | } | ||
258 | |||
259 | if (y1 > y2) | ||
260 | { | ||
261 | yinc1 = -yinc1; | ||
262 | yinc2 = -yinc2; | ||
263 | } | ||
264 | |||
265 | x = x1; | ||
266 | y = y1; | ||
267 | |||
268 | void *(*fbaddr)(int x, int y) = FB_CURRENTVP_BUFFER->get_address_fn; | ||
269 | x_vp = lcd_current_viewport->x; | ||
270 | y_vp = lcd_current_viewport->y; | ||
271 | w_vp = lcd_current_viewport->width; | ||
272 | h_vp = lcd_current_viewport->height; | ||
273 | |||
274 | for (i = 0; i < numpixels; i++) | ||
275 | { | ||
276 | if (x >= 0 && y >= 0 && x < w_vp && y < h_vp) | ||
277 | pfunc(fbaddr(x + x_vp, y + y_vp)); | ||
278 | |||
279 | if (d < 0) | ||
280 | { | ||
281 | d += dinc1; | ||
282 | x += xinc1; | ||
283 | y += yinc1; | ||
284 | } | ||
285 | else | ||
286 | { | ||
287 | d += dinc2; | ||
288 | x += xinc2; | ||
289 | y += yinc2; | ||
290 | } | ||
291 | } | ||
292 | } | ||
293 | |||
294 | /* Draw a rectangular box */ | ||
295 | void lcd_drawrect(int x, int y, int width, int height) | ||
296 | { | ||
297 | if ((width <= 0) || (height <= 0)) | ||
298 | return; | ||
299 | |||
300 | int x2 = x + width - 1; | ||
301 | int y2 = y + height - 1; | ||
302 | |||
303 | lcd_vline(x, y, y2); | ||
304 | lcd_vline(x2, y, y2); | ||
305 | lcd_hline(x, x2, y); | ||
306 | lcd_hline(x, x2, y2); | ||
307 | } | ||
308 | |||
309 | |||
310 | /* Draw a full native bitmap */ | 196 | /* Draw a full native bitmap */ |
311 | void lcd_bitmap(const fb_data *src, int x, int y, int width, int height) | 197 | void lcd_bitmap(const fb_data *src, int x, int y, int width, int height) |
312 | { | 198 | { |