Convert a font ID to a font name for backwards compatibility
#include <photon/Pf.h> char *PfConvertFontID( FontID *ptsID ); #include <font_api.h> char* PfConvertFontIDCx( struct _Pf_ctrl * context, FontID * ptsID, char * szTag );
These functions convert the font ID pointed to by ptsID into a font name. This function can be used for backwards compatibility with the older font API.
These functions don't check to see if ptsID is NULL, due to the way this routine is used. |
A version of the font identifier that the older font API can understand.
The return type/value could change in future releases of Photon. |
PfConvertFontID(): See PfFindFont().
PfConvertFontIDCx():
/* A FontID example. Demonstrates aspects of how to process * FontIDs and legacy font stem names. */ #include <font_api.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc, char const * argv[]) { struct _Pf_ctrl * pf; fprintf(stderr, "POINT : FontID.\n"); if((pf = PfAttachCx(NULL, 0)) != NULL) { FontID * id; if((id = PfFindFontCx(pf, "TextFont", 0L, 9)) != NULL) { FontName tag; if(PfConvertFontIDCx(pf, id, tag) != NULL) { FontName tag2; if(PfGenerateFontNameCx(pf, "TextFont", 0L, 9, tag2) != NULL) { if(!strcmp(tag, tag2)) { char const * p; if((p = PfFontBaseStemCx(pf, id)) != NULL) { fprintf(stderr, "NOTE : base stem is %s.\n", p); if((p = PfFontDescriptionCx(pf, id)) != NULL) { uint32_t flags, size; fprintf(stderr, "NOTE : descriptive foundry is %s.\n", p); flags = PfFontFlagsCx(pf, id); fprintf(stderr, "NOTE : flags are %x.\n", flags); size = PfFontSizeCx(pf, id); fprintf(stderr, "NOTE : point size is %d.\n", size); fprintf(stderr, "PASS : FontID.\n"); } else { fprintf(stderr, "NOTE : PfFontDescriptionCx failed, errno %d.\n", errno); fprintf(stderr, "FAIL : FontID.\n"); } } else { fprintf(stderr, "NOTE : PfFontBaseStemCx failed, errno %d.\n", errno); fprintf(stderr, "FAIL : FontID.\n"); } } else { fprintf(stderr, "NOTE : tags are not equivalent.\n"); fprintf(stderr, "FAIL : FontID.\n"); } } else { fprintf(stderr, "NOTE : PfGenerateFontNameCx failed, errno %d.\n", errno); fprintf(stderr, "FAIL : FontID.\n"); } } else { fprintf(stderr, "NOTE : PfConvertFontIDCx failed, errno %d.\n", errno); fprintf(stderr, "FAIL : FontID.\n"); } if(PfFreeFontCx(pf, id) == -1L) { fprintf(stderr, "NOTE : PfFreeFontCx failed, errno %d.\n", errno); } } else { fprintf(stderr, "NOTE : PfFindFontCx failed to create font id, errno %d.\n", errno); fprintf(stderr, "FAIL : FontID.\n"); } PfDetachCx(pf); } else { fprintf(stderr, "UNRES : Unable to attach to fontserver, errno %d.\n", errno); fprintf(stderr, "FAIL : FontID.\n"); } return(0); }
Photon
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | No |
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
PfAttach(), PfAttachCx(), PfAttachDllCx(), PfDecomposeStemToID(), PfDecomposeStemToIDCx(), PfFindFont(), PfFindFontCx(), PfFontDescription(), PfFontDescriptionCx(), PfFontFlags(), PfFontFlagsCx(), PfFontSize(), PfFontSizeCx(), PfFreeFont(), PfFreeFontCx(), PfGenerateFontName(), PfGenerateFontNameCx()
Fonts chapter of the Photon Programmer's Guide