Calculate the extent of a string of text
PhRect_t *PgExtentText( PhRect_t *extent, PhPoint_t const *pos, char const *font, char const *str, unsigned n );
ph
This function determines the extent that would be occupied if str were rendered at pos, using font (which you should create by calling PfGenerateFontName()). The extent information is stored in the PhRect_t structure pointed to by extent. If you pass extent as NULL, the function returns NULL.
The function calculates the extent of the first n characters of the string. To have the function calculate the extent of the entire string, set n to zero. If you pass pos as NULL, it's assumed to be (0,0).
The same as pointer extent, or NULL if an error occurred.
The following fragment determines the extent of a string drawn in 18-point, bold, italic Helvetica:
PhRect_t extent; char Helvetica18bi[MAX_FONT_TAG]; if(PfGenerateFontName("Helvetica", PF_STYLE_BOLD | PF_STYLE_ITALIC, 18, Helvetica18bi) == NULL) { perror("Unable to find font"); } else { if( PgExtentText( &extent, NULL, Helvetica18bi, "Hello World!", 0 ) ) { printf( "Ascent: %d Descent: %d Width: %d\n", -extent.ul.y, extent.lr.y, extent.lr.x - extent.ul.x + 1 ); } else { printf( "Error.\n" ); } }
Photon
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | No |
PfGenerateFontName(), PgDrawMultiTextArea(), PgDrawText(), PgExtentMultiText(), PgSetFont(), PhPoint_t, PhRect_t
“Text” in the Raw Drawing and Animation chapter of the Photon Programmer's Guide