Improve font rendering.
This commit is contained in:
1 parent
ddf98cf673
commit
0b9a244a12
2 files changed
+33
-9
No files matched your search
@@ -56,7 +56,7 @@ ifeq ($(OS),OS_MACOS)
|
|||||||
LIBS =
|
LIBS =
|
||||||
FRAMEWORKS =
|
FRAMEWORKS =
|
||||||
else ifeq ($(OS),OS_LINUX)
|
else ifeq ($(OS),OS_LINUX)
|
||||||
# FLAGS = -ggdb -DDEBUG=1 -DINTERNAL=1
|
# FLAGS = -ggdb3 -O0 -DDEBUG=1 -DINTERNAL=1
|
||||||
FLAGS = -O3
|
FLAGS = -O3
|
||||||
INCLUDE = -I/usr/include -I/usr/X11R6/include \
|
INCLUDE = -I/usr/include -I/usr/X11R6/include \
|
||||||
-I./libs/include/freetype2
|
-I./libs/include/freetype2
|
||||||
|
|||||||
@@ -361,7 +361,6 @@ draw_glyph(void *memory, int width, int height, int bytes_per_pixel,
|
|||||||
bitmap_width = face->glyph->bitmap.width;
|
bitmap_width = face->glyph->bitmap.width;
|
||||||
bitmap_rows = face->glyph->bitmap.rows;
|
bitmap_rows = face->glyph->bitmap.rows;
|
||||||
bitmap_pixels = (void *)face->glyph->bitmap.buffer;
|
bitmap_pixels = (void *)face->glyph->bitmap.buffer;
|
||||||
y -= face->glyph->bitmap_top;
|
|
||||||
|
|
||||||
row = 0;
|
row = 0;
|
||||||
column = 0;
|
column = 0;
|
||||||
@@ -452,9 +451,12 @@ draw_string(void *buffer, int width, int height,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
draw_glyph(buffer, width, height, 4, face, start_x, start_y);
|
draw_glyph(buffer,
|
||||||
|
width, height, 4, face,
|
||||||
|
start_x + face->glyph->bitmap_left,
|
||||||
|
start_y - face->glyph->bitmap_top);
|
||||||
|
|
||||||
start_x += face->glyph->bitmap.width;
|
start_x += (face->glyph->advance.x + 32) >> 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -488,7 +490,7 @@ get_string_dimension(int *width, int *height, const char *str, FT_Face face)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result_width += face->glyph->bitmap.width;
|
result_width += (face->glyph->advance.x + 32) >> 6;
|
||||||
if(face->glyph->bitmap.rows > (unsigned int)result_height)
|
if(face->glyph->bitmap.rows > (unsigned int)result_height)
|
||||||
result_height = face->glyph->bitmap.rows;
|
result_height = face->glyph->bitmap.rows;
|
||||||
}
|
}
|
||||||
@@ -544,13 +546,21 @@ render_screen(struct arena *arena,
|
|||||||
time_str = (char *)arena_alloc(&temp_arena, time_str_len);
|
time_str = (char *)arena_alloc(&temp_arena, time_str_len);
|
||||||
get_time_str(time_str, time_str_len);
|
get_time_str(time_str, time_str_len);
|
||||||
if(FT_Set_Pixel_Sizes(main_font_face, 0, 200) == 0) {
|
if(FT_Set_Pixel_Sizes(main_font_face, 0, 200) == 0) {
|
||||||
|
int pos_x, pos_y;
|
||||||
|
|
||||||
int mwidth, mheight;
|
int mwidth, mheight;
|
||||||
get_string_dimension(&mwidth, &mheight, time_str, main_font_face);
|
get_string_dimension(&mwidth, &mheight, time_str, main_font_face);
|
||||||
|
|
||||||
|
pos_x = width/2-mwidth/2;
|
||||||
|
if(pass_len > 0 || failure)
|
||||||
|
pos_y = height/4+mheight/2;
|
||||||
|
else
|
||||||
|
pos_y = height/2+mheight/2;
|
||||||
draw_string(data,
|
draw_string(data,
|
||||||
width, height,
|
width, height,
|
||||||
time_str,
|
time_str,
|
||||||
main_font_face,
|
main_font_face,
|
||||||
width/2-mwidth/2, height/4+mheight/2);
|
pos_x, pos_y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(FT_Set_Pixel_Sizes(secondary_font_face, 0, 30) == 0) {
|
if(FT_Set_Pixel_Sizes(secondary_font_face, 0, 30) == 0) {
|
||||||
@@ -564,7 +574,7 @@ render_screen(struct arena *arena,
|
|||||||
if(locked && failure)
|
if(locked && failure)
|
||||||
memcpy(message_str, "wrong password", 15);
|
memcpy(message_str, "wrong password", 15);
|
||||||
else if(locked)
|
else if(locked)
|
||||||
memcpy(message_str, "locked", 7);
|
/*memcpy(message_str, "locked", 7);*/
|
||||||
if(pass_len > 0) {
|
if(pass_len > 0) {
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
@@ -612,9 +622,10 @@ static void dpms_disable(Display *dpy, struct dpms_state *state)
|
|||||||
&state->dpmsoff))
|
&state->dpmsoff))
|
||||||
{
|
{
|
||||||
state->dpmsavailable = 1;
|
state->dpmsavailable = 1;
|
||||||
if(state->dpmsstate)
|
if(state->dpmsstate) {
|
||||||
DPMSDisable(dpy);
|
DPMSDisable(dpy);
|
||||||
XSync(dpy, 0);
|
XSync(dpy, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1003,6 +1014,19 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen)
|
|||||||
DefaultVisual(dpy, lock->screen),
|
DefaultVisual(dpy, lock->screen),
|
||||||
CWOverrideRedirect | CWBackPixel, &wa);
|
CWOverrideRedirect | CWBackPixel, &wa);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*XStoreName(dpy, lock->win, "Title");*/
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
{
|
||||||
|
XClassHint hint;
|
||||||
|
hint.res_name = "testing_full";
|
||||||
|
hint.res_class = "testing_class";
|
||||||
|
|
||||||
|
XSetClassHint(dpy, lock->win, &hint);
|
||||||
|
XSync(dpy, 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
XSetWindowBackground(dpy, lock->win, BlackPixel(dpy, screen));
|
XSetWindowBackground(dpy, lock->win, BlackPixel(dpy, screen));
|
||||||
XClearWindow(dpy, lock->win);
|
XClearWindow(dpy, lock->win);
|
||||||
|
|||||||
Reference in new issue
Block a user