コード例 #1
0
ファイル: XxMeter.cpp プロジェクト: rolffokkens/NetStreamer
void XxMeter::SetCurVal (int Val)
{
    int  TmpVal, i, j;
    int  L, R, Y1, Y2, W, H;
    int  dY;
    XxPixmap *pMap;

    CurVal = Val;
    TmpVal = CalcIntVal (Val);

    if (TmpVal == IntVal) return;

    if (TmpVal < IntVal) {
       DrawGC.SetForeground (XxGray3);
       pMap  = &OffMap;
       i     = IntVal;
       j     = TmpVal;

       Y1    = TmpVal + 1;
       Y2    = IntVal;
    } else {
       DrawGC.SetForeground (XxWhite);
       pMap  = &OnMap;
       i     = TmpVal;
       j     = IntVal;

       Y1    = IntVal + 1;
       Y2    = TmpVal;
    };

    if (Dir & 1) {
        W = GetHeight ();
        H = GetWidth  ();
    } else {
        W = GetWidth  ();
        H = GetHeight ();
    };

    L = 0;
    R = W - 1;

    if ((Dir & 2) == 0) {
        i = H - 1 - Y1;
        j = H - 1 - Y2;
        Y2 = i;
        Y1 = j;
    };

    if (Dir & 1) {
        CopyArea (DrawGC, pMap, Y1, L, (Y2 - Y1 + 1), (R - L + 1), Y1, L);
    } else {
        CopyArea (DrawGC, pMap, L, Y1, (R - L + 1), (Y2 - Y1 + 1), L, Y1);
    };

    IntVal = TmpVal;
};
コード例 #2
0
ファイル: rgba.cpp プロジェクト: cargabsj175/bombono-dvd
// plc - местоположение, куда отображаем картинку
// drw_rgn - та часть plc, которую хотим отобразить/отрисовать (не затрагивая остальное) 
void ScalePixbuf(RefPtr<Gdk::Pixbuf> dst, RefPtr<Gdk::Pixbuf> src,
            const Rect& plc, const Rect& drw_rgn)
{
    Point sz = plc.Size();
    if( sz == PixbufSize(src) )
    {
        // gdk_pixbuf_scale() недостаточно умен, чтобы самостоятельно заменить скалирование
        // копированием в этом случае
        CopyArea(dst, src, plc, drw_rgn);
    }
    else
    {
        Point drw_sz = drw_rgn.Size();
    
        src->scale(dst, drw_rgn.lft, drw_rgn.top, drw_sz.x, drw_sz.y, plc.lft, plc.top,
                     (double)sz.x/src->get_width(),
                     (double)sz.y/src->get_height(),
                     Gdk::INTERP_BILINEAR);
    }
}
コード例 #3
0
ファイル: do_blt.c プロジェクト: Bluerise/bitrig-xenocara
void 
DoCopyPixPix(XParms xp, Parms p, int reps)
{
    CopyArea(xp, p, reps, pix, pix);
    xp->p = pix;	/* HardwareSync will now sync on pixmap */
}
コード例 #4
0
ファイル: do_blt.c プロジェクト: Bluerise/bitrig-xenocara
void 
DoCopyPixWin(XParms xp, Parms p, int reps)
{
    CopyArea(xp, p, reps, pix, xp->w);
}
コード例 #5
0
ファイル: do_blt.c プロジェクト: Bluerise/bitrig-xenocara
void 
DoCopyWinWin(XParms xp, Parms p, int reps)
{
    CopyArea(xp, p, reps, xp->w, xp->w);
}