[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32996] trunk/blender/source/blender: BLF_draw functions take an extra length argument, so the console drawing doenst need to swap in NULL chars to draw word wrapping .
Campbell Barton
ideasman42 at gmail.com
Thu Nov 11 07:36:02 CET 2010
Revision: 32996
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32996
Author: campbellbarton
Date: 2010-11-11 07:35:45 +0100 (Thu, 11 Nov 2010)
Log Message:
-----------
BLF_draw functions take an extra length argument, so the console drawing doenst need to swap in NULL chars to draw word wrapping.
Modified Paths:
--------------
trunk/blender/source/blender/blenfont/BLF_api.h
trunk/blender/source/blender/blenfont/intern/blf.c
trunk/blender/source/blender/blenfont/intern/blf_font.c
trunk/blender/source/blender/blenfont/intern/blf_internal.h
trunk/blender/source/blender/editors/interface/interface_draw.c
trunk/blender/source/blender/editors/interface/interface_style.c
trunk/blender/source/blender/editors/interface/view2d.c
trunk/blender/source/blender/editors/screen/area.c
trunk/blender/source/blender/editors/space_console/console_draw.c
trunk/blender/source/blender/editors/space_info/textview.c
trunk/blender/source/blender/editors/space_info/textview.h
trunk/blender/source/blender/editors/space_text/text_draw.c
trunk/blender/source/blender/editors/space_view3d/drawobject.c
trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
trunk/blender/source/blender/python/generic/blf_api.c
Modified: trunk/blender/source/blender/blenfont/BLF_api.h
===================================================================
--- trunk/blender/source/blender/blenfont/BLF_api.h 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/blenfont/BLF_api.h 2010-11-11 06:35:45 UTC (rev 32996)
@@ -48,12 +48,12 @@
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
Modified: trunk/blender/source/blender/blenfont/intern/blf.c
===================================================================
--- trunk/blender/source/blender/blenfont/intern/blf.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/blenfont/intern/blf.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -361,7 +361,7 @@
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 @@
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 @@
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 @@
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();
}
}
Modified: trunk/blender/source/blender/blenfont/intern/blf_font.c
===================================================================
--- trunk/blender/source/blender/blenfont/intern/blf_font.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/blenfont/intern/blf_font.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -92,7 +92,7 @@
}
}
-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 @@
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 @@
}
/* 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 @@
}
}
- while ((c= *(str++))) {
+ while ((c= *(str++)) && len--) {
g= font->glyph_ascii_table[c];
/* if we don't found a glyph, skip it. */
Modified: trunk/blender/source/blender/blenfont/intern/blf_internal.h
===================================================================
--- trunk/blender/source/blender/blenfont/intern/blf_internal.h 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/blenfont/intern/blf_internal.h 2010-11-11 06:35:45 UTC (rev 32996)
@@ -44,8 +44,8 @@
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);
Modified: trunk/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_draw.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/editors/interface/interface_draw.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -856,7 +856,7 @@
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);
Modified: trunk/blender/source/blender/editors/interface/interface_style.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_style.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/editors/interface/interface_style.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -165,7 +165,7 @@
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 @@
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 @@
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);
Modified: trunk/blender/source/blender/editors/interface/view2d.c
===================================================================
--- trunk/blender/source/blender/editors/interface/view2d.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/editors/interface/view2d.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -1525,7 +1525,7 @@
}
/* 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 @@
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 @@
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);
}
}
Modified: trunk/blender/source/blender/editors/screen/area.c
===================================================================
--- trunk/blender/source/blender/editors/screen/area.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/editors/screen/area.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -338,7 +338,7 @@
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);
Modified: trunk/blender/source/blender/editors/space_console/console_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_console/console_draw.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/editors/space_console/console_draw.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -168,7 +168,7 @@
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 @@
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;
Modified: trunk/blender/source/blender/editors/space_info/textview.c
===================================================================
--- trunk/blender/source/blender/editors/space_info/textview.c 2010-11-11 06:22:55 UTC (rev 32995)
+++ trunk/blender/source/blender/editors/space_info/textview.c 2010-11-11 06:35:45 UTC (rev 32996)
@@ -89,7 +89,7 @@
/* return 0 if the last line is off the screen
* should be able to use this for any string type */
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list