Date: Thu, 5 Jul 2012 23:23:27 GMT From: Brooks Davis <brooks@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 213951 for review Message-ID: <201207052323.q65NNRPu025608@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@213951?ac=10 Change 213951 by brooks@brooks_ecr_current on 2012/07/05 23:23:23 Implement text rendering using fonts from syscons. Font file parsing code is from vidcontol. Also implement a fb_post_region() function to update rectangular regions of the framebuffer. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/Makefile#3 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#3 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#3 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/syscons-fonts.c#1 add Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/Makefile#3 (text+ko) ==== @@ -5,12 +5,15 @@ LIB= de4tc SHLIB_MAJOR= 1 -SRCS= de4tc.c +SRCS= de4tc.c syscons-fonts.c INCS= de4tc.h +.PATH: ${.CURDIR}/../../usr.sbin/vidcontrol +CFLAGS+=-I${.CURDIR}/../../usr.sbin/vidcontrol +SRCS+= decode.c + CFLAGS+= -I${.CURDIR}/../libvuln_png/ -#LDADD+= -L../libvuln_png/ -lvuln_png -lz -lm #WARNS?= 0 ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.c#3 (text+ko) ==== @@ -52,7 +52,7 @@ static int dispfd; static int textfd; static int fademode=0; -static volatile u_int32_t *pfbp; +volatile u_int32_t *pfbp; static volatile u_int16_t *tfbp; static volatile u_int32_t *mtlctrl; @@ -62,6 +62,9 @@ // number of lines in the line pattern static const int num_lines_pattern = 600; +const int fb_height = 480; +const int fb_width = 800; + /***************************************************************************** * hack around endian issue @@ -217,6 +220,17 @@ void +fb_post_region(u_int32_t *buf, int x, int y, int w, int h) +{ + int col, row; + + for (row = 0; row < h; row++) + for (col = 0; col < w; col++) + pfbp[(y + row) * fb_width + (x + col)] = buf[row * w + col]; +} + + +void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash __unused) { mtlctrl[0] = ==== //depot/projects/ctsrd/beribsd/src/ctsrd-lib/libde4tc/de4tc.h#3 (text+ko) ==== @@ -1,5 +1,6 @@ /*- * Copyright (c) 2012 Simon W. Moore + * Copyright (c) 2012 SRI International * All rights reserved. * * This software was developed by SRI International and the University of @@ -38,8 +39,8 @@ extern int touch_gesture; extern int touch_count; -const int fb_height = 480; -const int fb_width = 800; +extern const int fb_height; +extern const int fb_width; void multitouch_pole(void); void multitouch_filter(void); @@ -50,6 +51,7 @@ void fb_putpixel(int px, int py, int colour); void fb_fill(int col); void fb_post(u_int32_t *buf); +void fb_post_region(u_int32_t *buf, int x, int y, int w, int h); void fb_blend(int blend_text_bg, int blend_text_fg, int blend_pixel, int wash); void fb_text_cursor(int x, int y); void fb_fade2off(void); @@ -58,4 +60,10 @@ void plot_line(int x1, int y1, int x2, int y2, unsigned int colour); void read_png_file(const char* file_name, u_int32_t* imgbuf, int maxwidth, int maxheight); +void fb_load_syscons_font(const char *type, const char *filename); +int fb_get_font_height(void); +int fb_get_font_width(void); +void fb_render_text(const char *string, int expand, u_int32_t con, u_int32_t coff, + u_int32_t *buffer, int w, int h); + #endif /* !_DE4TC_H_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207052323.q65NNRPu025608>