void Statistic::realize() { Transform::realize(); WindowPtr myWindow = boost::static_pointer_cast<spark::Window>(getRoot()); StatisticPtr ptr = boost::static_pointer_cast<Statistic>(shared_from_this()); spark::EventCallbackPtr myFrameCB = EventCallbackPtr(new StatisticCB(ptr, &Statistic::onFrame)); myWindow->addEventListener(StageEvent::FRAME, myFrameCB); int myStatisticHeight = 0; ContainerPtr myContainer = boost::static_pointer_cast<spark::Container>(shared_from_this()); ComponentPtr myCreated = SparkComponentFactory::get().loadSparkComponentsFromString(myContainer->getApp(), "<Text name=\"fps\" y=\"-10\" maxWidth=\"0\" z=\"100\" text=\"fps:\" height=\"-16\" color=\"[1.0,0.0,0.0, 1.0]\" fontsize=\"16\"/>"); myContainer->addChild(myCreated); _myFPSText = boost::static_pointer_cast<spark::Text>(myCreated); myCreated = SparkComponentFactory::get().loadSparkComponentsFromString(myContainer->getApp(), "<Text name=\"memory_usage\" y=\"-30\" z=\"100\" maxWidth=\"0\" text=\"memory:\" height=\"-16\" color=\"[1.0,0.0,0.0, 1.0]\" fontsize=\"16\"/>"); myContainer->addChild(myCreated); _myMemoryText = boost::static_pointer_cast<spark::Text>(myCreated); myStatisticHeight += _myFPSText->getTextSize()[1]; myCreated = SparkComponentFactory::get().loadSparkComponentsFromString(myContainer->getApp(), "<Text name=\"battery_level\" y=\"-50\" z=\"100\" maxWidth=\"0\" text=\"memory:\" height=\"-16\" color=\"[1.0,0.0,0.0, 1.0]\" fontsize=\"16\"/>"); myContainer->addChild(myCreated); _myBatteryLevelText = boost::static_pointer_cast<spark::Text>(myCreated); myStatisticHeight += _myFPSText->getTextSize()[1]; setY(myWindow->getSize()[1] - myStatisticHeight); setX(10); }