Blender V5.0
vfont.cc File Reference
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cwctype>
#include <optional>
#include "CLG_log.h"
#include "MEM_guardedalloc.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_curve_types.h"
#include "DNA_object_types.h"
#include "DNA_packedFile_types.h"
#include "DNA_vfont_types.h"
#include "BKE_bpath.hh"
#include "BKE_curve.hh"
#include "BKE_global.hh"
#include "BKE_idtype.hh"
#include "BKE_lib_id.hh"
#include "BKE_library.hh"
#include "BKE_main.hh"
#include "BKE_packedFile.hh"
#include "BKE_vfont.hh"
#include "BKE_vfontdata.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Functions

Prototypes
static PackedFilepackedfile_new_from_builtin ()
VFont
void BKE_vfont_data_ensure (VFont *vfont)
void BKE_vfont_data_free (VFont *vfont)
bool BKE_vfont_is_builtin (const VFont *vfont)
void BKE_vfont_builtin_register (const void *mem, int size)
VFontBKE_vfont_load (Main *bmain, const char *filepath)
VFontBKE_vfont_load_exists_ex (Main *bmain, const char *filepath, bool *r_exists)
VFontBKE_vfont_load_exists (Main *bmain, const char *filepath)
VFontBKE_vfont_builtin_ensure ()
VFont Selection
int BKE_vfont_select_get (const Curve *cu, int *r_start, int *r_end)
void BKE_vfont_select_clamp (Curve *cu)

Variables

static CLG_LogRef LOG = {"geom.vfont"}

VFont Data-block

const void * builtin_font_data = nullptr
int builtin_font_size = 0
IDTypeInfo IDType_ID_VF
static void vfont_init_data (ID *id)
static void vfont_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *, const int flag)
static void vfont_free_data (ID *id)
static void vfont_foreach_path (ID *id, BPathForeachPathData *bpath_data)
static void vfont_blend_write (BlendWriter *writer, ID *id, const void *id_address)
static void vfont_blend_read_data (BlendDataReader *reader, ID *id)

VFont Clipboard

