int rdtk_font_load_descriptor(rdtkFont* font, const char* filename) { int size; char* buffer; buffer = rdtk_font_load_descriptor_file(filename, &size); if (!buffer) return -1; return rdtk_font_parse_descriptor_buffer(font, (BYTE*) buffer, size); }
rdtkFont* rdtk_embedded_font_new(rdtkEngine* engine, BYTE* imageData, int imageSize, BYTE* descriptorData, int descriptorSize) { int size; int status; BYTE* buffer; rdtkFont* font; font = (rdtkFont*) calloc(1, sizeof(rdtkFont)); if (!font) return NULL; font->engine = engine; font->image = winpr_image_new(); if (!font->image) { free(font); return NULL; } status = winpr_image_read_buffer(font->image, imageData, imageSize); if (status < 0) { winpr_image_free(font->image, TRUE); free(font); return NULL; } size = descriptorSize; buffer = (BYTE*) malloc(size); if (!buffer) { winpr_image_free(font->image, TRUE); free(font); return NULL; } CopyMemory(buffer, descriptorData, size); status = rdtk_font_parse_descriptor_buffer(font, buffer, size); free(buffer); return font; }