BLF_draw functions take an extra length argument, so the console drawing doenst need to swap in NULL chars to draw word wrapping.
This commit is contained in:
@@ -48,12 +48,12 @@ void BLF_position(int fontid, float x, float y, float z);
|
||||
void BLF_size(int fontid, int size, int dpi);
|
||||
|
||||
/* Draw the string using the default font, size and dpi. */
|
||||
void BLF_draw_default(float x, float y, float z, const char *str);
|
||||
void BLF_draw_default_ascii(float x, float y, float z, const char *str);
|
||||
void BLF_draw_default(float x, float y, float z, const char *str, size_t len);
|
||||
void BLF_draw_default_ascii(float x, float y, float z, const char *str, size_t len);
|
||||
|
||||
/* Draw the string using the current font. */
|
||||
void BLF_draw(int fontid, const char *str);
|
||||
void BLF_draw_ascii(int fontid, const char *str);
|
||||
void BLF_draw(int fontid, const char *str, size_t len);
|
||||
void BLF_draw_ascii(int fontid, const char *str, size_t len);
|
||||
|
||||
/*
|
||||
* This function return the bounding box of the string
|
||||
|
||||
@@ -361,7 +361,7 @@ void BLF_blur(int fontid, int size)
|
||||
font->blur= size;
|
||||
}
|
||||
|
||||
void BLF_draw_default(float x, float y, float z, const char *str)
|
||||
void BLF_draw_default(float x, float y, float z, const char *str, size_t len)
|
||||
{
|
||||
if (!str)
|
||||
return;
|
||||
@@ -376,10 +376,10 @@ void BLF_draw_default(float x, float y, float z, const char *str)
|
||||
|
||||
BLF_size(global_font_default, global_font_points, global_font_dpi);
|
||||
BLF_position(global_font_default, x, y, z);
|
||||
BLF_draw(global_font_default, str);
|
||||
BLF_draw(global_font_default, str, len);
|
||||
}
|
||||
/* same as above but call 'BLF_draw_ascii' */
|
||||
void BLF_draw_default_ascii(float x, float y, float z, const char *str)
|
||||
void BLF_draw_default_ascii(float x, float y, float z, const char *str, size_t len)
|
||||
{
|
||||
if (!str)
|
||||
return;
|
||||
@@ -394,7 +394,7 @@ void BLF_draw_default_ascii(float x, float y, float z, const char *str)
|
||||
|
||||
BLF_size(global_font_default, global_font_points, global_font_dpi);
|
||||
BLF_position(global_font_default, x, y, z);
|
||||
BLF_draw_ascii(global_font_default, str);
|
||||
BLF_draw_ascii(global_font_default, str, len); /* XXX, use real length */
|
||||
}
|
||||
|
||||
void BLF_rotation_default(float angle)
|
||||
@@ -432,22 +432,22 @@ static void blf_draw__end(void)
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
void BLF_draw(int fontid, const char *str)
|
||||
void BLF_draw(int fontid, const char *str, size_t len)
|
||||
{
|
||||
FontBLF *font= BLF_get(fontid);
|
||||
if (font) {
|
||||
blf_draw__start(font);
|
||||
blf_font_draw(font, str);
|
||||
blf_font_draw(font, str, len);
|
||||
blf_draw__end();
|
||||
}
|
||||
}
|
||||
|
||||
void BLF_draw_ascii(int fontid, const char *str)
|
||||
void BLF_draw_ascii(int fontid, const char *str, size_t len)
|
||||
{
|
||||
FontBLF *font= BLF_get(fontid);
|
||||
if (font) {
|
||||
blf_draw__start(font);
|
||||
blf_font_draw_ascii(font, str);
|
||||
blf_font_draw_ascii(font, str, len);
|
||||
blf_draw__end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ void blf_font_size(FontBLF *font, int size, int dpi)
|
||||
}
|
||||
}
|
||||
|
||||
void blf_font_draw(FontBLF *font, const char *str)
|
||||
void blf_font_draw(FontBLF *font, const char *str, unsigned int len)
|
||||
{
|
||||
unsigned int c;
|
||||
GlyphBLF *g, *g_prev;
|
||||
@@ -110,7 +110,7 @@ void blf_font_draw(FontBLF *font, const char *str)
|
||||
has_kerning= FT_HAS_KERNING(font->face);
|
||||
g_prev= NULL;
|
||||
|
||||
while (str[i]) {
|
||||
while (str[i] && i < len) {
|
||||
c= blf_utf8_next((unsigned char *)str, &i);
|
||||
if (c == 0)
|
||||
break;
|
||||
@@ -147,7 +147,7 @@ void blf_font_draw(FontBLF *font, const char *str)
|
||||
}
|
||||
|
||||
/* faster version of blf_font_draw, ascii only for view dimensions */
|
||||
void blf_font_draw_ascii(FontBLF *font, const char *str)
|
||||
void blf_font_draw_ascii(FontBLF *font, const char *str, unsigned int len)
|
||||
{
|
||||
char c;
|
||||
GlyphBLF *g, *g_prev;
|
||||
@@ -177,7 +177,7 @@ void blf_font_draw_ascii(FontBLF *font, const char *str)
|
||||
}
|
||||
}
|
||||
|
||||
while ((c= *(str++))) {
|
||||
while ((c= *(str++)) && len--) {
|
||||
g= font->glyph_ascii_table[c];
|
||||
|
||||
/* if we don't found a glyph, skip it. */
|
||||
|
||||
@@ -44,8 +44,8 @@ FontBLF *blf_font_new_from_mem(char *name, unsigned char *mem, int mem_size);
|
||||
void blf_font_attach_from_mem(FontBLF *font, const unsigned char *mem, int mem_size);
|
||||
|
||||
void blf_font_size(FontBLF *font, int size, int dpi);
|
||||
void blf_font_draw(FontBLF *font, const char *str);
|
||||
void blf_font_draw_ascii(FontBLF *font, const char *str);
|
||||
void blf_font_draw(FontBLF *font, const char *str, unsigned int len);
|
||||
void blf_font_draw_ascii(FontBLF *font, const char *str, unsigned int len);
|
||||
void blf_font_buffer(FontBLF *font, char *str);
|
||||
void blf_font_boundbox(FontBLF *font, char *str, rctf *box);
|
||||
void blf_font_width_and_height(FontBLF *font, char *str, float *width, float *height);
|
||||
|
||||
@@ -856,7 +856,7 @@ void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol),
|
||||
sprintf(str,"%-3d",i*20);
|
||||
str[3]='\0';
|
||||
fdrawline(rect.xmin+22, yofs+(i/5.f)*h, rect.xmax+1, yofs+(i/5.f)*h);
|
||||
BLF_draw_default(rect.xmin+1, yofs-5+(i/5.f)*h, 0, str);
|
||||
BLF_draw_default(rect.xmin+1, yofs-5+(i/5.f)*h, 0, str, sizeof(str)-1);
|
||||
/* in the loop because blf_draw reset it */
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
@@ -165,7 +165,7 @@ void uiStyleFontDraw(uiFontStyle *fs, rcti *rect, char *str)
|
||||
if (fs->kerning == 1)
|
||||
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
|
||||
|
||||
BLF_draw(fs->uifont_id, str);
|
||||
BLF_draw(fs->uifont_id, str, 65535); /* XXX, use real length */
|
||||
BLF_disable(fs->uifont_id, BLF_CLIPPING);
|
||||
if (fs->shadow)
|
||||
BLF_disable(fs->uifont_id, BLF_SHADOW);
|
||||
@@ -218,7 +218,7 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
|
||||
if (fs->kerning == 1)
|
||||
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
|
||||
|
||||
BLF_draw(fs->uifont_id, str);
|
||||
BLF_draw(fs->uifont_id, str, 65535); /* XXX, use real length */
|
||||
BLF_disable(fs->uifont_id, BLF_ROTATION);
|
||||
BLF_disable(fs->uifont_id, BLF_CLIPPING);
|
||||
if (fs->shadow)
|
||||
@@ -258,7 +258,7 @@ void UI_DrawString(float x, float y, char *str)
|
||||
|
||||
uiStyleFontSet(&style->widget);
|
||||
BLF_position(style->widget.uifont_id, x, y, 0.0f);
|
||||
BLF_draw(style->widget.uifont_id, str);
|
||||
BLF_draw(style->widget.uifont_id, str, 65535); /* XXX, use real length */
|
||||
|
||||
if (style->widget.kerning == 1)
|
||||
BLF_disable(style->widget.uifont_id, BLF_KERNING_DEFAULT);
|
||||
|
||||
@@ -1525,7 +1525,7 @@ static void scroll_printstr(Scene *scene, float x, float y, float val, int power
|
||||
}
|
||||
|
||||
/* draw it */
|
||||
BLF_draw_default(x, y, 0.0f, str);
|
||||
BLF_draw_default(x, y, 0.0f, str, sizeof(str)-1);
|
||||
}
|
||||
|
||||
/* Draw scrollbars in the given 2d-region */
|
||||
@@ -2054,7 +2054,7 @@ void UI_view2d_text_cache_draw(ARegion *ar)
|
||||
for(v2s= strings.first; v2s; v2s= v2s->next) {
|
||||
glColor3fv(v2s->col);
|
||||
if(v2s->rect.xmin==v2s->rect.xmax)
|
||||
BLF_draw_default((float)v2s->mval[0], (float)v2s->mval[1], 0.0, v2s->str);
|
||||
BLF_draw_default((float)v2s->mval[0], (float)v2s->mval[1], 0.0, v2s->str, sizeof(v2s->str)-1);
|
||||
else {
|
||||
int xofs=0, yofs;
|
||||
|
||||
@@ -2063,7 +2063,7 @@ void UI_view2d_text_cache_draw(ARegion *ar)
|
||||
|
||||
BLF_clipping_default(v2s->rect.xmin-4, v2s->rect.ymin-4, v2s->rect.xmax+4, v2s->rect.ymax+4);
|
||||
BLF_enable_default(BLF_CLIPPING);
|
||||
BLF_draw_default(v2s->rect.xmin+xofs, v2s->rect.ymin+yofs, 0.0f, v2s->str);
|
||||
BLF_draw_default(v2s->rect.xmin+xofs, v2s->rect.ymin+yofs, 0.0f, v2s->str, sizeof(v2s->str)-1);
|
||||
BLF_disable_default(BLF_CLIPPING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -338,7 +338,7 @@ void ED_region_do_draw(bContext *C, ARegion *ar)
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
UI_ThemeColor(TH_TEXT);
|
||||
BLF_draw_default(20, 8, 0.0f, ar->headerstr);
|
||||
BLF_draw_default(20, 8, 0.0f, ar->headerstr, 65535); /* XXX, use real length */
|
||||
}
|
||||
else if(at->draw) {
|
||||
at->draw(C, ar);
|
||||
|
||||
@@ -168,7 +168,7 @@ static int console_textview_step(TextViewContext *tvc)
|
||||
return ((tvc->iter= (void *)((Link *)tvc->iter)->prev) != NULL);
|
||||
}
|
||||
|
||||
static int console_textview_line_get(struct TextViewContext *tvc, char **line, int *len)
|
||||
static int console_textview_line_get(struct TextViewContext *tvc, const char **line, int *len)
|
||||
{
|
||||
ConsoleLine *cl= (ConsoleLine *)tvc->iter;
|
||||
*line= cl->line;
|
||||
@@ -231,7 +231,7 @@ static int report_textview_step(TextViewContext *tvc)
|
||||
return ((tvc->iter= (void *)((Link *)tvc->iter)->prev) != NULL);
|
||||
}
|
||||
|
||||
static int report_textview_line_get(struct TextViewContext *tvc, char **line, int *len)
|
||||
static int report_textview_line_get(struct TextViewContext *tvc, const char **line, int *len)
|
||||
{
|
||||
Report *report= (Report *)tvc->iter;
|
||||
*line= report->message;
|
||||
|
||||
@@ -89,7 +89,7 @@ static void console_draw_sel(int sel[2], int xy[2], int str_len_draw, int cwidth
|
||||
/* return 0 if the last line is off the screen
|
||||
* should be able to use this for any string type */
|
||||
|
||||
static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len, unsigned char *fg, unsigned char *bg)
|
||||
static int console_draw_string(ConsoleDrawContext *cdc, const char *str, int str_len, unsigned char *fg, unsigned char *bg)
|
||||
{
|
||||
#define STEP_SEL(value) cdc->sel[0] += (value); cdc->sel[1] += (value)
|
||||
int rct_ofs= cdc->lheight/4;
|
||||
@@ -131,8 +131,7 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
|
||||
|
||||
if(str_len > cdc->console_width) { /* wrap? */
|
||||
const int initial_offset= ((tot_lines-1) * cdc->console_width);
|
||||
char *line_stride= str + initial_offset; /* advance to the last line and draw it first */
|
||||
char eol; /* baclup the end of wrapping */
|
||||
const char *line_stride= str + initial_offset; /* advance to the last line and draw it first */
|
||||
|
||||
int sel_orig[2];
|
||||
VECCOPY2D(sel_orig, cdc->sel);
|
||||
@@ -150,7 +149,7 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
|
||||
|
||||
/* last part needs no clipping */
|
||||
BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
|
||||
BLF_draw(mono, line_stride);
|
||||
BLF_draw(mono, line_stride, str_len - initial_offset);
|
||||
|
||||
if(cdc->sel[0] != cdc->sel[1]) {
|
||||
STEP_SEL(-initial_offset);
|
||||
@@ -165,11 +164,8 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
|
||||
line_stride -= cdc->console_width;
|
||||
|
||||
for(; line_stride >= str; line_stride -= cdc->console_width) {
|
||||
eol = line_stride[cdc->console_width];
|
||||
line_stride[cdc->console_width]= '\0';
|
||||
|
||||
BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
|
||||
BLF_draw(mono, line_stride);
|
||||
BLF_draw(mono, line_stride, cdc->console_width);
|
||||
|
||||
if(cdc->sel[0] != cdc->sel[1]) {
|
||||
// glColor4ub(0, 255, 0, 96); // debug
|
||||
@@ -179,8 +175,6 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
|
||||
}
|
||||
|
||||
cdc->xy[1] += cdc->lheight;
|
||||
|
||||
line_stride[cdc->console_width] = eol; /* restore */
|
||||
|
||||
/* check if were out of view bounds */
|
||||
if(cdc->xy[1] > cdc->ymax)
|
||||
@@ -200,7 +194,7 @@ static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len,
|
||||
glColor3ubv(fg);
|
||||
|
||||
BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
|
||||
BLF_draw(mono, str);
|
||||
BLF_draw(mono, str, str_len);
|
||||
|
||||
if(cdc->sel[0] != cdc->sel[1]) {
|
||||
int isel[2];
|
||||
@@ -269,9 +263,9 @@ int textview_draw(TextViewContext *tvc, int draw, int mval[2], void **mouse_pick
|
||||
}
|
||||
|
||||
if(tvc->begin(tvc)) {
|
||||
|
||||
|
||||
do {
|
||||
char *ext_line;
|
||||
const char *ext_line;
|
||||
int ext_len;
|
||||
int color_flag= 0;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ typedef struct TextViewContext {
|
||||
|
||||
/* iterator */
|
||||
int (*step)(struct TextViewContext *tvc);
|
||||
int (*line_get)(struct TextViewContext *tvc, char **, int *);
|
||||
int (*line_get)(struct TextViewContext *tvc, const char **, int *);
|
||||
int (*line_color)(struct TextViewContext *tvc, unsigned char fg[3], unsigned char bg[3]);
|
||||
void *iter;
|
||||
int iter_index;
|
||||
|
||||
@@ -74,20 +74,18 @@ static void text_font_end(SpaceText *UNUSED(st))
|
||||
static int text_font_draw(SpaceText *UNUSED(st), int x, int y, char *str)
|
||||
{
|
||||
BLF_position(mono, x, y, 0);
|
||||
BLF_draw(mono, str);
|
||||
BLF_draw(mono, str, 65535); /* XXX, use real length */
|
||||
|
||||
return BLF_width(mono, str);
|
||||
}
|
||||
|
||||
static int text_font_draw_character(SpaceText *st, int x, int y, char c)
|
||||
{
|
||||
char str[2];
|
||||
|
||||
char str[1];
|
||||
str[0]= c;
|
||||
str[1]= '\0';
|
||||
|
||||
BLF_position(mono, x, y, 0);
|
||||
BLF_draw(mono, str);
|
||||
BLF_draw(mono, str, 1);
|
||||
|
||||
return st->cwidth;
|
||||
}
|
||||
|
||||
@@ -643,10 +643,10 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
|
||||
const char *str= (char *)(vos+1);
|
||||
glColor3fv(vos->col);
|
||||
if(vos->flag & V3D_CACHE_TEXT_ASCII) {
|
||||
BLF_draw_default_ascii((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, str);
|
||||
BLF_draw_default_ascii((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, str, 65535); /* XXX, use real length */
|
||||
}
|
||||
else {
|
||||
BLF_draw_default((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, str);
|
||||
BLF_draw_default((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, str, 65535); /* XXX, use real length */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -604,7 +604,7 @@ static void draw_view_axis(RegionView3D *rv3d)
|
||||
glEnd();
|
||||
|
||||
if (fabs(dx) > toll || fabs(dy) > toll) {
|
||||
BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "x");
|
||||
BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "x", 1);
|
||||
}
|
||||
|
||||
/* BLF_draw_default disables blending */
|
||||
@@ -624,7 +624,7 @@ static void draw_view_axis(RegionView3D *rv3d)
|
||||
glEnd();
|
||||
|
||||
if (fabs(dx) > toll || fabs(dy) > toll) {
|
||||
BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "y");
|
||||
BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "y", 1);
|
||||
}
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
@@ -643,7 +643,7 @@ static void draw_view_axis(RegionView3D *rv3d)
|
||||
glEnd();
|
||||
|
||||
if (fabs(dx) > toll || fabs(dy) > toll) {
|
||||
BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "z");
|
||||
BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "z", 1);
|
||||
}
|
||||
|
||||
/* restore line-width */
|
||||
@@ -724,24 +724,17 @@ static char *view3d_get_name(View3D *v3d, RegionView3D *rv3d)
|
||||
static void draw_viewport_name(ARegion *ar, View3D *v3d)
|
||||
{
|
||||
RegionView3D *rv3d= ar->regiondata;
|
||||
char *name = view3d_get_name(v3d, rv3d);
|
||||
char *printable = NULL;
|
||||
char *name= view3d_get_name(v3d, rv3d);
|
||||
char tmpstr[24];
|
||||
|
||||
if (v3d->localvd) {
|
||||
printable = MEM_mallocN(strlen(name) + strlen(" (Local)_"), "viewport_name"); /* '_' gives space for '\0' */
|
||||
strcpy(printable, name);
|
||||
strcat(printable, " (Local)");
|
||||
} else {
|
||||
printable = name;
|
||||
snprintf(tmpstr, sizeof(tmpstr), "%s (Local)", name);
|
||||
name= tmpstr;
|
||||
}
|
||||
|
||||
if (printable) {
|
||||
if (name) {
|
||||
UI_ThemeColor(TH_TEXT_HI);
|
||||
BLF_draw_default(22, ar->winy-17, 0.0f, printable);
|
||||
}
|
||||
|
||||
if (v3d->localvd) {
|
||||
MEM_freeN(printable);
|
||||
BLF_draw_default(22, ar->winy-17, 0.0f, name, sizeof(tmpstr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -836,7 +829,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
|
||||
if (U.uiflag & USER_SHOW_ROTVIEWICON)
|
||||
offset = 14 + (U.rvisize * 2);
|
||||
|
||||
BLF_draw_default(offset, 10, 0.0f, info);
|
||||
BLF_draw_default(offset, 10, 0.0f, info, sizeof(info)-1);
|
||||
}
|
||||
|
||||
static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2])
|
||||
@@ -1015,7 +1008,7 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
|
||||
/* camera name - draw in highlighted text color */
|
||||
if (ca && (ca->flag & CAM_SHOWNAME)) {
|
||||
UI_ThemeColor(TH_TEXT_HI);
|
||||
BLF_draw_default(x1i, y1i-15, 0.0f, v3d->camera->id.name+2);
|
||||
BLF_draw_default(x1i, y1i-15, 0.0f, v3d->camera->id.name+2, sizeof(v3d->camera->id.name)-2);
|
||||
UI_ThemeColor(TH_WIRE);
|
||||
}
|
||||
}
|
||||
@@ -2274,7 +2267,7 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar)
|
||||
BLI_snprintf(printable, sizeof(printable), "fps: %i", (int)(fps+0.5));
|
||||
}
|
||||
|
||||
BLF_draw_default(22, ar->winy-17, 0.0f, printable);
|
||||
BLF_draw_default(22, ar->winy-17, 0.0f, printable, sizeof(printable)-1);
|
||||
}
|
||||
|
||||
void view3d_main_area_draw(const bContext *C, ARegion *ar)
|
||||
@@ -2507,7 +2500,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
|
||||
}
|
||||
if (grid_unit) { /* draw below the viewport name */
|
||||
UI_ThemeColor(TH_TEXT_HI);
|
||||
BLF_draw_default(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, grid_unit);
|
||||
BLF_draw_default(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, grid_unit, 65535); /* XXX, use real length */
|
||||
}
|
||||
|
||||
ob= OBACT;
|
||||
|
||||
@@ -141,12 +141,13 @@ static char py_blf_draw_doc[] =
|
||||
static PyObject *py_blf_draw(PyObject *UNUSED(self), PyObject *args)
|
||||
{
|
||||
char *text;
|
||||
int text_length;
|
||||
int fontid;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "is:blf.draw", &fontid, &text))
|
||||
if (!PyArg_ParseTuple(args, "is#:blf.draw", &fontid, &text, &text_length))
|
||||
return NULL;
|
||||
|
||||
BLF_draw(fontid, text);
|
||||
BLF_draw(fontid, text, (unsigned int)text_length);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user