Example #1
0
void Colorsel::paintValue()
{
    QPainter painter(this);
    painter.setWindow(0, 0, 200, 200);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setBrush(QBrush(Qt::black));

    QRectF redRect(30, 165, 20, 15);
    painter.drawRect(redRect);

    QRectF greenRect(60, 165, 20, 15);
    painter.drawRect(greenRect);

    QRectF blueRect(90, 165, 20, 15);
    painter.drawRect(blueRect);

    QRectF opRect(120, 165, 20, 15);
    painter.drawRect(opRect);

    QFont valFont("Sans Serif", 7, QFont::Bold);
    painter.setFont(valFont);
    painter.setPen(Qt::yellow);

    QString redVal = QString("%1").arg(redY,0,'f',0);
    painter.drawText(redRect, Qt::AlignCenter, redVal);

    QString greenVal = QString("%1").arg(greenY,0,'f',0);
    painter.drawText(greenRect, Qt::AlignCenter, greenVal);

    QString blueVal = QString("%1").arg(blueY,0,'f',0);
    painter.drawText(blueRect, Qt::AlignCenter, blueVal);

    QString opVal = QString("%1").arg(opY,0,'f',0);
    painter.drawText(opRect, Qt::AlignCenter, opVal);
}
static void testClippedLayerKeepTransform(TransparencyWin::LayerMode layerMode)
{
    // Fill with white.
    OwnPtr<ImageBuffer> src(ImageBuffer::create(IntSize(16, 16), 1));
    Color white(0xFFFFFFFF);
    FloatRect fullRect(0, 0, 16, 16);
    src->context()->fillRect(fullRect, white);

    IntRect clipRect(IntPoint(11, 5), IntSize(1, 1));
    src->context()->clip(clipRect);

    // Scroll down by 6 (coordinate system goes up).
    src->context()->save();
    src->context()->translate(0, -6);

    Color red(0xFFFF0000);
    Color green(0xFF00FF00);
    {
        // The transparency layer after translation will be @ (0, -6) with
        // a size that would be too large to handle unclipped.
        TransparencyWin helper;
        helper.init(src->context(),
                    layerMode,
                    TransparencyWin::KeepTransform,
                    IntRect(0, 0, INT_MAX, INT_MAX));

        // Draw a green pixel at (11, 11). This should be within the clip rect
        // and at (11, 5) after the transform.
        FloatRect greenRect(11, 11, 1, 1);
        helper.context()->fillRect(greenRect, green);

        // Draw a red pixel at (9, 9). This should be outside the clip rect
        // and not drawn.
        FloatRect redRect(9, 9, 1, 1);
        helper.context()->fillRect(redRect, red);
        helper.composite();
    }

    src->context()->restore();

    // Verify green pixel got drawn in clip rect and red pixel got clipped.
    EXPECT_EQ(green, getPixelAt(src->context(), 11, 5));
    EXPECT_EQ(white, getPixelAt(src->context(), 9, 3));
}
Example #3
0
	void CSelectionPanel::OnShowHPLine(){
		set<CSprite*>::iterator it;
		CDC *pDC = CDDraw::GetBackCDC();			// 取得 Back Plain 的 CDC
		CBrush *pb,redBrush(RGB(255,0,0)),greenBrush(RGB(0,255,0));
		CPen *pp,blackPen(PS_SOLID,1,RGB(0,0,0));
		pp = pDC->SelectObject(&blackPen);

		pb = pDC->SelectObject(&redBrush);
		for(it = selectedSprites.begin();it!=selectedSprites.end();it++){
			CPoint screenPoint(CConvert::GetScreenPointByMapPoint((*it)->MapPoint()));
			CRect redRect(CPoint(screenPoint.x-25,screenPoint.y),CSize(50,5));
			pDC->Rectangle(redRect);

			CRect greenRect(CPoint(screenPoint.x-25,screenPoint.y),CSize(50*(*it)->HP()/(*it)->MaxHP(),5));
			pDC->SelectObject(&greenBrush);
			pDC->Rectangle(greenRect);
			pDC->SelectObject(&redBrush);
		}
		pDC->SelectObject(pb);						//
		pDC->SelectObject(pp);
		CDDraw::ReleaseBackCDC();					// 放掉 Back Plain 的 CDC
		//if(isSelected){
		//	//畫圓圈
		//	CDC *pDC = CDDraw::GetBackCDC();			// 取得 Back Plain 的 CDC
		//	CBrush *pb,redBrush(RGB(255,0,0)),greenBrush(RGB(0,255,0));
		//	CPen *pp,nullPen(PS_NULL,0,RGB(0,0,0));

		//	pb = pDC->SelectObject(&redBrush);
		//	pp = pDC->SelectObject(&nullPen);
		//	CPoint screenPoint(CConvert::GetScreenPointByMapPoint(mapPoint));
		//	CRect redRect(CPoint(screenPoint.x-25,screenPoint.y),CSize(50,5));
		//	CRect greenRect(CPoint(screenPoint.x-25,screenPoint.y),CSize(50*hp/maxHp,5));
		//	pDC->Rectangle(redRect);
		//	pDC->SelectObject(&greenBrush);
		//	pDC->Rectangle(greenRect);

		//	pDC->SelectObject(pb);						//
		//	pDC->SelectObject(pp);
		//	CDDraw::ReleaseBackCDC();					// 放掉 Back Plain 的 CDC
		//}
	}