Ejemplo n.º 1
0
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();
     
}
Ejemplo n.º 3
0
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); });
    }
}