BLF: Use Floats for Font Point Sizes
Allow the use of floating-point values for font point sizes, which allows greater precision and flexibility for text output. See D8960 for more information, details, and justification. Differential Revision: https://developer.blender.org/D8960 Reviewed by Campbell Barton
This commit is contained in:
parent
e8a8bb67fc
commit
73047c69ea
Notes:
blender-bot
2023-10-13 01:54:23 +02:00
Referenced by issue #96267, N-Panel font size in 3.1 too big
|
@ -65,7 +65,7 @@ void BLF_metrics_attach(int fontid, unsigned char *mem, int mem_size);
|
|||
|
||||
void BLF_aspect(int fontid, float x, float y, float z);
|
||||
void BLF_position(int fontid, float x, float y, float z);
|
||||
void BLF_size(int fontid, int size, int dpi);
|
||||
void BLF_size(int fontid, float size, int dpi);
|
||||
|
||||
/* goal: small but useful color API */
|
||||
void BLF_color4ubv(int fontid, const unsigned char rgba[4]);
|
||||
|
|
|
@ -363,7 +363,7 @@ void BLF_position(int fontid, float x, float y, float z)
|
|||
}
|
||||
}
|
||||
|
||||
void BLF_size(int fontid, int size, int dpi)
|
||||
void BLF_size(int fontid, float size, int dpi)
|
||||
{
|
||||
FontBLF *font = blf_get(fontid);
|
||||
|
||||
|
@ -910,7 +910,7 @@ void BLF_state_print(int fontid)
|
|||
if (font) {
|
||||
printf("fontid %d %p\n", fontid, (void *)font);
|
||||
printf(" name: '%s'\n", font->name);
|
||||
printf(" size: %u\n", font->size);
|
||||
printf(" size: %f\n", font->size);
|
||||
printf(" dpi: %u\n", font->dpi);
|
||||
printf(" pos: %.6f %.6f %.6f\n", UNPACK3(font->pos));
|
||||
printf(" aspect: (%d) %.6f %.6f %.6f\n",
|
||||
|
|
|
@ -1350,19 +1350,24 @@ void blf_font_free(FontBLF *font)
|
|||
/** \name Font Configure
|
||||
* \{ */
|
||||
|
||||
void blf_font_size(FontBLF *font, unsigned int size, unsigned int dpi)
|
||||
void blf_font_size(FontBLF *font, float size, unsigned int dpi)
|
||||
{
|
||||
blf_glyph_cache_acquire(font);
|
||||
|
||||
/* FreeType uses fixed-point integers in 64ths. */
|
||||
FT_F26Dot6 ft_size = lroundf(size * 64.0f);
|
||||
/* Adjust our size to be on even 64ths. */
|
||||
size = (float)ft_size / 64.0f;
|
||||
|
||||
GlyphCacheBLF *gc = blf_glyph_cache_find(font, size, dpi);
|
||||
if (gc && (font->size == size && font->dpi == dpi)) {
|
||||
/* Optimization: do not call FT_Set_Char_Size if size did not change. */
|
||||
}
|
||||
else {
|
||||
const FT_Error err = FT_Set_Char_Size(font->face, 0, ((FT_F26Dot6)(size)) * 64, dpi, dpi);
|
||||
const FT_Error err = FT_Set_Char_Size(font->face, 0, ft_size, dpi, dpi);
|
||||
if (err) {
|
||||
/* FIXME: here we can go through the fixed size and choice a close one */
|
||||
printf("The current font don't support the size, %u and dpi, %u\n", size, dpi);
|
||||
printf("The current font don't support the size, %f and dpi, %u\n", size, dpi);
|
||||
}
|
||||
else {
|
||||
font->size = size;
|
||||
|
|
|
@ -76,7 +76,7 @@ static FT_Fixed to_16dot16(double val)
|
|||
/**
|
||||
* Find a glyph cache that matches a size, DPI & styles.
|
||||
*/
|
||||
GlyphCacheBLF *blf_glyph_cache_find(FontBLF *font, unsigned int size, unsigned int dpi)
|
||||
GlyphCacheBLF *blf_glyph_cache_find(FontBLF *font, float size, unsigned int dpi)
|
||||
{
|
||||
GlyphCacheBLF *gc = (GlyphCacheBLF *)font->cache.first;
|
||||
while (gc) {
|
||||
|
|
|
@ -52,7 +52,7 @@ struct FontBLF *blf_font_new(const char *name, const char *filename);
|
|||
struct FontBLF *blf_font_new_from_mem(const char *name, const unsigned char *mem, int mem_size);
|
||||
void blf_font_attach_from_mem(struct FontBLF *font, const unsigned char *mem, int mem_size);
|
||||
|
||||
void blf_font_size(struct FontBLF *font, unsigned int size, unsigned int dpi);
|
||||
void blf_font_size(struct FontBLF *font, float size, unsigned int dpi);
|
||||
void blf_font_draw(struct FontBLF *font,
|
||||
const char *str,
|
||||
size_t str_len,
|
||||
|
@ -130,9 +130,7 @@ int blf_font_count_missing_chars(struct FontBLF *font,
|
|||
|
||||
void blf_font_free(struct FontBLF *font);
|
||||
|
||||
struct GlyphCacheBLF *blf_glyph_cache_find(struct FontBLF *font,
|
||||
unsigned int size,
|
||||
unsigned int dpi);
|
||||
struct GlyphCacheBLF *blf_glyph_cache_find(struct FontBLF *font, float size, unsigned int dpi);
|
||||
struct GlyphCacheBLF *blf_glyph_cache_new(struct FontBLF *font);
|
||||
struct GlyphCacheBLF *blf_glyph_cache_acquire(struct FontBLF *font);
|
||||
void blf_glyph_cache_release(struct FontBLF *font);
|
||||
|
|
|
@ -65,7 +65,7 @@ typedef struct GlyphCacheBLF {
|
|||
struct GlyphCacheBLF *prev;
|
||||
|
||||
/* font size. */
|
||||
unsigned int size;
|
||||
float size;
|
||||
|
||||
/* and dpi. */
|
||||
unsigned int dpi;
|
||||
|
@ -205,7 +205,7 @@ typedef struct FontBLF {
|
|||
unsigned int dpi;
|
||||
|
||||
/* font size. */
|
||||
unsigned int size;
|
||||
float size;
|
||||
|
||||
/* Column width when printing monospaced. */
|
||||
int fixed_width;
|
||||
|
|
|
@ -95,7 +95,7 @@ void BLF_thumb_preview(const char *filename,
|
|||
const size_t draw_str_i18n_len = strlen(draw_str_i18n);
|
||||
int draw_str_i18n_nbr = 0;
|
||||
|
||||
blf_font_size(font, (unsigned int)MAX2(font_size_min, font_size_curr), dpi);
|
||||
blf_font_size(font, (float)MAX2(font_size_min, font_size_curr), dpi);
|
||||
gc = blf_glyph_cache_find(font, font->size, font->dpi);
|
||||
/* There will be no matching glyph cache if blf_font_size() failed to set font size. */
|
||||
if (!gc) {
|
||||
|
|
|
@ -369,7 +369,7 @@ static void checker_board_text(
|
|||
char text[3] = {'A', '1', '\0'};
|
||||
const int mono = blf_mono_font_render;
|
||||
|
||||
BLF_size(mono, 54, 72); /* hard coded size! */
|
||||
BLF_size(mono, 54.0f, 72); /* hard coded size! */
|
||||
|
||||
/* OCIO_TODO: using NULL as display will assume using sRGB display
|
||||
* this is correct since currently generated images are assumed to be in sRGB space,
|
||||
|
|
|
@ -245,10 +245,10 @@ enum {
|
|||
};
|
||||
|
||||
/* Default font size for normal text. */
|
||||
#define UI_DEFAULT_TEXT_POINTS 11
|
||||
#define UI_DEFAULT_TEXT_POINTS 11.0f
|
||||
|
||||
/* Larger size used for title text. */
|
||||
#define UI_DEFAULT_TITLE_POINTS 11
|
||||
#define UI_DEFAULT_TITLE_POINTS 11.0f
|
||||
|
||||
#define UI_PANEL_WIDTH 340
|
||||
#define UI_COMPACT_PANEL_WIDTH 160
|
||||
|
|
|
@ -1993,23 +1993,9 @@ void UI_block_end(const bContext *C, uiBlock *block)
|
|||
|
||||
/* ************** BLOCK DRAWING FUNCTION ************* */
|
||||
|
||||
void ui_fontscale(short *points, float aspect)
|
||||
void ui_fontscale(float *points, float aspect)
|
||||
{
|
||||
if (aspect < 0.9f || aspect > 1.1f) {
|
||||
float pointsf = *points;
|
||||
|
||||
/* For some reason scaling fonts goes too fast compared to widget size. */
|
||||
/* XXX(ton): not true anymore? */
|
||||
// aspect = sqrt(aspect);
|
||||
pointsf /= aspect;
|
||||
|
||||
if (aspect > 1.0f) {
|
||||
*points = ceilf(pointsf);
|
||||
}
|
||||
else {
|
||||
*points = floorf(pointsf);
|
||||
}
|
||||
}
|
||||
*points /= aspect;
|
||||
}
|
||||
|
||||
/* Project button or block (but==NULL) to pixels in region-space. */
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
static void icon_draw_rect_input_text(const rctf *rect,
|
||||
const float color[4],
|
||||
const char *str,
|
||||
int font_size)
|
||||
float font_size)
|
||||
{
|
||||
BLF_batch_draw_flush();
|
||||
const int font_id = BLF_default();
|
||||
|
@ -97,7 +97,7 @@ static void icon_draw_rect_input_symbol(const rctf *rect, const float color[4],
|
|||
BLF_batch_draw_flush();
|
||||
const int font_id = blf_mono_font;
|
||||
BLF_color4fv(font_id, color);
|
||||
BLF_size(font_id, 19 * U.pixelsize, U.dpi);
|
||||
BLF_size(font_id, 19.0f * U.pixelsize, U.dpi);
|
||||
const float x = rect->xmin + (2.0f * U.pixelsize);
|
||||
const float y = rect->ymin + (1.0f * U.pixelsize);
|
||||
BLF_position(font_id, x, y, 0.0f);
|
||||
|
@ -152,12 +152,12 @@ void icon_draw_rect_input(float x,
|
|||
|
||||
if ((event_type >= EVT_AKEY) && (event_type <= EVT_ZKEY)) {
|
||||
const char str[2] = {'A' + (event_type - EVT_AKEY), '\0'};
|
||||
icon_draw_rect_input_text(&rect, color, str, 13);
|
||||
icon_draw_rect_input_text(&rect, color, str, 13.0f);
|
||||
}
|
||||
else if ((event_type >= EVT_F1KEY) && (event_type <= EVT_F12KEY)) {
|
||||
char str[4];
|
||||
SNPRINTF(str, "F%d", 1 + (event_type - EVT_F1KEY));
|
||||
icon_draw_rect_input_text(&rect, color, str, event_type > EVT_F9KEY ? 8 : 10);
|
||||
icon_draw_rect_input_text(&rect, color, str, event_type > EVT_F9KEY ? 8.0f : 10.0f);
|
||||
}
|
||||
else if (event_type == EVT_LEFTSHIFTKEY) {
|
||||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x87, 0xa7, 0x0});
|
||||
|
@ -167,7 +167,7 @@ void icon_draw_rect_input(float x,
|
|||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x8c, 0x83, 0x0});
|
||||
}
|
||||
else {
|
||||
icon_draw_rect_input_text(&rect, color, "Ctrl", 9);
|
||||
icon_draw_rect_input_text(&rect, color, "Ctrl", 9.0f);
|
||||
}
|
||||
}
|
||||
else if (event_type == EVT_LEFTALTKEY) {
|
||||
|
@ -175,7 +175,7 @@ void icon_draw_rect_input(float x,
|
|||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x8c, 0xa5, 0x0});
|
||||
}
|
||||
else {
|
||||
icon_draw_rect_input_text(&rect, color, "Alt", 10);
|
||||
icon_draw_rect_input_text(&rect, color, "Alt", 10.0f);
|
||||
}
|
||||
}
|
||||
else if (event_type == EVT_OSKEY) {
|
||||
|
@ -186,20 +186,20 @@ void icon_draw_rect_input(float x,
|
|||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x9d, 0x96, 0x0});
|
||||
}
|
||||
else {
|
||||
icon_draw_rect_input_text(&rect, color, "OS", 10);
|
||||
icon_draw_rect_input_text(&rect, color, "OS", 10.0f);
|
||||
}
|
||||
}
|
||||
else if (event_type == EVT_DELKEY) {
|
||||
icon_draw_rect_input_text(&rect, color, "Del", 9);
|
||||
icon_draw_rect_input_text(&rect, color, "Del", 9.0f);
|
||||
}
|
||||
else if (event_type == EVT_TABKEY) {
|
||||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0xad, 0xbe, 0x0});
|
||||
}
|
||||
else if (event_type == EVT_HOMEKEY) {
|
||||
icon_draw_rect_input_text(&rect, color, "Home", 6);
|
||||
icon_draw_rect_input_text(&rect, color, "Home", 6.0f);
|
||||
}
|
||||
else if (event_type == EVT_ENDKEY) {
|
||||
icon_draw_rect_input_text(&rect, color, "End", 8);
|
||||
icon_draw_rect_input_text(&rect, color, "End", 8.0f);
|
||||
}
|
||||
else if (event_type == EVT_RETKEY) {
|
||||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x8f, 0x8e, 0x0});
|
||||
|
@ -209,14 +209,14 @@ void icon_draw_rect_input(float x,
|
|||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x8e, 0x8b, 0x0});
|
||||
}
|
||||
else {
|
||||
icon_draw_rect_input_text(&rect, color, "Esc", 8);
|
||||
icon_draw_rect_input_text(&rect, color, "Esc", 8.0f);
|
||||
}
|
||||
}
|
||||
else if (event_type == EVT_PAGEUPKEY) {
|
||||
icon_draw_rect_input_text(&rect, color, (const char[]){'P', 0xe2, 0x86, 0x91, 0x0}, 8);
|
||||
icon_draw_rect_input_text(&rect, color, (const char[]){'P', 0xe2, 0x86, 0x91, 0x0}, 8.0f);
|
||||
}
|
||||
else if (event_type == EVT_PAGEDOWNKEY) {
|
||||
icon_draw_rect_input_text(&rect, color, (const char[]){'P', 0xe2, 0x86, 0x93, 0x0}, 8);
|
||||
icon_draw_rect_input_text(&rect, color, (const char[]){'P', 0xe2, 0x86, 0x93, 0x0}, 8.0f);
|
||||
}
|
||||
else if (event_type == EVT_LEFTARROWKEY) {
|
||||
icon_draw_rect_input_symbol(&rect, color, (const char[]){0xe2, 0x86, 0x90, 0x0});
|
||||
|
|
|
@ -609,7 +609,7 @@ typedef struct uiSafetyRct {
|
|||
|
||||
/* interface.c */
|
||||
|
||||
void ui_fontscale(short *points, float aspect);
|
||||
void ui_fontscale(float *points, float aspect);
|
||||
|
||||
extern void ui_block_to_region_fl(const struct ARegion *region,
|
||||
uiBlock *block,
|
||||
|
|
|
@ -1348,7 +1348,7 @@ void UI_panel_category_draw_all(ARegion *region, const char *category_id_active)
|
|||
const uiStyle *style = UI_style_get();
|
||||
const uiFontStyle *fstyle = &style->widget;
|
||||
const int fontid = fstyle->uifont_id;
|
||||
short fstyle_points = fstyle->points;
|
||||
float fstyle_points = fstyle->points;
|
||||
const float aspect = ((uiBlock *)region->uiblocks.first)->aspect;
|
||||
const float zoom = 1.0f / aspect;
|
||||
const int px = U.pixelsize;
|
||||
|
|
|
@ -483,9 +483,9 @@ void uiStyleInit(void)
|
|||
* Yes, this build the glyph cache and create
|
||||
* the texture.
|
||||
*/
|
||||
BLF_size(font->blf_id, 11 * U.pixelsize, U.dpi);
|
||||
BLF_size(font->blf_id, 12 * U.pixelsize, U.dpi);
|
||||
BLF_size(font->blf_id, 14 * U.pixelsize, U.dpi);
|
||||
BLF_size(font->blf_id, 11.0f * U.pixelsize, U.dpi);
|
||||
BLF_size(font->blf_id, 12.0f * U.pixelsize, U.dpi);
|
||||
BLF_size(font->blf_id, 14.0f * U.pixelsize, U.dpi);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -510,7 +510,7 @@ void uiStyleInit(void)
|
|||
blf_mono_font = BLF_load_mono_default(unique);
|
||||
}
|
||||
|
||||
BLF_size(blf_mono_font, 12 * U.pixelsize, 72);
|
||||
BLF_size(blf_mono_font, 12.0f * U.pixelsize, 72);
|
||||
|
||||
/* Set default flags based on UI preferences (not render fonts) */
|
||||
{
|
||||
|
@ -555,7 +555,7 @@ void uiStyleInit(void)
|
|||
blf_mono_font_render = BLF_load_mono_default(unique);
|
||||
}
|
||||
|
||||
BLF_size(blf_mono_font_render, 12 * U.pixelsize, 72);
|
||||
BLF_size(blf_mono_font_render, 12.0f * U.pixelsize, 72);
|
||||
}
|
||||
|
||||
void UI_fontstyle_set(const uiFontStyle *fs)
|
||||
|
|
|
@ -491,7 +491,7 @@ static void knifetool_draw_visible_distances(const KnifeTool_OpData *kcd)
|
|||
float numstr_size[2];
|
||||
float posit[2];
|
||||
const float bg_margin = 4.0f * U.dpi_fac;
|
||||
const int font_size = 14.0f * U.pixelsize;
|
||||
const float font_size = 14.0f * U.pixelsize;
|
||||
const int distance_precision = 4;
|
||||
|
||||
/* Calculate distance and convert to string. */
|
||||
|
@ -561,7 +561,7 @@ static void knifetool_draw_angle(const KnifeTool_OpData *kcd,
|
|||
const float arc_size = 64.0f * U.dpi_fac;
|
||||
const float bg_margin = 4.0f * U.dpi_fac;
|
||||
const float cap_size = 4.0f * U.dpi_fac;
|
||||
const int font_size = 14 * U.pixelsize;
|
||||
const float font_size = 14.0f * U.pixelsize;
|
||||
const int angle_precision = 3;
|
||||
|
||||
/* Angle arc in 3d space. */
|
||||
|
|
|
@ -185,7 +185,7 @@ void ED_image_draw_info(Scene *scene,
|
|||
|
||||
GPU_blend(GPU_BLEND_NONE);
|
||||
|
||||
BLF_size(blf_mono_font, 11 * U.pixelsize, U.dpi);
|
||||
BLF_size(blf_mono_font, 11.0f * U.pixelsize, U.dpi);
|
||||
|
||||
BLF_color3ub(blf_mono_font, 255, 255, 255);
|
||||
SNPRINTF(str, "X:%-4d Y:%-4d |", x, y);
|
||||
|
|
|
@ -342,7 +342,7 @@ static void node_draw_frame_label(bNodeTree *ntree, bNode *node, const float asp
|
|||
/* XXX font id is crap design */
|
||||
const int fontid = UI_style_get()->widgetlabel.uifont_id;
|
||||
NodeFrame *data = (NodeFrame *)node->storage;
|
||||
const int font_size = data->label_size / aspect;
|
||||
const float font_size = data->label_size / aspect;
|
||||
|
||||
char label[MAX_NAME];
|
||||
nodeLabel(ntree, node, label, sizeof(label));
|
||||
|
@ -350,7 +350,7 @@ static void node_draw_frame_label(bNodeTree *ntree, bNode *node, const float asp
|
|||
BLF_enable(fontid, BLF_ASPECT);
|
||||
BLF_aspect(fontid, aspect, aspect, 1.0f);
|
||||
/* clamp otherwise it can suck up a LOT of memory */
|
||||
BLF_size(fontid, MIN2(24, font_size), U.dpi);
|
||||
BLF_size(fontid, MIN2(24.0f, font_size), U.dpi);
|
||||
|
||||
/* title color */
|
||||
int color_id = node_get_colorid(node);
|
||||
|
|
|
@ -70,7 +70,7 @@ static void text_draw_context_init(const SpaceText *st, TextDrawContext *tdc)
|
|||
|
||||
static void text_font_begin(const TextDrawContext *tdc)
|
||||
{
|
||||
BLF_size(tdc->font_id, tdc->lheight_px, 72);
|
||||
BLF_size(tdc->font_id, (float)tdc->lheight_px, 72);
|
||||
}
|
||||
|
||||
static void text_font_end(const TextDrawContext *UNUSED(tdc))
|
||||
|
|
|
@ -645,7 +645,7 @@ static void gizmo_ruler_draw(const bContext *C, wmGizmo *gz)
|
|||
GPU_line_width(1.0f);
|
||||
|
||||
BLF_enable(blf_mono_font, BLF_ROTATION);
|
||||
BLF_size(blf_mono_font, 14 * U.pixelsize, U.dpi);
|
||||
BLF_size(blf_mono_font, 14.0f * U.pixelsize, U.dpi);
|
||||
BLF_rotation(blf_mono_font, 0.0f);
|
||||
|
||||
UI_GetThemeColor3ubv(TH_TEXT, color_text);
|
||||
|
|
|
@ -378,7 +378,7 @@ typedef struct TextVars {
|
|||
char text[512];
|
||||
struct VFont *text_font;
|
||||
int text_blf_id;
|
||||
int text_size;
|
||||
float text_size;
|
||||
float color[4], shadow_color[4], box_color[4];
|
||||
float loc[2];
|
||||
float wrap_width;
|
||||
|
|
|
@ -69,8 +69,9 @@ typedef struct uiFont {
|
|||
typedef struct uiFontStyle {
|
||||
/** Saved in file, 0 is default. */
|
||||
short uifont_id;
|
||||
char _pad1[2];
|
||||
/** Actual size depends on 'global' dpi. */
|
||||
short points;
|
||||
float points;
|
||||
/** Style hint. */
|
||||
short italic, bold;
|
||||
/** Value is amount of pixels blur. */
|
||||
|
@ -82,6 +83,7 @@ typedef struct uiFontStyle {
|
|||
float shadowalpha;
|
||||
/** 1 value, typically white or black anyway. */
|
||||
float shadowcolor;
|
||||
char _pad2[4];
|
||||
} uiFontStyle;
|
||||
|
||||
/* this is fed to the layout engine and widget code */
|
||||
|
|
|
@ -2979,11 +2979,11 @@ static void rna_def_text(StructRNA *srna)
|
|||
RNA_def_property_pointer_funcs(prop, NULL, "rna_Sequence_text_font_set", NULL, NULL);
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update");
|
||||
|
||||
prop = RNA_def_property(srna, "font_size", PROP_INT, PROP_UNSIGNED);
|
||||
RNA_def_property_int_sdna(prop, NULL, "text_size");
|
||||
prop = RNA_def_property(srna, "font_size", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_float_sdna(prop, NULL, "text_size");
|
||||
RNA_def_property_ui_text(prop, "Size", "Size of the text");
|
||||
RNA_def_property_range(prop, 0.0, 2000);
|
||||
RNA_def_property_ui_range(prop, 0.0f, 2000, 1, -1);
|
||||
RNA_def_property_ui_range(prop, 0.0f, 2000, 10.f, 1);
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update");
|
||||
|
||||
prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
|
|
|
@ -1136,10 +1136,11 @@ static void rna_def_userdef_theme_ui_font_style(BlenderRNA *brna)
|
|||
RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
|
||||
RNA_def_struct_ui_text(srna, "Font Style", "Theme settings for Font");
|
||||
|
||||
prop = RNA_def_property(srna, "points", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_range(prop, 6, 24);
|
||||
prop = RNA_def_property(srna, "points", PROP_FLOAT, PROP_UNSIGNED);
|
||||
RNA_def_property_range(prop, 6.0f, 32.0f);
|
||||
RNA_def_property_ui_range(prop, 8.0f, 20.0f, 10.0f, 1);
|
||||
RNA_def_property_ui_text(prop, "Points", "Font size in points");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_theme_text_style_update");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_dpi_update");
|
||||
|
||||
prop = RNA_def_property(srna, "shadow", PROP_INT, PROP_PIXEL);
|
||||
RNA_def_property_range(prop, 0, 5);
|
||||
|
|
|
@ -70,14 +70,15 @@ PyDoc_STRVAR(py_blf_size_doc,
|
|||
"font use 0.\n"
|
||||
" :type fontid: int\n"
|
||||
" :arg size: Point size of the font.\n"
|
||||
" :type size: int\n"
|
||||
" :type size: float\n"
|
||||
" :arg dpi: dots per inch value to use for drawing.\n"
|
||||
" :type dpi: int\n");
|
||||
static PyObject *py_blf_size(PyObject *UNUSED(self), PyObject *args)
|
||||
{
|
||||
int fontid, size, dpi;
|
||||
int fontid, dpi;
|
||||
float size;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "iii:blf.size", &fontid, &size, &dpi)) {
|
||||
if (!PyArg_ParseTuple(args, "ifi:blf.size", &fontid, &size, &dpi)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -3741,7 +3741,7 @@ static void init_text_effect(Sequence *seq)
|
|||
data = seq->effectdata = MEM_callocN(sizeof(TextVars), "textvars");
|
||||
data->text_font = NULL;
|
||||
data->text_blf_id = -1;
|
||||
data->text_size = 60;
|
||||
data->text_size = 60.0f;
|
||||
|
||||
copy_v4_fl(data->color, 1.0f);
|
||||
data->shadow_color[3] = 0.7f;
|
||||
|
@ -3842,7 +3842,7 @@ static int num_inputs_text(void)
|
|||
static int early_out_text(Sequence *seq, float UNUSED(facf0), float UNUSED(facf1))
|
||||
{
|
||||
TextVars *data = seq->effectdata;
|
||||
if (data->text[0] == 0 || data->text_size < 1 ||
|
||||
if (data->text[0] == 0 || data->text_size < 1.0f ||
|
||||
((data->color[3] == 0.0f) &&
|
||||
(data->shadow_color[3] == 0.0f || (data->flag & SEQ_TEXT_SHADOW) == 0))) {
|
||||
return EARLY_USE_INPUT_1;
|
||||
|
|
|
@ -1570,7 +1570,7 @@ static char *wm_main_playanim_intern(int argc, const char **argv)
|
|||
/* initialize the font */
|
||||
BLF_init();
|
||||
ps.fontid = BLF_load_mono_default(false);
|
||||
BLF_size(ps.fontid, 11, 72);
|
||||
BLF_size(ps.fontid, 11.0f, 72);
|
||||
|
||||
ps.ibufx = ibuf->x;
|
||||
ps.ibufy = ibuf->y;
|
||||
|
|
Loading…
Reference in New Issue