コード例 #1
0
ファイル: Prop2D.cpp プロジェクト: kengonakajima/moyai
void Prop2D::onTrack( RemoteHead *rh, Prop2D *parentprop ) {
    if( !tracker ) {
        tracker = new Tracker2D(rh,this);
    }
    tracker->scanProp2D(parentprop);
    tracker->broadcastDiff( false );
    tracker->flipCurrentBuffer();

    // grids
    for(int i=0;i<grid_used_num;i++) {
        Grid *g = grids[i];
        if(!g->tracker) g->tracker = new TrackerGrid(rh,g);
        g->tracker->scanGrid();
        g->tracker->broadcastDiff(this, false );
        g->tracker->flipCurrentBuffer();
    }

    // shader
    if(fragment_shader) {
        ColorReplacerShader *crs = dynamic_cast<ColorReplacerShader*>(fragment_shader);
        if(crs) {
            crs->onTrack(rh);
        }
    }

    // prims
    if( prim_drawer ) {
        prim_drawer->onTrack(this,rh);
    }

    // dynamic image
    if( deck && deck->tex && deck->tex->image ) {
        deck->tex->image->onTrack( deck, rh );        
    }

    // children
    for(int i=0;i<children_num;i++) {
        Prop2D *p = (Prop2D*) children[i];
        p->onTrack( rh, this );
    }
}