void UISystem::draw() { m_renderer->begin(); drawR(m_root); m_renderer->setScreen(getScreen().getSize().x, getScreen().getSize().y); m_renderer->setViewport(0,0); m_renderer->end(); }
//====================================================== //DRAW INITIALS (Calls external funcs drawJ drawK drawR) //DRAWING OTHER PARTS OF THE ANIMAL //====================================================== void drawInitials() { //draw initial J glPushMatrix(); glTranslatef(-0.6,0.0,0.0); glScalef(0.1,0.1,0.1); //draw J now needs parameters drawJ(breatheJCurve,bodyColour1,bodyColour2); glPopMatrix(); //draw intial K glPushMatrix(); glTranslatef(-0.4,0.0,0.0); glScalef(0.1,0.1,0.1); drawK(bodyColour1,bodyColour2); glPopMatrix(); //draw initial R glPushMatrix(); glTranslatef(-0.2,-0.01,0.0); glScalef(0.1,0.1,0.1); //draw R now needs parameters drawR(breatheRCurve,breatheRDiag,bodyColour1,bodyColour2); glPopMatrix(); //draw initial L glPushMatrix(); glTranslatef(0.2,0.0,0.0); glScalef(0.1,0.1,0.1); drawL(bodyColour1,bodyColour2); glPopMatrix(); //draw initial I glPushMatrix(); glTranslatef(0.0,0.0,0.0); glScalef(0.1,0.1,0.1); drawI(bodyColour1,bodyColour2); glPopMatrix(); //draw initial M glPushMatrix(); glTranslatef(0.5,-0.25,0.0); glRotatef(90,0.0,0.0,1.0); glScalef(0.1,0.1,0.1); drawM(bodyColour1,bodyColour2); glPopMatrix(); }
void UISystem::drawR( Widget *widget ) { // 親が先 (奥→手前の順) if(widget->isVisible()) { const Position &pos = widget->getPositionAbs(); const Size &size = widget->getSize(); const Rect &screen = iuiGetSystem()->getScreen(); const Size viewport = Size(istGetAplication()->getWindowSize().x, istGetAplication()->getWindowSize().y); Size r = viewport/screen.size; iuiGetRenderer()->setViewport( (int32)(pos.x*r.x-0.5f), (int32)(viewport.y-(pos.y+size.y)*r.y-0.5f), (int32)(size.x*r.x+1.0f), (int32)(size.y*r.y+1.0f) ); iuiGetRenderer()->setScreen(-0.5f, -0.5f, size.x+1.0f, size.y+1.0f); widget->draw(); widget->eachChildrenReverse([&](Widget *c){ drawR(c); }); } }