Revision: 20579
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20579
Author:   aligorith
Date:     2009-06-02 15:03:33 +0200 (Tue, 02 Jun 2009)

Log Message:
-----------
NLA SoC: Added basic info-text drawing on strips

The format of these is still rather experimental. 

Modified Paths:
--------------
    branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c
    branches/soc-2009-aligorith/source/blender/editors/space_nla/space_nla.c

Modified: 
branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c     
2009-06-02 09:58:06 UTC (rev 20578)
+++ branches/soc-2009-aligorith/source/blender/editors/space_nla/nla_draw.c     
2009-06-02 13:03:33 UTC (rev 20579)
@@ -48,6 +48,7 @@
 #include "DNA_userdef_types.h"
 #include "DNA_windowmanager_types.h"
 #include "DNA_world_types.h"
+#include "DNA_vec_types.h"
 
 #include "MEM_guardedalloc.h"
 
@@ -128,6 +129,36 @@
        gl_round_box_shade(GL_LINE_LOOP, strip->start, yminc, strip->end, 
ymaxc, 0.0, 0.0, 0.1);
 } 
 
+/* add the relevant text to the cache of text-strings to draw in pixelspace */
+static void nla_draw_strip_text (NlaTrack *nlt, NlaStrip *strip, int index, 
View2D *v2d, float yminc, float ymaxc)
+{
+       char str[256];
+       rctf rect;
+       
+       /* for now, just init the string with a fixed-format */
+       if (strip->act)
+               sprintf(str, "%d | Act: %s | %.2f <-> %.2f", index, 
strip->act->id.name+2, strip->start, strip->end);
+       else
+               sprintf(str, "%d | Act: <NONE>", index);
+       
+       /* set text colour - if colours (see above) are light, draw black text, 
otherwise draw white */
+       if (strip->flag & 
(NLASTRIP_FLAG_ACTIVE|NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_TWEAKUSER))
+               glColor3f(0.0f, 0.0f, 0.0f);
+       else
+               glColor3f(1.0f, 1.0f, 1.0f);
+       
+       /* set bounding-box for text 
+        *      - padding of 2 'units' on either side
+        */
+       rect.xmin= strip->start + 2;
+       rect.ymin= yminc;
+       rect.xmax= strip->end - 2;
+       rect.ymax= ymaxc;
+       
+       /* add this string to the cache of texts to draw*/
+       UI_view2d_text_cache_rectf(v2d, &rect, str);
+}
+
 /* ---------------------- */
 
 void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar)
@@ -175,14 +206,20 @@
                                {
                                        NlaTrack *nlt= (NlaTrack *)ale->data;
                                        NlaStrip *strip;
+                                       int index;
                                        
                                        /* draw backdrop? */
                                        // TODO...
                                        
                                        /* draw each strip in the track (if 
visible) */
-                                       for (strip=nlt->strips.first; strip; 
strip= strip->next) {
-                                               if 
(BKE_nlastrip_within_bounds(strip, v2d->cur.xmin, v2d->cur.xmax))
+                                       for (strip=nlt->strips.first, index=1; 
strip; strip=strip->next, index++) {
+                                               if 
(BKE_nlastrip_within_bounds(strip, v2d->cur.xmin, v2d->cur.xmax)) {
+                                                       /* draw the 
visualisation of the strip */
                                                        nla_draw_strip(nlt, 
strip, v2d, yminc, ymaxc);
+                                                       
+                                                       /* add the text for 
this strip to the cache */
+                                                       
nla_draw_strip_text(nlt, strip, index, v2d, yminc, ymaxc);
+                                               }
                                        }
                                }
                                        break;

Modified: 
branches/soc-2009-aligorith/source/blender/editors/space_nla/space_nla.c
===================================================================
--- branches/soc-2009-aligorith/source/blender/editors/space_nla/space_nla.c    
2009-06-02 09:58:06 UTC (rev 20578)
+++ branches/soc-2009-aligorith/source/blender/editors/space_nla/space_nla.c    
2009-06-02 13:03:33 UTC (rev 20579)
@@ -246,7 +246,11 @@
        
        /* data */
        if (ANIM_animdata_get_context(C, &ac)) {
+               /* strips and backdrops */
                draw_nla_main_data(&ac, snla, ar);
+               
+               /* text draw cached, in pixelspace now */
+               UI_view2d_text_cache_draw(ar);
        }
        
        /* current frame */


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to