struct { 
   char32_t *   text_buffer 
   CharInfo *   info_buffer 
   size_t   len_utf32 
   size_t   len_utf8 
g_vfont_clipboard = {nullptr}
void BKE_vfont_clipboard_free ()
void BKE_vfont_clipboard_set (const char32_t *text_buf, const CharInfo *info_buf, const size_t len)
void BKE_vfont_clipboard_get (char32_t **r_text_buf, CharInfo **r_info_buf, size_t *r_len_utf8, size_t *r_len_utf32)

Function Documentation

◆ BKE_vfont_builtin_ensure()

VFont * BKE_vfont_builtin_ensure ( )

Return the built-in VFont, without adding a user (the user-count may be zero). The caller is responsible for adding a user.

Definition at line 386 of file vfont.cc.

References BKE_vfont_is_builtin(), BKE_vfont_load(), BLI_assert, FO_BUILTIN_NAME, G_MAIN, VFont::id, id_us_min(), LISTBASE_FOREACH, and ID::us.

Referenced by BKE_curve_init(), font_unlink_exec(), blender::nodes::node_geo_string_to_curves_cc::node_init(), and txt_add_object().

◆ BKE_vfont_builtin_register()

void BKE_vfont_builtin_register ( const void * mem,
int size )

Definition at line 282 of file vfont.cc.

References builtin_font_data, builtin_font_size, and size().

Referenced by main(), and BlendfileLoadingBaseTest::SetUpTestCase().

◆ BKE_vfont_clipboard_free()

void BKE_vfont_clipboard_free ( )

Definition at line 471 of file vfont.cc.

References g_vfont_clipboard, and MEM_SAFE_FREE.

Referenced by BKE_vfont_clipboard_set(), paste_text_exec(), and WM_exit_ex().

◆ BKE_vfont_clipboard_get()

void BKE_vfont_clipboard_get ( char32_t ** r_text_buf,
CharInfo ** r_info_buf,
size_t * r_len_utf8,
size_t * r_len_utf32 )

Definition at line 509 of file vfont.cc.

References g_vfont_clipboard.

Referenced by copy_selection(), paste_selection(), and paste_text_exec().

◆ BKE_vfont_clipboard_set()

void BKE_vfont_clipboard_set ( const char32_t * text_buf,
const CharInfo * info_buf,
const size_t len )

◆ BKE_vfont_data_ensure()

◆ BKE_vfont_data_free()

◆ BKE_vfont_is_builtin()

◆ BKE_vfont_load()

◆ BKE_vfont_load_exists()

VFont * BKE_vfont_load_exists ( Main * bmain,
const char * filepath )

Definition at line 381 of file vfont.cc.

References BKE_vfont_load_exists_ex().

◆ BKE_vfont_load_exists_ex()

VFont * BKE_vfont_load_exists_ex ( Main * bmain,
const char * filepath,
bool * r_exists )

◆ BKE_vfont_select_clamp()

void BKE_vfont_select_clamp ( Curve * cu)

◆ BKE_vfont_select_get()

◆ packedfile_new_from_builtin()

PackedFile * packedfile_new_from_builtin ( )
static

◆ vfont_blend_read_data()

void vfont_blend_read_data ( BlendDataReader * reader,
ID * id )
static

◆ vfont_blend_write()

void vfont_blend_write ( BlendWriter * writer,
ID * id,
const void * id_address )
static

◆ vfont_copy_data()

void vfont_copy_data ( Main * ,
std::optional< Library * > ,
ID * id_dst,
const ID * ,
const int flag )
static

◆ vfont_foreach_path()

◆ vfont_free_data()

void vfont_free_data ( ID * id)
static

Free (or release) any data used by this font (does not free the font itself).

Definition at line 107 of file vfont.cc.

References BKE_packedfile_free(), BKE_vfont_data_free(), and VFont::packedfile.

◆ vfont_init_data()

void vfont_init_data ( ID * id)
static

Variable Documentation

◆ builtin_font_data

const void* builtin_font_data = nullptr

◆ builtin_font_size

int builtin_font_size = 0

◆ [struct]

struct { ... } g_vfont_clipboard

◆ IDType_ID_VF

IDTypeInfo IDType_ID_VF
Initial value:
= {
VFont::id_type,
0,
sizeof(VFont),
"Font",
N_("fonts"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:47
@ IDTYPE_FLAGS_NO_ANIMDATA
Definition BKE_idtype.hh:49
#define BLT_I18NCONTEXT_ID_VFONT
#define FILTER_ID_VF
Definition DNA_ID.h:1222
@ INDEX_ID_VF
Definition DNA_ID.h:1300
#define N_(msgid)
static void vfont_init_data(ID *id)
Definition vfont.cc:63
static void vfont_blend_read_data(BlendDataReader *reader, ID *id)
Definition vfont.cc:157
static void vfont_copy_data(Main *, std::optional< Library * >, ID *id_dst, const ID *, const int flag)
Definition vfont.cc:83
static void vfont_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Definition vfont.cc:118
static void vfont_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition vfont.cc:135
static void vfont_free_data(ID *id)
Definition vfont.cc:107

Definition at line 165 of file vfont.cc.

◆ info_buffer

CharInfo* info_buffer

Definition at line 466 of file vfont.cc.

◆ len_utf32

size_t len_utf32

Definition at line 467 of file vfont.cc.

◆ len_utf8

size_t len_utf8

Definition at line 468 of file vfont.cc.

Referenced by copy_selection(), font_select_to_buffer(), and paste_text_exec().

◆ LOG

CLG_LogRef LOG = {"geom.vfont"}
static

Definition at line 46 of file vfont.cc.

◆ text_buffer

char32_t* text_buffer

Definition at line 465 of file vfont.cc.