Merge branch 'master' into blender2.8

This commit is contained in:
Campbell Barton 2018-07-31 17:03:28 +10:00
commit 5300ba0ba5
Notes: blender-bot 2023-02-14 05:30:26 +01:00
Referenced by issue #56167, [2.8 Crash] Program crash when extruding+face snap
7 changed files with 16 additions and 28 deletions

View File

@ -49,9 +49,6 @@ void BLF_default_set(int fontid);
int BLF_default(void); /* get default font ID so we can pass it to other functions */
void BLF_batch_reset(void); /* call when changing opengl context. */
void BLF_antialias_set(bool enabled);
bool BLF_antialias_get(void);
void BLF_cache_clear(void);
int BLF_load(const char *name) ATTR_NONNULL();
@ -232,6 +229,7 @@ void BLF_state_print(int fontid);
#define BLF_ASPECT (1 << 5)
#define BLF_HINTING (1 << 6)
#define BLF_WORD_WRAP (1 << 7)
#define BLF_MONOCHROME (1 << 8) /* no-AA */
#define BLF_DRAW_STR_DUMMY_MAX 1024

View File

@ -85,7 +85,6 @@ static FontBLF *global_font[BLF_MAX_FONT] = {NULL};
static int global_font_default = -1;
static int global_font_points = 11;
static int global_font_dpi = 72;
static bool global_use_antialias = true;
/* XXX, should these be made into global_font_'s too? */
int blf_mono_font = -1;
@ -190,16 +189,6 @@ int BLF_default(void)
return global_font_default;
}
void BLF_antialias_set(bool enabled)
{
global_use_antialias = enabled;
}
bool BLF_antialias_get(void)
{
return global_use_antialias;
}
int BLF_load(const char *name)
{
FontBLF *font;

View File

@ -269,7 +269,6 @@ GlyphBLF *blf_glyph_add(FontBLF *font, unsigned int index, unsigned int c)
GlyphBLF *g;
FT_Error err;
FT_Bitmap bitmap, tempbitmap;
const bool is_sharp = !BLF_antialias_get();
int flags = FT_LOAD_TARGET_NORMAL | FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP;
FT_BBox bbox;
unsigned int key;
@ -294,10 +293,12 @@ GlyphBLF *blf_glyph_add(FontBLF *font, unsigned int index, unsigned int c)
if (font->flags & BLF_HINTING)
flags &= ~FT_LOAD_NO_HINTING;
if (is_sharp)
if (font->flags & BLF_MONOCHROME) {
err = FT_Load_Glyph(font->face, (FT_UInt)index, FT_LOAD_TARGET_MONO);
else
}
else {
err = FT_Load_Glyph(font->face, (FT_UInt)index, flags);
}
if (err) {
BLI_spin_unlock(font->ft_lib_mutex);
@ -307,7 +308,7 @@ GlyphBLF *blf_glyph_add(FontBLF *font, unsigned int index, unsigned int c)
/* get the glyph. */
slot = font->face->glyph;
if (is_sharp) {
if (font->flags & BLF_MONOCHROME) {
err = FT_Render_Glyph(slot, FT_RENDER_MODE_MONO);
/* Convert result from 1 bit per pixel to 8 bit per pixel */
@ -336,7 +337,7 @@ GlyphBLF *blf_glyph_add(FontBLF *font, unsigned int index, unsigned int c)
g->height = (int)bitmap.rows;
if (g->width && g->height) {
if (is_sharp) {
if (font->flags & BLF_MONOCHROME) {
/* Font buffer uses only 0 or 1 values, Blender expects full 0..255 range */
int i;
for (i = 0; i < (g->width * g->height); i++) {

View File

@ -532,6 +532,13 @@ void uiStyleInit(void)
flag_disable |= BLF_HINTING;
}
if (U.text_render & USER_TEXT_DISABLE_AA) {
flag_enable |= BLF_MONOCHROME;
}
else {
flag_disable |= BLF_MONOCHROME;
}
for (font = U.uifonts.first; font; font = font->next) {
if (font->blf_id != -1) {
BLF_enable(font->blf_id, flag_enable);

View File

@ -414,12 +414,6 @@ static void rna_userdef_text_update(Main *UNUSED(bmain), Scene *UNUSED(scene), P
WM_main_add_notifier(NC_WINDOW, NULL);
}
static void rna_userdef_text_antialiasing_update(Main *bmain, Scene *scene, PointerRNA *ptr)
{
BLF_antialias_set((U.text_render & USER_TEXT_DISABLE_AA) == 0);
rna_userdef_text_update(bmain, scene, ptr);
}
static PointerRNA rna_Theme_space_generic_get(PointerRNA *ptr)
{
return rna_pointer_inherit_refine(ptr, &RNA_ThemeSpaceGeneric, ptr->data);
@ -4352,7 +4346,7 @@ static void rna_def_userdef_system(BlenderRNA *brna)
prop = RNA_def_property(srna, "use_text_antialiasing", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "text_render", USER_TEXT_DISABLE_AA);
RNA_def_property_ui_text(prop, "Text Anti-aliasing", "Draw user interface text anti-aliased");
RNA_def_property_update(prop, 0, "rna_userdef_text_antialiasing_update");
RNA_def_property_update(prop, 0, "rna_userdef_text_update");
prop = RNA_def_property(srna, "use_text_hinting", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "text_render", USER_TEXT_DISABLE_HINTING);

View File

@ -500,6 +500,7 @@ PyObject *BPyInit_blf(void)
PyModule_AddIntConstant(submodule, "SHADOW", BLF_SHADOW);
PyModule_AddIntConstant(submodule, "KERNING_DEFAULT", BLF_KERNING_DEFAULT);
PyModule_AddIntConstant(submodule, "WORD_WRAP", BLF_WORD_WRAP);
PyModule_AddIntConstant(submodule, "MONOCHROME", BLF_MONOCHROME);
return submodule;
}

View File

@ -369,8 +369,6 @@ static void wm_init_userdef(Main *bmain, const bool read_userdef_from_memory)
/* update tempdir from user preferences */
BKE_tempdir_init(U.tempdir);
BLF_antialias_set((U.text_render & USER_TEXT_DISABLE_AA) == 0);
}