hjustification == that.hjustification &&
vjustification == that.vjustification &&
EQUIV(pixels_per_second, that.pixels_per_second) &&
hjustification == that.hjustification &&
vjustification == that.vjustification &&
EQUIV(pixels_per_second, that.pixels_per_second) &&
(plugin->config.style & FONT_OUTLINE))
{
glyph->data_stroke = new VFrame(0,
(plugin->config.style & FONT_OUTLINE))
{
glyph->data_stroke = new VFrame(0,
glyph->top = (bbox.yMax + 31) >> 6;
glyph->freetype_index = gindex;
glyph->advance_w = ((freetype_face->glyph->advance.x + 31) >> 6);
glyph->top = (bbox.yMax + 31) >> 6;
glyph->freetype_index = gindex;
glyph->advance_w = ((freetype_face->glyph->advance.x + 31) >> 6);
//glyph->width, glyph->height, glyph->pitch, glyph->left, glyph->top, glyph->advance_w, glyph->freetype_index);
//glyph->width, glyph->height, glyph->pitch, glyph->left, glyph->top, glyph->advance_w, glyph->freetype_index);
FT_Stroker_Set(stroker, (int)(plugin->config.stroke_width * 64), FT_STROKER_LINECAP_ROUND, FT_STROKER_LINEJOIN_ROUND, 0);
FT_Stroker_ParseOutline(stroker, &((FT_OutlineGlyph) glyph_image)->outline,1);
FT_Stroker_GetCounts(stroker,&npoints, &ncontours);
FT_Stroker_Set(stroker, (int)(plugin->config.stroke_width * 64), FT_STROKER_LINECAP_ROUND, FT_STROKER_LINEJOIN_ROUND, 0);
FT_Stroker_ParseOutline(stroker, &((FT_OutlineGlyph) glyph_image)->outline,1);
FT_Stroker_GetCounts(stroker,&npoints, &ncontours);
{
// this never happens, but FreeType has a bug regarding Linotype's Palatino font
FT_Stroker_Done(stroker);
{
// this never happens, but FreeType has a bug regarding Linotype's Palatino font
FT_Stroker_Done(stroker);
outline.n_contours=0;
FT_Stroker_Export (stroker, &outline);
FT_Outline_Get_BBox(&outline, &bbox);
outline.n_contours=0;
FT_Stroker_Export (stroker, &outline);
FT_Outline_Get_BBox(&outline, &bbox);
FT_Outline_Translate(&((FT_OutlineGlyph) glyph_image)->outline,
- bbox.xMin,
- bbox.yMin + (int)(plugin->config.stroke_width*32));
// printf("Stroke: Xmin: %ld, Xmax: %ld, Ymin: %ld, yMax: %ld\nFill Xmin: %ld, Xmax: %ld, Ymin: %ld, yMax: %ld\n",
// bbox.xMin,bbox.xMax, bbox.yMin, bbox.yMax,
// bbox_fill.xMin,bbox_fill.xMax, bbox_fill.yMin, bbox_fill.yMax);
FT_Outline_Translate(&((FT_OutlineGlyph) glyph_image)->outline,
- bbox.xMin,
- bbox.yMin + (int)(plugin->config.stroke_width*32));
// printf("Stroke: Xmin: %ld, Xmax: %ld, Ymin: %ld, yMax: %ld\nFill Xmin: %ld, Xmax: %ld, Ymin: %ld, yMax: %ld\n",
// bbox.xMin,bbox.xMax, bbox.yMin, bbox.yMax,
// bbox_fill.xMin,bbox_fill.xMax, bbox_fill.yMin, bbox_fill.yMax);
glyph->width = bm.width = ((bbox.xMax - bbox.xMin) >> 6)+1;
glyph->height = bm.rows = ((bbox.yMax - bbox.yMin) >> 6) +1;
glyph->pitch = bm.pitch = bm.width;
glyph->width = bm.width = ((bbox.xMax - bbox.xMin) >> 6)+1;
glyph->height = bm.rows = ((bbox.yMax - bbox.yMin) >> 6) +1;
glyph->pitch = bm.pitch = bm.width;
if (glyph->left < 0) glyph->left = 0;
glyph->top = (bbox.yMax + 31) >> 6;
glyph->freetype_index = gindex;
if (glyph->left < 0) glyph->left = 0;
glyph->top = (bbox.yMax + 31) >> 6;
glyph->freetype_index = gindex;
//glyph->width, glyph->height, glyph->pitch, glyph->left, glyph->top, glyph->advance_w, glyph->freetype_index);
//glyph->width, glyph->height, glyph->pitch, glyph->left, glyph->top, glyph->advance_w, glyph->freetype_index);
bm.buffer=glyph->data->get_data();
FT_Outline_Get_Bitmap( freetype_library,
&((FT_OutlineGlyph) glyph_image)->outline,
bm.buffer=glyph->data->get_data();
FT_Outline_Get_Bitmap( freetype_library,
&((FT_OutlineGlyph) glyph_image)->outline,
bm.buffer=glyph->data_stroke->get_data();
FT_Outline_Get_Bitmap( freetype_library,
&outline,
bm.buffer=glyph->data_stroke->get_data();
FT_Outline_Get_Bitmap( freetype_library,
&outline,
{
draw_glyph(plugin->text_mask, glyph, pkg->x, pkg->y);
if(plugin->config.stroke_width >= ZERO &&
{
draw_glyph(plugin->text_mask, glyph, pkg->x, pkg->y);
if(plugin->config.stroke_width >= ZERO &&
v);
TRANSLATE(uint16_t, 0xffff, 3, y, u, v);
break;
}
case BC_RGBA8888:
v);
TRANSLATE(uint16_t, 0xffff, 3, y, u, v);
break;
}
case BC_RGBA8888:
TRANSLATE(unsigned char, 0xff, 4, r_in, g_in, b_in);
break;
}
case BC_YUVA8888:
TRANSLATE(unsigned char, 0xff, 4, r_in, g_in, b_in);
break;
}
case BC_YUVA8888:
unsigned char y, u, v;
yuv.rgb_to_yuv_8(r_in, g_in, b_in, y, u, v);
TRANSLATE(unsigned char, 0xff, 4, y, u, v);
break;
}
case BC_RGBA16161616:
unsigned char y, u, v;
yuv.rgb_to_yuv_8(r_in, g_in, b_in, y, u, v);
TRANSLATE(unsigned char, 0xff, 4, y, u, v);
break;
}
case BC_RGBA16161616:
v);
TRANSLATE(uint16_t, 0xffff, 4, y, u, v);
break;
v);
TRANSLATE(uint16_t, 0xffff, 4, y, u, v);
break;
plugin->mask_y1 + plugin->text_mask->get_h(),
0,
plugin->text_mask->get_h(),
plugin->mask_y1 + plugin->text_mask->get_h(),
0,
plugin->text_mask->get_h(),
// out_y1, out_y2, out_y1_int, out_y2_int);
for(int i = 0; i < get_total_packages(); i++)
{
// out_y1, out_y2, out_y1_int, out_y2_int);
for(int i = 0; i < get_total_packages(); i++)
{
strcpy(ptr + 1, FONT_SEARCHPATH);
char command_line[BCTEXTLEN];
strcpy(ptr + 1, FONT_SEARCHPATH);
char command_line[BCTEXTLEN];
{
//printf("TitleMain::build_fonts 1 %s\n", entry->path);
// This takes a real long time to do. Instead just take all fonts
{
//printf("TitleMain::build_fonts 1 %s\n", entry->path);
// This takes a real long time to do. Instead just take all fonts
strcpy(entry->fixed_title, string);
if(!strcasecmp(entry->weight, "demibold") ||
strcpy(entry->fixed_title, string);
if(!strcasecmp(entry->weight, "demibold") ||
entry->fixed_style |= FONT_BOLD;
if(!strcasecmp(entry->slant, "i") ||
entry->fixed_style |= FONT_BOLD;
if(!strcasecmp(entry->slant, "i") ||
entry->fixed_style |= FONT_ITALIC;
fonts->append(entry);
// printf("TitleMain::build_fonts %s: success\n",
entry->fixed_style |= FONT_ITALIC;
fonts->append(entry);
// printf("TitleMain::build_fonts %s: success\n",
//printf("TitleMain::get_char_advance 1 %c %c %p %p\n", current, next, current_glyph, next_glyph);
if(next_glyph)
//printf("TitleMain::get_char_advance 1 %c %c %p %p\n", current, next, current_glyph, next_glyph);
if(next_glyph)
current_glyph->freetype_index,
next_glyph->freetype_index,
ft_kerning_default,
current_glyph->freetype_index,
next_glyph->freetype_index,
ft_kerning_default,
iconv (cd, &inp, &inbytes, &outp, &outbytes);
#if __BYTE_ORDER == __LITTLE_ENDIAN
char_code = bswap_32(char_code);
#endif /* Big endian. */
}
iconv (cd, &inp, &inbytes, &outp, &outbytes);
#if __BYTE_ORDER == __LITTLE_ENDIAN
char_code = bswap_32(char_code);
#endif /* Big endian. */
}
int row_start = 0;
text_len = strlen(config.text);
if(!char_positions) char_positions = new title_char_position_t[text_len];
int row_start = 0;
text_len = strlen(config.text);
if(!char_positions) char_positions = new title_char_position_t[text_len];
- float magnitude = config.pixels_per_second *
- ((get_source_position() - get_source_start()) -
- (config.prev_keyframe_position - get_source_start())) /
+ float magnitude = config.pixels_per_second *
+ ((get_source_position() - get_source_start()) -
+ (config.prev_keyframe_position - get_source_start())) /
- float magnitude = config.pixels_per_second *
- (get_source_position() -
- get_source_start() -
- config.prev_keyframe_position) /
+ float magnitude = config.pixels_per_second *
+ (get_source_position() -
+ get_source_start() -
+ config.prev_keyframe_position) /
- float magnitude = config.pixels_per_second *
- (get_source_position() -
- get_source_start() -
- config.prev_keyframe_position) /
+ float magnitude = config.pixels_per_second *
+ (get_source_position() -
+ get_source_start() -
+ config.prev_keyframe_position) /
-// printf("TitleMain::overlay_mask %lld %lld %lld\n",
-// get_source_position(),
+// printf("TitleMain::overlay_mask %lld %lld %lld\n",
+// get_source_position(),
// config.prev_keyframe_position,
// config.next_keyframe_position);
if(!EQUIV(config.fade_in, 0))
{
int fade_len = (int)(config.fade_in * PluginVClient::project_frame_rate);
// config.prev_keyframe_position,
// config.next_keyframe_position);
if(!EQUIV(config.fade_in, 0))
{
int fade_len = (int)(config.fade_in * PluginVClient::project_frame_rate);
/* get_source_start() - */
config.prev_keyframe_position;
if(fade_position >= 0 && fade_position < fade_len)
{
/* get_source_start() - */
config.prev_keyframe_position;
if(fade_position >= 0 && fade_position < fade_len)
{
if(!translate) translate = new TitleTranslate(this, PluginClient::smp + 1);
translate->process_packages();
if (config.stroke_width >= ZERO &&
if(!translate) translate = new TitleTranslate(this, PluginClient::smp + 1);
translate->process_packages();
if (config.stroke_width >= ZERO &&
- Units::totext(config.text,
- (double)get_source_position() / PluginVClient::project_frame_rate,
- TIME_HMSF,
+ Units::totext(config.text,
+ (double)get_source_position() / PluginVClient::project_frame_rate,
+ TIME_HMSF,
config.stroke_width >= 512) config.stroke_width = 0.0;
if(!strlen(config.text)) return 0;
if(!strlen(config.encoding)) strcpy(config.encoding, DEFAULT_ENCODING);
config.stroke_width >= 512) config.stroke_width = 0.0;
if(!strlen(config.text)) return 0;
if(!strlen(config.encoding)) strcpy(config.encoding, DEFAULT_ENCODING);