[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 02ef7d7: [ftgrid, ftstring, ftview] Unify top h
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master 02ef7d7: [ftgrid, ftstring, ftview] Unify top header lines. |
Date: |
Thu, 18 May 2017 14:40:09 -0400 (EDT) |
branch: master
commit 02ef7d7e42edd2ba736aded1a4e79aa9b72da394
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
[ftgrid, ftstring, ftview] Unify top header lines.
* src/ftcommon.[ch] (FTDemo_Draw_Header): New function that displays
information about face, size, resolution, and gamma to be used in...
* src/ftview.c (write_header): ... here.
* src/ftstring.c (write_header): ... here.
* src/ftgrid.c (write_header): ... and here.
(event_gamma_change): Updated.
---
ChangeLog | 12 ++++++++
src/ftcommon.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/ftcommon.h | 10 +++++++
src/ftgrid.c | 58 ++++++++------------------------------
src/ftstring.c | 60 ++++-----------------------------------
src/ftview.c | 66 +++----------------------------------------
6 files changed, 131 insertions(+), 164 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index eb18e1a..452236a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-05-18 Alexei Podtelezhnikov <address@hidden>
+
+ [ftgrid, ftstring, ftview] Unify top header lines.
+
+ * src/ftcommon.[ch] (FTDemo_Draw_Header): New function that displays
+ information about face, size, resolution, and gamma to be used in...
+
+ * src/ftview.c (write_header): ... here.
+ * src/ftstring.c (write_header): ... here.
+ * src/ftgrid.c (write_header): ... and here.
+ (event_gamma_change): Updated.
+
2017-05-15 Alexei Podtelezhnikov <address@hidden>
* src/ftgrid.c (main): Fix segmentation fault.
diff --git a/src/ftcommon.c b/src/ftcommon.c
index 0c19127..11fef65 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -739,6 +739,95 @@
}
+ void
+ FTDemo_Draw_Header( FTDemo_Handle* handle,
+ FTDemo_Display* display,
+ int ptsize,
+ int res,
+ double gamma,
+ int error_code )
+ {
+ FT_Face face;
+ char buf[256];
+ const char* basename;
+
+ int line = 0;
+ int x1, x2;
+
+
+ error = FTC_Manager_LookupFace( handle->cache_manager,
+ handle->scaler.face_id, &face );
+ if ( error )
+ {
+ FTDemo_Display_Done( display );
+ FTDemo_Done( handle );
+ PanicZ( "can't access font file" );
+ }
+
+
+ /* font and file name */
+ basename = ft_basename( handle->current_font->filepathname );
+ sprintf( buf, "%.50s %.50s (file `%.100s')",
+ face->family_name, face->style_name, basename );
+ grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
+ buf, display->fore_color );
+
+ /* pt and dpi */
+ x1 = sprintf( buf, "%gpt at %ddpi ",
+ ptsize / 64.0, res );
+ grWriteCellString( display->bitmap, 0, line * HEADER_HEIGHT,
+ buf, display->fore_color );
+
+ if ( error_code == FT_Err_Ok )
+ {
+ int highlight;
+
+
+ highlight = abs( ptsize * res - face->size->metrics.y_ppem * 72 * 64 )
+ > 36 * 64;
+
+ /* ppem */
+ if ( FT_IS_SCALABLE( face ) )
+ x2 = sprintf( buf, "(%.4gppem)",
+ FT_MulFix( face->units_per_EM,
+ face->size->metrics.y_scale ) / 64.0 );
+ else
+ x2 = sprintf( buf, "(%dppem)",
+ face->size->metrics.y_ppem );
+ grWriteCellString( display->bitmap, 8 * x1, line * HEADER_HEIGHT,
+ buf, highlight ? display->warn_color
+ : display->fore_color );
+ }
+ else
+ {
+ /* errors */
+ switch ( error_code )
+ {
+ case FT_Err_Invalid_Pixel_Size:
+ x2 = sprintf( buf, "Invalid pixel size" );
+ break;
+ case FT_Err_Invalid_PPem:
+ x2 = sprintf( buf, "Invalid ppem value" );
+ break;
+ default:
+ x2 = sprintf( buf, "error 0x%04x",
+ (FT_UShort)error_code );
+ }
+ grWriteCellString( display->bitmap, 8 * x1, line++ * HEADER_HEIGHT,
+ buf, display->warn_color );
+ }
+
+ /* gamma */
+ if ( gamma == 0.0 )
+ sprintf( buf, ", gamma: sRGB mode" );
+ else
+ sprintf( buf, ", gamma: %.1f", gamma );
+ grWriteCellString( display->bitmap, 8 * ( x1 + x2 ),
+ (line++) * HEADER_HEIGHT,
+ buf, display->fore_color );
+ }
+
+
FT_Error
FTDemo_Glyph_To_Bitmap( FTDemo_Handle* handle,
FT_Glyph glyf,
diff --git a/src/ftcommon.h b/src/ftcommon.h
index 67f01ca..45a2156 100644
--- a/src/ftcommon.h
+++ b/src/ftcommon.h
@@ -260,6 +260,16 @@
FT_Size* asize );
+ /* draw common header */
+ void
+ FTDemo_Draw_Header( FTDemo_Handle* handle,
+ FTDemo_Display* display,
+ int ptsize,
+ int res,
+ double gamma,
+ int error_code );
+
+
/* convert a FT_Glyph to a grBitmap (don't free target->buffer) */
/* if aglyf != NULL, you should FT_Glyph_Done the aglyf */
FT_Error
diff --git a/src/ftgrid.c b/src/ftgrid.c
index ba939bc..36087ca 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -1110,13 +1110,6 @@
status.gamma = 0.0;
grSetGlyphGamma( status.gamma );
-
- if ( status.gamma == 0.0 )
- sprintf( status.header_buffer, "gamma changed to sRGB mode" );
- else
- sprintf( status.header_buffer, "gamma changed to %.1f", status.gamma );
-
- status.header = (const char *)status.header_buffer;
}
@@ -1710,64 +1703,35 @@
write_header( FT_Error error_code )
{
FT_Face face;
- const char* basename;
const char* format;
+ FTDemo_Draw_Header( handle, display, status.ptsize, status.res,
+ status.gamma, error_code );
+
+ if ( status.header )
+ grWriteCellString( display->bitmap, 0, 3 * HEADER_HEIGHT,
+ status.header, display->fore_color );
+
error = FTC_Manager_LookupFace( handle->cache_manager,
handle->scaler.face_id, &face );
if ( error )
Fatal( "can't access font file" );
- if ( !status.header )
- {
- basename = ft_basename( handle->current_font->filepathname );
-
- switch ( error_code )
- {
- case FT_Err_Ok:
- sprintf( status.header_buffer, "%.50s %.50s (file `%.100s')",
- face->family_name, face->style_name, basename );
- break;
-
- case FT_Err_Invalid_Pixel_Size:
- sprintf( status.header_buffer, "Invalid pixel size (file `%.100s')",
- basename );
- break;
-
- case FT_Err_Invalid_PPem:
- sprintf( status.header_buffer, "Invalid ppem value (file `%.100s')",
- basename );
- break;
-
- default:
- sprintf( status.header_buffer, "File `%.100s': error 0x%04x",
- basename, (FT_UShort)error_code );
- break;
- }
-
- status.header = (const char *)status.header_buffer;
- }
-
- grWriteCellString( display->bitmap, 0, 0, status.header,
- display->fore_color );
-
if ( status.mm )
{
- format = " %s axis: %.02f, %gpt, glyph %d";
+ format = "%s axis: %.02f, glyph %d";
snprintf( status.header_buffer, BUFSIZE, format,
status.axis_name[status.current_axis]
? status.axis_name[status.current_axis]
: status.mm->axis[status.current_axis].name,
status.design_pos[status.current_axis] / 65536.0,
- status.ptsize / 64.0,
status.Num );
}
else
{
- format = " %gpt, glyph %d";
+ format = "glyph %d";
snprintf( status.header_buffer, BUFSIZE, format,
- status.ptsize / 64.0,
status.Num );
}
@@ -1796,8 +1760,8 @@
}
status.header = (const char *)status.header_buffer;
- grWriteCellString( display->bitmap, 0, HEADER_HEIGHT,
- status.header_buffer, display->fore_color );
+ grWriteCellString( display->bitmap, 0, 2 * HEADER_HEIGHT,
+ status.header, display->fore_color );
grRefreshSurface( display->surface );
}
diff --git a/src/ftstring.c b/src/ftstring.c
index 4d46a7a..5ee0bf2 100644
--- a/src/ftstring.c
+++ b/src/ftstring.c
@@ -524,62 +524,12 @@
static void
write_header( FT_Error error_code )
{
- FT_Face face;
- const char* basename;
- double ppem = 0.0;
+ FTDemo_Draw_Header( handle, display, status.ptsize, status.res,
+ status.gamma, error_code );
-
- error = FTC_Manager_LookupFace( handle->cache_manager,
- handle->scaler.face_id, &face );
- if ( error )
- PanicZ( "can't access font file" );
-
- if ( !status.header )
- {
- basename = ft_basename( handle->current_font->filepathname );
-
- switch ( error_code )
- {
- case FT_Err_Ok:
- sprintf( status.header_buffer,
- "%.50s %.50s (file `%.100s')", face->family_name,
- face->style_name, basename );
-
- if ( FT_IS_SCALABLE( face ) )
- ppem = FT_MulFix( face->units_per_EM,
- face->size->metrics.y_scale ) / 64.0;
- else
- ppem = (double)face->size->metrics.y_ppem;
-
- break;
-
- case FT_Err_Invalid_Pixel_Size:
- sprintf( status.header_buffer, "Invalid pixel size (file `%.100s')",
- basename );
- break;
-
- case FT_Err_Invalid_PPem:
- sprintf( status.header_buffer, "Invalid ppem value (file `%.100s')",
- basename );
- break;
-
- default:
- sprintf( status.header_buffer, "File `%.100s': error 0x%04x", basename,
- (FT_UShort)error_code );
- break;
- }
-
- status.header = status.header_buffer;
- }
-
- grWriteCellString( display->bitmap, 0, 0,
- status.header, display->fore_color );
-
- sprintf( status.header_buffer,
- "at %g points (%.4g ppem), angle = %d, gamma = %g",
- status.ptsize / 64.0, ppem, status.angle, status.gamma );
- grWriteCellString( display->bitmap, 0, CELLSTRING_HEIGHT,
- status.header_buffer, display->fore_color );
+ if ( status.header )
+ grWriteCellString( display->bitmap, 0, 2 * HEADER_HEIGHT,
+ status.header, display->fore_color );
grRefreshSurface( display->surface );
}
diff --git a/src/ftview.c b/src/ftview.c
index 1060a57..15ded59 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -1374,69 +1374,19 @@
{
FT_Face face;
char buf[256];
- const char* basename;
const char* format;
- int line = 0, x;
+ int line = 2;
+ FTDemo_Draw_Header( handle, display, status.ptsize, status.res,
+ status.gamma, error_code );
+
error = FTC_Manager_LookupFace( handle->cache_manager,
handle->scaler.face_id, &face );
if ( error )
Fatal( "can't access font file" );
- /* font and file name */
- basename = ft_basename( handle->current_font->filepathname );
- sprintf( buf, "%.50s %.50s (file `%.100s')",
- face->family_name, face->style_name, basename );
- grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
- buf, display->fore_color );
-
- /* pt and dpi */
- x = sprintf( buf, "%gpt at %ddpi ",
- status.ptsize / 64.0, status.res );
- grWriteCellString( display->bitmap, 0, line * HEADER_HEIGHT,
- buf, display->fore_color );
-
- if ( error_code == FT_Err_Ok )
- {
- int highlight;
-
-
- highlight = abs( status.ptsize * status.res -
- face->size->metrics.y_ppem * 72 * 64 ) > 36 * 64;
-
- /* ppem */
- if ( FT_IS_SCALABLE( face ) )
- sprintf( buf, "(%.4gppem)",
- FT_MulFix( face->units_per_EM,
- face->size->metrics.y_scale ) / 64.0 );
- else
- sprintf( buf, "(%dppem)",
- face->size->metrics.y_ppem );
- grWriteCellString( display->bitmap, 8 * x , (line++) * HEADER_HEIGHT,
- buf, highlight ? display->warn_color
- : display->fore_color );
- }
- else
- {
- /* errors */
- switch ( error_code )
- {
- case FT_Err_Invalid_Pixel_Size:
- sprintf( buf, "Invalid pixel size" );
- break;
- case FT_Err_Invalid_PPem:
- sprintf( buf, "Invalid ppem value" );
- break;
- default:
- sprintf( buf, "error 0x%04x",
- (FT_UShort)error_code );
- }
- grWriteCellString( display->bitmap, 8 * x, (line++) * HEADER_HEIGHT,
- buf, display->warn_color );
- }
-
/* char code, glyph index, glyph name */
if ( status.encoding == FT_ENCODING_UNICODE ||
status.render_mode == RENDER_MODE_TEXT ||
@@ -1741,14 +1691,6 @@
grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
buf, display->fore_color );
- /* gamma */
- if ( status.gamma == 0.0 )
- sprintf( buf, "gamma: sRGB mode" );
- else
- sprintf( buf, "gamma: %.1f", status.gamma );
- grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
- buf, display->fore_color );
-
line++;
/* LCD filtering */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 02ef7d7: [ftgrid, ftstring, ftview] Unify top header lines.,
Alexei Podtelezhnikov <=