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)); }
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 //} }