Ejemplo n.º 1
0
void JSlidePiece::Render()
{
    m_Pos.y = m_pSlideGame->m_TopLine + m_Speed*(JAnimServer::s_pInstance->GetCurTime() - m_StartTime);

    if (IsVisible())
    {   
        DWORD color = GetFgColor();
        if (IsHovered()) color = GetHoverFgColor();

        Frame ext = GetExt();
        ext.x = m_Pos.x;
        ext.y = m_Pos.y;
        SetExt( ext );

        ext.w = g_pDrawServer->GetFrameW( GetSkinPackID(), GetSkinFrame() );
        ext.h = g_pDrawServer->GetFrameH( GetSkinPackID(), GetSkinFrame() );
       
        g_pDrawServer->DrawSprite( ext, GetSkinPackID(), GetSkinFrame(), color );
        g_pDrawServer->Flush();
    }
} // JSlidePiece::Render
Ejemplo n.º 2
0
void JButton::Render()
{
    Frame ext = GetExt();
    uint32_t clr = GetFgColor();
    int skinFrame = m_NormalFrame;

    if (IsBlendAdd())
    {
        g_pDrawServer->SetAdditive( true );
    }

    if (m_bPressed && m_PressedFrame != -1)
    {
        skinFrame = m_PressedFrame;
    }

    if (!IsEnabled())
    {
        if (m_DisabledFrame != -1)
        {
            skinFrame = m_DisabledFrame;
        }
        //clr = m_DisableFgColor;
    }

    if (IsHovered())
    {
        clr = GetHoverFgColor();
        if (m_HoverFrame != -1)
        {
            skinFrame = m_HoverFrame;
        }
    }

    g_pDrawServer->Flush();
    if (GetSkinPackID() >= 0)
    {
        g_pDrawServer->DrawSprite( ext, GetSkinPackID(), skinFrame, GetBgColor() );
    }
    g_pDrawServer->SetLinFilter( IsFilterFont() );
    g_pDrawServer->Flush();

    const char* text = GetText();
    if (text && text[0] != 0)
    {
        //  draw button text
        ext.w = g_pDrawServer->GetTextWidth( GetFontID(), text, GetFontHeight() );
        ext.h = GetFontHeight();
        ext = ApplyAlignment( ext, GetExt(), XAlign_Center, YAlign_Center );
        if (m_ShadowColor != 0)
        {
            g_pDrawServer->DrawString( ext.x + m_ShadowShiftX, ext.y + m_ShadowShiftY,
                GetFontID(), GetText(), m_ShadowColor, GetFontHeight() );
            g_pDrawServer->Flush();
        }
        g_pDrawServer->DrawString( ext.x, ext.y, GetFontID(), GetText(), clr, GetFontHeight() );
    }
    else if (m_GlyphID >= 0)
    {
        //  draw button glyph
        ext.w = g_pDrawServer->GetFrameW( m_GlyphID, m_GlyphFrame );
        ext.h = g_pDrawServer->GetFrameH( m_GlyphID, m_GlyphFrame );
        ext = ApplyAlignment( ext, GetExt(), XAlign_Center, YAlign_Center );
        g_pDrawServer->DrawSprite( ext.x, ext.y, m_GlyphID, m_GlyphFrame, GetFgColor() );
    }
    g_pDrawServer->Flush();

    if (IsBlendAdd())
    {
        g_pDrawServer->SetAdditive( false );
    }
} // JButton::Render
Ejemplo n.º 3
0
void JObjectTree::RenderNode( JObject* pObject, const Frame& ext, bool bExpanded ) const
{
    static int spID = g_pDrawServer->GetSpriteID( "button" );
    int frameID = 11;
    int nCh = pObject->GetNChildren();
    if (nCh > 0)
    {
        frameID = 12;
        float connectW = 4.0f;
        if (bExpanded)
        {
            frameID = 14;
            Frame rcLine;
            rcLine.x = ext.r() - 2.0f;
            rcLine.h = float( nCh - 1 )*m_NodeHeight;
            rcLine.w = 2.0f;
            rcLine.y = ext.y - rcLine.h*0.5f + m_NodeHeight*0.5f;
            g_pDrawServer->DrawRect( rcLine, m_ConnectColor );
            connectW = 10.0f;
        }

        Frame rcConnect;
        rcConnect.x = ext.r() - 10.0f;
        rcConnect.h = 8.0f;
        rcConnect.w = connectW;
        rcConnect.y = ext.y + 3.0f;
        g_pDrawServer->DrawRect( rcConnect, m_ConnectColor );
    }

    Vec2 mousePos;
    g_pWindowServer->GetMousePos( mousePos );
    bool bHovered = ext.PtIn( mousePos.x, mousePos.y );

    DWORD bgColor = GetBgColor();
    DWORD fgColor = GetFgColor();

    if (bHovered)
    {
        bgColor = GetHoverBgColor();
        fgColor = GetHoverFgColor();
    }

    g_pDrawServer->DrawSprite( ext.x, ext.y, spID, frameID, bgColor );
    if (m_pSelected == pObject)
    {
        g_pDrawServer->DrawSprite( ext.x, ext.y, spID, 13, fgColor );
    }
    g_pDrawServer->Flush();
    float strW = g_pDrawServer->GetTextWidth(  GetFontID(), pObject->GetName() );
    Frame vp;
    Frame clipExt( ext );
    clipExt.w -= 10.0f;
    bool bClip = (strW > clipExt.w);
    if (bClip)
    {
        vp = g_pRenderServer->GetViewport();
        g_pRenderServer->SetViewport( clipExt );
    }
    g_pDrawServer->DrawString( ext.x + m_NodeCaptionPos.x, ext.y + m_NodeCaptionPos.y,
                               GetFontID(), pObject->GetName(), GetFgColor() );
    g_pDrawServer->Flush();
    if (bClip)
    {
        g_pRenderServer->SetViewport( vp );
    }
} // JObjectTree::RenderNode
Ejemplo n.º 4
0
void JBlotPiece::Render()
{
    DWORD color = GetFgColor();
    float scale;
    if (m_bSelected) scale = m_Scale; else scale = 1.0f;

    //Moving the piece to m_MovePos
    if (m_bMoving)
    {
        Frame ext   = GetExt();
        float t     = JAnimServer::s_pInstance->GetCurTime() - m_StartMoveTime; 
        if (t >= 1.0f)
        {
            t = 1.0f;
            m_bMoving = false;
        }
        else if (t <= 0.0f) 
        {
            t = 0.0f;
        }
        Vec2 cur_pos( ext.x , ext.y );
        Vec2 pos    = cur_pos + t * (m_MovePos - cur_pos);
        ext.x       = pos.x;
        ext.y       = pos.y;
        SetExt( ext );
    }

    if (IsHovered()||m_bSelected) 
    {
        color = GetHoverFgColor();
    }

    Frame ext = GetLocalExt();
    Vec2 pos( ext.x, ext.y );
    float dist = pos.dist( m_HomePos );
    float c_SnapBias = 10.0f;
    if (dist < c_SnapBias)
    {
        m_bAtHome = true; 
    }
    else 
    {
        m_bAtHome = false;
    }

    ext = GetExt();
    ext.w = scale*g_pDrawServer->GetFrameW( GetSkinPackID(), GetSkinFrame() );
    ext.h = scale*g_pDrawServer->GetFrameH( GetSkinPackID(), GetSkinFrame() );
    
    if (m_bRipple)
    {
        //Start Rippling
        s_pThis = this;
        g_pDrawServer->Flush();
        g_pDrawServer->SetVertexCB( RippleCallback );
        g_pDrawServer->DrawSprite( ext, GetSkinPackID(), GetSkinFrame(), color );
        g_pDrawServer->Flush();
        g_pDrawServer->SetVertexCB( NULL );
        s_pThis = NULL;
        //Stop Rippling
    } else
    {
        //Simple drawing
        g_pDrawServer->DrawSprite( ext, GetSkinPackID(), GetSkinFrame(), color );
        g_pDrawServer->Flush();
    }

    JAnmContext& ctx = JAnimation::PushContext();

    ctx.m_Pos.x = ext.x;
    ctx.m_Pos.y = ext.y;
} // JBlotPiece::Render