本文整理汇总了C++中qSwap函数 的典型用法代码示例。如果您正苦于以下问题:C++ qSwap函数的具体用法?C++ qSwap怎么用?C++ qSwap使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了qSwap函数 的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Q_Q
/**
* The purpose of this function is to make sure that widgets are not laid out outside its layout.
* E.g. the layoutItemRect margins are only meant to take of the surrounding margins/spacings.
* However, if the margin is 0, it can easily cover the area of a widget above it.
*/
void QBoxLayoutPrivate::effectiveMargins(int *left, int *top, int *right, int *bottom) const
{
int l = leftMargin;
int t = topMargin;
int r = rightMargin;
int b = bottomMargin;
#ifdef Q_WS_MAC
Q_Q(const QBoxLayout);
if (horz(dir)) {
QBoxLayoutItem *leftBox = 0;
QBoxLayoutItem *rightBox = 0;
if (left || right) {
leftBox = list.value(0);
rightBox = list.value(list.count() - 1);
if (dir == QBoxLayout::RightToLeft)
qSwap(leftBox, rightBox);
int leftDelta = 0;
int rightDelta = 0;
if (leftBox) {
QLayoutItem *itm = leftBox->item;
if (QWidget *w = itm->widget())
leftDelta = itm->geometry().left() - w->geometry().left();
}
if (rightBox) {
QLayoutItem *itm = rightBox->item;
if (QWidget *w = itm->widget())
rightDelta = w->geometry().right() - itm->geometry().right();
}
QWidget *w = q->parentWidget();
Qt::LayoutDirection layoutDirection = w ? w->layoutDirection() : QApplication::layoutDirection();
if (layoutDirection == Qt::RightToLeft)
qSwap(leftDelta, rightDelta);
l = qMax(l, leftDelta);
r = qMax(r, rightDelta);
}
int count = top || bottom ? list.count() : 0;
for (int i = 0; i < count; ++i) {
QBoxLayoutItem *box = list.at(i);
QLayoutItem *itm = box->item;
QWidget *w = itm->widget();
if (w) {
QRect lir = itm->geometry();
QRect wr = w->geometry();
if (top)
t = qMax(t, lir.top() - wr.top());
if (bottom)
b = qMax(b, wr.bottom() - lir.bottom());
}
}
} else { // vertical layout
QBoxLayoutItem *topBox = 0;
QBoxLayoutItem *bottomBox = 0;
if (top || bottom) {
topBox = list.value(0);
bottomBox = list.value(list.count() - 1);
if (dir == QBoxLayout::BottomToTop) {
qSwap(topBox, bottomBox);
}
if (top && topBox) {
QLayoutItem *itm = topBox->item;
QWidget *w = itm->widget();
if (w)
t = qMax(t, itm->geometry().top() - w->geometry().top());
}
if (bottom && bottomBox) {
QLayoutItem *itm = bottomBox->item;
QWidget *w = itm->widget();
if (w)
b = qMax(b, w->geometry().bottom() - itm->geometry().bottom());
}
}
int count = left || right ? list.count() : 0;
for (int i = 0; i < count; ++i) {
QBoxLayoutItem *box = list.at(i);
QLayoutItem *itm = box->item;
QWidget *w = itm->widget();
if (w) {
QRect lir = itm->geometry();
QRect wr = w->geometry();
if (left)
l = qMax(l, lir.left() - wr.left());
if (right)
r = qMax(r, wr.right() - lir.right());
}
}
}
#endif
//.........这里部分代码省略.........
开发者ID:KDE, 项目名称:android-qt5-qtbase, 代码行数:101, 代码来源:qboxlayout.cpp
示例2: parseDateString
//.........这里部分代码省略.........
if (unknown[i] >= 1)
couldBe[i] = ADAY;
if (month == -1 && unknown[i] >= 1 && unknown[i] <= 12)
couldBe[i] |= AMONTH;
if (year == -1)
couldBe[i] |= AYEAR;
}
// For any possible day make sure one of the values that could be a month
// can contain that day.
// For any possible month make sure one of the values that can be a
// day that month can have.
// Example: 31 11 06
// 31 can't be a day because 11 and 6 don't have 31 days
for (int i = 0; i < unknownCount; ++i) {
int currentValue = unknown[i];
bool findMatchingMonth = couldBe[i] & ADAY && currentValue >= 29;
bool findMatchingDay = couldBe[i] & AMONTH;
if (!findMatchingMonth || !findMatchingDay)
continue;
for (int j = 0; j < 3; ++j) {
if (j == i)
continue;
for (int k = 0; k < 2; ++k) {
if (k == 0 && !(findMatchingMonth && (couldBe[j] & AMONTH)))
continue;
else if (k == 1 && !(findMatchingDay && (couldBe[j] & ADAY)))
continue;
int m = currentValue;
int d = unknown[j];
if (k == 0)
qSwap(m, d);
if (m == -1) m = month;
bool found = true;
switch(m) {
case 2:
// When we get 29 and the year ends up having only 28
// See date.isValid below
// Example: 29 23 Feb
if (d <= 29)
found = false;
break;
case 4: case 6: case 9: case 11:
if (d <= 30)
found = false;
break;
default:
if (d > 0 && d <= 31)
found = false;
}
if (k == 0) findMatchingMonth = found;
else if (k == 1) findMatchingDay = found;
}
}
if (findMatchingMonth)
couldBe[i] &= ~ADAY;
if (findMatchingDay)
couldBe[i] &= ~AMONTH;
}
// First set the year/month/day that have been deduced
// and reduce the set as we go along to deduce more
for (int i = 0; i < unknownCount; ++i) {
int unset = 0;
开发者ID:NikhilNJ, 项目名称:screenplay-dx, 代码行数:67, 代码来源:qnetworkcookie.cpp
示例3: qSwap
void Stack::swap(Stack &other)
{
qSwap(d, other.d);
}
开发者ID:AgnosticPope, 项目名称:qt-creator, 代码行数:4, 代码来源:stack.cpp
示例4: qSwap
void QgsRendererCategoryV2::swap( QgsRendererCategoryV2 & cat )
{
qSwap( mValue, cat.mValue );
qSwap( mSymbol, cat.mSymbol );
qSwap( mLabel, cat.mLabel );
}
开发者ID:CSRedRat, 项目名称:QGIS, 代码行数:6, 代码来源:qgscategorizedsymbolrendererv2.cpp
示例5: create
DataFormMedia::Ptr create()
{
DataFormMedia::Ptr result;
qSwap(result, m_media);
return result;
}
开发者ID:magist3r, 项目名称:jreen, 代码行数:6, 代码来源:dataformfactory.cpp
示例6: qSwap
/*!
\internal
*/
QWebSocketFrame &QWebSocketFrame::operator =(QWebSocketFrame &&other)
{
qSwap(m_closeCode, other.m_closeCode);
qSwap(m_closeReason, other.m_closeReason);
qSwap(m_isFinalFrame, other.m_isFinalFrame);
qSwap(m_mask, other.m_mask);
qSwap(m_rsv1, other.m_rsv1);
qSwap(m_rsv2, other.m_rsv2);
qSwap(m_rsv3, other.m_rsv3);
qSwap(m_opCode, other.m_opCode);
qSwap(m_length, other.m_length);
qSwap(m_payload, other.m_payload);
qSwap(m_isValid, other.m_isValid);
return *this;
}
开发者ID:honeyzhaoAliyun, 项目名称:QtWebSocket, 代码行数:19, 代码来源:qwebsocketframe.cpp
示例7: qSwap
/*!
Draw a rectangular frame
\param painter Painter
\param rect Frame rectangle
\param palette Palette
\param foregroundRole Foreground role used for QFrame::Plain
\param frameWidth Frame width
\param midLineWidth Used for QFrame::Box
\param frameStyle bitwise OR´ed value of QFrame::Shape and QFrame::Shadow
*/
void QwtPainter::drawFrame( QPainter *painter, const QRectF &rect,
const QPalette &palette, QPalette::ColorRole foregroundRole,
int frameWidth, int midLineWidth, int frameStyle )
{
if ( frameWidth <= 0 || rect.isEmpty() )
return;
const int shadow = frameStyle & QFrame::Shadow_Mask;
painter->save();
if ( shadow == QFrame::Plain )
{
const QRectF outerRect = rect.adjusted( 0.0, 0.0, -1.0, -1.0 );
const QRectF innerRect = outerRect.adjusted(
frameWidth, frameWidth, -frameWidth, -frameWidth );
QPainterPath path;
path.addRect( outerRect );
path.addRect( innerRect );
painter->setPen( Qt::NoPen );
painter->setBrush( palette.color( foregroundRole ) );
painter->drawPath( path );
}
else
{
const int shape = frameStyle & QFrame::Shape_Mask;
if ( shape == QFrame::Box )
{
const QRectF outerRect = rect.adjusted( 0.0, 0.0, -1.0, -1.0 );
const QRectF midRect1 = outerRect.adjusted(
frameWidth, frameWidth, -frameWidth, -frameWidth );
const QRectF midRect2 = midRect1.adjusted(
midLineWidth, midLineWidth, -midLineWidth, -midLineWidth );
const QRectF innerRect = midRect2.adjusted(
frameWidth, frameWidth, -frameWidth, -frameWidth );
QPainterPath path1;
path1.moveTo( outerRect.bottomLeft() );
path1.lineTo( outerRect.topLeft() );
path1.lineTo( outerRect.topRight() );
path1.lineTo( midRect1.topRight() );
path1.lineTo( midRect1.topLeft() );
path1.lineTo( midRect1.bottomLeft() );
QPainterPath path2;
path2.moveTo( outerRect.bottomLeft() );
path2.lineTo( outerRect.bottomRight() );
path2.lineTo( outerRect.topRight() );
path2.lineTo( midRect1.topRight() );
path2.lineTo( midRect1.bottomRight() );
path2.lineTo( midRect1.bottomLeft() );
QPainterPath path3;
path3.moveTo( midRect2.bottomLeft() );
path3.lineTo( midRect2.topLeft() );
path3.lineTo( midRect2.topRight() );
path3.lineTo( innerRect.topRight() );
path3.lineTo( innerRect.topLeft() );
path3.lineTo( innerRect.bottomLeft() );
QPainterPath path4;
path4.moveTo( midRect2.bottomLeft() );
path4.lineTo( midRect2.bottomRight() );
path4.lineTo( midRect2.topRight() );
path4.lineTo( innerRect.topRight() );
path4.lineTo( innerRect.bottomRight() );
path4.lineTo( innerRect.bottomLeft() );
QPainterPath path5;
path5.addRect( midRect1 );
path5.addRect( midRect2 );
painter->setPen( Qt::NoPen );
QBrush brush1 = palette.dark().color();
QBrush brush2 = palette.light().color();
if ( shadow == QFrame::Raised )
qSwap( brush1, brush2 );
painter->setBrush( brush1 );
painter->drawPath( path1 );
painter->drawPath( path4 );
//.........这里部分代码省略.........
开发者ID:FabianFrancoRoldan, 项目名称:OpenPilot, 代码行数:101, 代码来源:qwt_painter.cpp
示例8: width
void ScoreWidget::showPlayerScore (int i, const QString scoreBullet, const QString scoreMountain,
const QString scoreLeftWhist, const QString scoreRightWhist, const int scoreTotal)
{
const int PoolWidth = 60;
const int Pool2Width = 85;
int PaperWidth = width();
int PaperHeight = height();
QPainter p(this);
if (m_landscape)
{
p.translate(PaperWidth, 0);
p.rotate(90);
qSwap(PaperWidth, PaperHeight);
}
QPoint center(PaperWidth/2, PaperHeight-PaperWidth/2);
p.setPen(qRgb(0, 0, 0));
QFont fnt(p.font());
QRect r1 = p.boundingRect(rect(), Qt::AlignHCenter, QString::number(scoreTotal));
switch (i)
{
case 1:
// Bullet
p.setPen(qRgb(0, 128, 0));
p.drawText(PoolWidth+r1.height()+4, PaperHeight-PoolWidth-4, scoreBullet);
// Mountain
p.setPen(qRgb(235, 0, 0));
p.drawText(Pool2Width+r1.height()+4, PaperHeight-Pool2Width-4, scoreMountain);
// Whists
p.setPen(qRgb(0, 0, 0));
p.drawText(r1.height()+4, PaperHeight-4, scoreLeftWhist);
p.drawText(center.x()+4, PaperHeight-4, scoreRightWhist);
// Total score
if (scoreTotal >= 0)
p.setPen(qRgb(0, 0, 235));
else
p.setPen(qRgb(235, 0, 0));
fnt.setBold(true);
p.setFont(fnt);
p.drawText(center.x()-r1.width()/2, center.y()+100, QString::number(scoreTotal));
break;
case 2:
// Bullet
p.setPen(qRgb(0, 128, 0));
drawRotatedText(p, PoolWidth+4, 4, 90, scoreBullet);
// Mountain
p.setPen(qRgb(235, 0, 0));
drawRotatedText(p, Pool2Width+4, 4, 90, scoreMountain);
// Whists
p.setPen(qRgb(0, 0, 0));
drawRotatedText(p, 4, 4, 90, scoreLeftWhist);
drawRotatedText(p, 4, (PaperHeight-PoolWidth)/2+4, 90, scoreRightWhist);
// Total score
if (scoreTotal >= 0)
p.setPen(qRgb(0, 0, 235));
else
p.setPen(qRgb(235, 0, 0));
fnt.setBold(true);
p.setFont(fnt);
if(!m_landscape) {
drawRotatedText(p, center.x() - 60, (PaperHeight - Pool2Width - r1.width())/2,
90, QString::number(scoreTotal));
} else {
drawRotatedText(p, center.x() - 60, (PaperHeight - Pool2Width + r1.width())/2,
-90, QString::number(scoreTotal));
}
break;
case 3:
// Bullet
p.setPen(qRgb(0, 128, 0));
drawRotatedText(p, PaperWidth-PoolWidth-4, PaperHeight-PoolWidth-r1.height(), -90, scoreBullet);
// Mountain
p.setPen(qRgb(235, 0, 0));
drawRotatedText(p, PaperWidth-Pool2Width-4, PaperHeight-Pool2Width-r1.height(), -90, scoreMountain);
// Whists
p.setPen(qRgb(0, 0, 0));
drawRotatedText(p, PaperWidth-4, PaperHeight-r1.height()-4, -90, scoreLeftWhist);
drawRotatedText(p, PaperWidth-4, (PaperHeight-PoolWidth)/2-4, -90, scoreRightWhist);
// Total score
if (scoreTotal >= 0)
p.setPen(qRgb(0, 0, 235));
else
p.setPen(qRgb(235, 0, 0));
fnt.setBold(true);
p.setFont(fnt);
drawRotatedText(p, center.x() + 80, (PaperHeight - Pool2Width + r1.width())/2,
-90, QString::number(scoreTotal));
break;
default: ;
}
fnt.setBold(false);
p.setFont(fnt);
p.end();
}
开发者ID:infsega, 项目名称:bbpref, 代码行数:93, 代码来源:scorewidget.cpp
示例9: brush
void Font::drawComplexText(GraphicsContext* ctx, const TextRun& run, const FloatPoint& point, int from, int to) const
{
if (to < 0)
to = run.length();
QPainter *p = ctx->platformContext();
if (ctx->textDrawingMode() & cTextFill) {
if (ctx->fillGradient()) {
QBrush brush(*ctx->fillGradient()->platformGradient());
brush.setTransform(ctx->fillGradient()->gradientSpaceTransform());
p->setPen(QPen(brush, 0));
} else if (ctx->fillPattern()) {
TransformationMatrix affine;
p->setPen(QPen(QBrush(ctx->fillPattern()->createPlatformPattern(affine)), 0));
} else
p->setPen(QColor(ctx->fillColor()));
}
if (ctx->textDrawingMode() & cTextStroke) {
if (ctx->strokeGradient()) {
QBrush brush(*ctx->strokeGradient()->platformGradient());
brush.setTransform(ctx->strokeGradient()->gradientSpaceTransform());
p->setPen(QPen(brush, ctx->strokeThickness()));
} else if (ctx->strokePattern()) {
TransformationMatrix affine;
p->setPen(QPen(QBrush(ctx->strokePattern()->createPlatformPattern(affine)), ctx->strokeThickness()));
} else
p->setPen(QPen(QColor(ctx->strokeColor()), ctx->strokeThickness()));
}
const QString string = fixSpacing(qstring(run));
// text shadow
IntSize shadowSize;
int shadowBlur;
Color shadowColor;
bool hasShadow = ctx->textDrawingMode() == cTextFill && ctx->getShadow(shadowSize, shadowBlur, shadowColor);
if (from > 0 || to < run.length()) {
QTextLayout layout(string, font());
QTextLine line = setupLayout(&layout, run);
float x1 = line.cursorToX(from);
float x2 = line.cursorToX(to);
if (x2 < x1)
qSwap(x1, x2);
QFontMetrics fm(font());
int ascent = fm.ascent();
QRectF clip(point.x() + x1, point.y() - ascent, x2 - x1, fm.height());
if (hasShadow) {
// TODO: when blur support is added, the clip will need to account
// for the blur radius
qreal dx1 = 0, dx2 = 0, dy1 = 0, dy2 = 0;
if (shadowSize.width() > 0)
dx2 = shadowSize.width();
else
dx1 = -shadowSize.width();
if (shadowSize.height() > 0)
dy2 = shadowSize.height();
else
dy1 = -shadowSize.height();
// expand the clip rect to include the text shadow as well
clip.adjust(dx1, dx2, dy1, dy2);
}
p->save();
p->setClipRect(clip.toRect());
QPointF pt(point.x(), point.y() - ascent);
if (hasShadow) {
p->save();
p->setPen(QColor(shadowColor));
p->translate(shadowSize.width(), shadowSize.height());
line.draw(p, pt);
p->restore();
}
line.draw(p, pt);
p->restore();
return;
}
p->setFont(font());
QPointF pt(point.x(), point.y());
int flags = run.rtl() ? Qt::TextForceRightToLeft : Qt::TextForceLeftToRight;
if (hasShadow) {
// TODO: text shadow blur support
p->save();
p->setPen(QColor(shadowColor));
p->translate(shadowSize.width(), shadowSize.height());
p->drawText(pt, string, flags, run.padding());
p->restore();
}
if (ctx->textDrawingMode() & cTextStroke) {
QPainterPath path;
path.addText(pt, font(), string);
p->strokePath(path, p->pen());
}
if (ctx->textDrawingMode() & cTextFill)
p->drawText(pt, string, flags, run.padding());
//.........这里部分代码省略.........
开发者ID:flying-dutchmen, 项目名称:3DS_w3Browser, 代码行数:101, 代码来源:FontQt.cpp
示例10: old_tesselate_polygon
void old_tesselate_polygon(QVector<XTrapezoid> *traps, const QPointF *pg, int pgSize,
bool winding)
{
QVector<QEdge> edges;
edges.reserve(128);
qreal ymin(INT_MAX/256);
qreal ymax(INT_MIN/256);
//painter.begin(pg, pgSize);
if (pg[0] != pg[pgSize-1])
qWarning() << Q_FUNC_INFO << "Malformed polygon (first and last points must be identical)";
// generate edge table
// qDebug() << "POINTS:";
for (int x = 0; x < pgSize-1; ++x) {
QEdge edge;
QPointF p1(Q27Dot5ToDouble(FloatToQ27Dot5(pg[x].x())),
Q27Dot5ToDouble(FloatToQ27Dot5(pg[x].y())));
QPointF p2(Q27Dot5ToDouble(FloatToQ27Dot5(pg[x+1].x())),
Q27Dot5ToDouble(FloatToQ27Dot5(pg[x+1].y())));
// qDebug() << " "
// << p1;
edge.winding = p1.y() > p2.y() ? 1 : -1;
if (edge.winding > 0)
qSwap(p1, p2);
edge.p1.x = XDoubleToFixed(p1.x());
edge.p1.y = XDoubleToFixed(p1.y());
edge.p2.x = XDoubleToFixed(p2.x());
edge.p2.y = XDoubleToFixed(p2.y());
edge.m = (p1.y() - p2.y()) / (p1.x() - p2.x()); // line derivative
edge.b = p1.y() - edge.m * p1.x(); // intersection with y axis
edge.m = edge.m != 0.0 ? 1.0 / edge.m : 0.0; // inverted derivative
edges.append(edge);
ymin = qMin(ymin, qreal(XFixedToDouble(edge.p1.y)));
ymax = qMax(ymax, qreal(XFixedToDouble(edge.p2.y)));
}
QList<const QEdge *> et; // edge list
for (int i = 0; i < edges.size(); ++i)
et.append(&edges.at(i));
// sort edge table by min y value
qSort(et.begin(), et.end(), compareEdges);
// eliminate shared edges
for (int i = 0; i < et.size(); ++i) {
for (int k = i+1; k < et.size(); ++k) {
const QEdge *edgeI = et.at(i);
const QEdge *edgeK = et.at(k);
if (edgeK->p1.y > edgeI->p1.y)
break;
if (edgeI->winding != edgeK->winding &&
isEqual(edgeI->p1, edgeK->p1) && isEqual(edgeI->p2, edgeK->p2)
) {
et.removeAt(k);
et.removeAt(i);
--i;
break;
}
}
}
if (ymax <= ymin)
return;
QList<const QEdge *> aet; // edges that intersects the current scanline
// if (ymin < 0)
// ymin = 0;
// if (paintEventClipRegion) // don't scan more lines than we have to
// ymax = paintEventClipRegion->boundingRect().height();
#ifdef QT_DEBUG_TESSELATOR
qDebug("==> ymin = %f, ymax = %f", ymin, ymax);
#endif // QT_DEBUG_TESSELATOR
currentY = ymin; // used by the less than op
for (qreal y = ymin; y < ymax;) {
// fill active edge table with edges that intersect the current line
for (int i = 0; i < et.size(); ++i) {
const QEdge *edge = et.at(i);
if (edge->p1.y > XDoubleToFixed(y))
break;
aet.append(edge);
et.removeAt(i);
--i;
}
// remove processed edges from active edge table
for (int i = 0; i < aet.size(); ++i) {
if (aet.at(i)->p2.y <= XDoubleToFixed(y)) {
aet.removeAt(i);
--i;
}
}
if (aet.size()%2 != 0) {
#ifndef QT_NO_DEBUG
qWarning("QX11PaintEngine: aet out of sync - this should not happen.");
#endif
return;
//.........这里部分代码省略.........
开发者ID:maxxant, 项目名称:qt, 代码行数:101, 代码来源:oldtessellator.cpp
示例11: p
void ScoreWidget::paintBlankPaper ()
{
int PaperWidth = m_paperBmp->width();
int PaperHeight = m_paperBmp->height();
const int PoolWidth = 60;
const int Pool2Width = 85;
const int maxPoolRadius = 20;
QPainter p(m_paperBmp);
if (m_landscape)
{
p.translate(PaperWidth, 0);
p.rotate(90);
qSwap(PaperWidth, PaperHeight);
}
p.setRenderHints(QPainter::Antialiasing);
QRect NewRect = QRect(0, 0, PaperWidth, PaperHeight);
QImage img(QString(":/pics/scorepaper.png"));
p.drawImage(0, 0, img);
p.setPen(Qt::black);
// Draw borders of paper
p.drawRect(NewRect);
QPoint center(PaperWidth/2, PaperHeight-PaperWidth/2);
// Diagonal lines from bottom corners to circle
p.drawLine(NewRect.bottomLeft(), center);
p.drawLine(NewRect.bottomRight(), center);
// Central vertical line
p.drawLine( center.x(), 0, center.x(), center.y() );
// External border of pool
p.drawRect(PoolWidth, 0, PaperWidth-2*PoolWidth, PaperHeight-PoolWidth);
// Border of mountain
p.drawRect(Pool2Width, 0, PaperWidth-2*Pool2Width, PaperHeight-Pool2Width);
// Player lines
p.drawLine(0, (PaperHeight-PoolWidth)/2, PoolWidth, (PaperHeight-PoolWidth)/2);
p.drawLine(PaperWidth, (PaperHeight-PoolWidth)/2, PaperWidth-PoolWidth, (PaperHeight-PoolWidth)/2);
p.drawLine(PaperWidth/2, PaperHeight, PaperWidth/2, PaperHeight-PoolWidth);
// Circle with MaxPool value
QRadialGradient g(center, maxPoolRadius, center+QPoint(-maxPoolRadius/2,-maxPoolRadius/2));
g.setColorAt(0, Qt::white);
g.setColorAt(1, qRgb(250, 250, 0));
QBrush b1(g);
p.setBrush(b1);
p.drawEllipse(center, maxPoolRadius, maxPoolRadius);
// Draw text
// MaxPool
QFont fnt(p.font());
fnt.setBold(true);
p.setFont(fnt);
p.drawText(QRect(center.x() - maxPoolRadius, center.y() - maxPoolRadius,
maxPoolRadius*2, maxPoolRadius*2), QString::number(m_model->optMaxPool), QTextOption(Qt::AlignCenter));
fnt.setBold(false);
p.setFont(fnt);
// Players' names
QBrush brush(qRgb(255, 255, 255));
p.setBrush(brush);
const QRect r1 = p.boundingRect(NewRect, Qt::AlignHCenter, m_model->player(1)->nick());
const QRect r2 = p.boundingRect(NewRect, Qt::AlignHCenter, m_model->player(2)->nick());
const QRect r3 = p.boundingRect(NewRect, Qt::AlignHCenter, m_model->player(3)->nick());
p.drawText(QRect(center.x()-r1.width()/2, center.y()+55, r1.width(), r1.height()),
m_model->player(1)->nick(), QTextOption(Qt::AlignHCenter));
drawRotatedText(p, center.x() - 30, (PaperHeight - Pool2Width + (m_landscape ? 1 : -1) * r2.width())/2,
r2.width(), r2.height(), m_landscape ? -90 : 90, m_model->player(2)->nick());
drawRotatedText(p, center.x() + 30, (PaperHeight - Pool2Width + r3.width())/2,
r3.width(), r3.height(), -90, m_model->player(3)->nick());
p.end();
}
开发者ID:infsega, 项目名称:bbpref, 代码行数:78, 代码来源:scorewidget.cpp
示例12: while
//.........这里部分代码省略.........
updateBindOptions(true);
m_depthStencilBuffer = m_context->depthStencilBufferForFbo(m_secondaryFbo);
} else {
delete m_fbo;
delete m_secondaryFbo;
m_fbo = new QOpenGLFramebufferObject(m_size, format);
m_secondaryFbo = 0;
funcs->glBindTexture(GL_TEXTURE_2D, m_fbo->texture());
updateBindOptions(true);
m_depthStencilBuffer = m_context->depthStencilBufferForFbo(m_fbo);
}
}
}
if (m_recursive && !m_secondaryFbo) {
// m_fbo already created, m_recursive was just set.
Q_ASSERT(m_fbo);
Q_ASSERT(!m_multisampling);
m_secondaryFbo = new QOpenGLFramebufferObject(m_size, m_fbo->format());
funcs->glBindTexture(GL_TEXTURE_2D, m_secondaryFbo->texture());
updateBindOptions(true);
}
// Render texture.
root->markDirty(QSGNode::DirtyForceUpdate); // Force matrix, clip and opacity update.
m_renderer->nodeChanged(root, QSGNode::DirtyForceUpdate); // Force render list update.
#ifdef QSG_DEBUG_FBO_OVERLAY
if (qmlFboOverlay()) {
if (!m_debugOverlay)
m_debugOverlay = new QSGSimpleRectNode();
m_debugOverlay->setRect(QRectF(0, 0, m_size.width(), m_size.height()));
m_debugOverlay->setColor(QColor(0xff, 0x00, 0x80, 0x40));
root->appendChildNode(m_debugOverlay);
}
#endif
m_dirtyTexture = false;
m_renderer->setDeviceRect(m_size);
m_renderer->setViewportRect(m_size);
QRectF mirrored(m_mirrorHorizontal ? m_rect.right() : m_rect.left(),
m_mirrorVertical ? m_rect.bottom() : m_rect.top(),
m_mirrorHorizontal ? -m_rect.width() : m_rect.width(),
m_mirrorVertical ? -m_rect.height() : m_rect.height());
m_renderer->setProjectionMatrixToRect(mirrored);
m_renderer->setClearColor(Qt::transparent);
if (m_multisampling) {
m_renderer->renderScene(BindableFbo(m_secondaryFbo, m_depthStencilBuffer.data()));
if (deleteFboLater) {
delete m_fbo;
QOpenGLFramebufferObjectFormat format;
format.setInternalTextureFormat(m_format);
format.setAttachment(QOpenGLFramebufferObject::NoAttachment);
format.setMipmap(m_mipmap);
format.setSamples(0);
m_fbo = new QOpenGLFramebufferObject(m_size, format);
funcs->glBindTexture(GL_TEXTURE_2D, m_fbo->texture());
updateBindOptions(true);
}
QRect r(QPoint(), m_size);
QOpenGLFramebufferObject::blitFramebuffer(m_fbo, r, m_secondaryFbo, r);
} else {
if (m_recursive) {
m_renderer->renderScene(BindableFbo(m_secondaryFbo, m_depthStencilBuffer.data()));
if (deleteFboLater) {
delete m_fbo;
QOpenGLFramebufferObjectFormat format;
format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
format.setInternalTextureFormat(m_format);
format.setMipmap(m_mipmap);
m_fbo = new QOpenGLFramebufferObject(m_size, format);
funcs->glBindTexture(GL_TEXTURE_2D, m_fbo->texture());
updateBindOptions(true);
}
qSwap(m_fbo, m_secondaryFbo);
} else {
m_renderer->renderScene(BindableFbo(m_fbo, m_depthStencilBuffer.data()));
}
}
if (m_mipmap) {
funcs->glBindTexture(GL_TEXTURE_2D, textureId());
funcs->glGenerateMipmap(GL_TEXTURE_2D);
}
root->markDirty(QSGNode::DirtyForceUpdate); // Force matrix, clip, opacity and render list update.
#ifdef QSG_DEBUG_FBO_OVERLAY
if (qmlFboOverlay())
root->removeChildNode(m_debugOverlay);
#endif
if (m_recursive)
markDirtyTexture(); // Continuously update if 'live' and 'recursive'.
}
开发者ID:erikhvatum, 项目名称:StackStream, 代码行数:101, 代码来源:SSGQuickLayer.cpp
示例13: qSwap
void AnnounceThread::swap(AnnounceThread &other)
{
qSwap(d, other.d);
}
开发者ID:ProDataLab, 项目名称:qt-creator, 代码行数:4, 代码来源:announcethread.cpp
示例14: qSwap
//------------------------------------------------------------------------------
// Name: swap
//------------------------------------------------------------------------------
void BasicBlock::swap(BasicBlock &other) {
qSwap(instructions_, other.instructions_);
}
开发者ID:0xf1sh, 项目名称:edb-debugger, 代码行数:6, 代码来源:BasicBlock.cpp
示例15: plot
/*!
Update the axes scales
\param intervals Scale intervals
*/
void QwtPlotRescaler::updateScales(
QwtInterval intervals[QwtPlot::axisCnt] ) const
{
if ( d_data->inReplot >= 5 )
{
return;
}
QwtPlot *plt = const_cast<QwtPlot *>( plot() );
const bool doReplot = plt->autoReplot();
plt->setAutoReplot( false );
for ( int axis = 0; axis < QwtPlot::axisCnt; axis++ )
{
if ( axis == referenceAxis() || aspectRatio( axis ) > 0.0 )
{
double v1 = intervals[axis].minValue();
double v2 = intervals[axis].maxValue();
if ( !plt->axisScaleDiv( axis ).isIncreasing() )
qSwap( v1, v2 );
if ( d_data->inReplot >= 1 )
d_data->axisData[axis].scaleDiv = plt->axisScaleDiv( axis );
if ( d_data->inReplot >= 2 )
{
QList<double> ticks[QwtScaleDiv::NTickTypes];
for ( int i = 0; i < QwtScaleDiv::NTickTypes; i++ )
ticks[i] = d_data->axisData[axis].scaleDiv.ticks( i );
plt->setAxisScaleDiv( axis, QwtScaleDiv( v1, v2, ticks ) );
}
else
{
plt->setAxisScale( axis, v1, v2 );
}
}
}
QwtPlotCanvas *canvas = qobject_cast<QwtPlotCanvas *>( plt->canvas() );
bool immediatePaint = false;
if ( canvas )
{
immediatePaint = canvas->testPaintAttribute( QwtPlotCanvas::ImmediatePaint );
canvas->setPaintAttribute( QwtPlotCanvas::ImmediatePaint, false );
}
plt->setAutoReplot( doReplot );
d_data->inReplot++;
plt->replot();
d_data->inReplot--;
if ( canvas && immediatePaint )
{
canvas->setPaintAttribute( QwtPlotCanvas::ImmediatePaint, true );
}
}
开发者ID:iclosure, 项目名称:jdataanalyse, 代码行数:66, 代码来源:qwt_plot_rescaler.cpp
示例16: glBindTexture
QOpenGLFramebufferObject* GlowEffect::render(bool toTexture) {
QOpenGLFramebufferObject* primaryFBO = Application::getInstance()->getTextureCache()->getPrimaryFramebufferObject();
primaryFBO->release();
glBindTexture(GL_TEXTURE_2D, primaryFBO->texture());
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glDisable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
QOpenGLFramebufferObject* destFBO = toTexture ?
Application::getInstance()->getTextureCache()->getSecondaryFramebufferObject() : NULL;
if (_isEmpty && _renderMode != DIFFUSE_ADD_MODE) {
// copy the primary to the screen
if (QOpenGLFramebufferObject::hasOpenGLFramebufferBlit()) {
QOpenGLFramebufferObject::blitFramebuffer(destFBO, primaryFBO);
} else {
maybeBind(destFBO);
glEnable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
glColor3f(1.0f, 1.0f, 1.0f);
renderFullscreenQuad();
glDisable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
maybeRelease(destFBO);
}
} else if (_renderMode == ADD_MODE) {
maybeBind(destFBO);
_addProgram->bind();
renderFullscreenQuad();
_addProgram->release();
maybeRelease(destFBO);
} else if (_renderMode == DIFFUSE_ADD_MODE) {
// diffuse into the secondary/tertiary (alternating between frames)
QOpenGLFramebufferObject* oldDiffusedFBO =
Application::getInstance()->getTextureCache()->getSecondaryFramebufferObject();
QOpenGLFramebufferObject* newDiffusedFBO =
Application::getInstance()->getTextureCache()->getTertiaryFramebufferObject();
if (_isOddFrame) {
qSwap(oldDiffusedFBO, newDiffusedFBO);
}
newDiffusedFBO->bind();
if (_isFirstFrame) {
glClear(GL_COLOR_BUFFER_BIT);
} else {
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, oldDiffusedFBO->texture());
_diffuseProgram->bind();
QSize size = Application::getInstance()->getGLWidget()->size();
_diffuseProgram->setUniformValue(_diffusionScaleLocation, 1.0f / size.width(), 1.0f / size.height());
renderFullscreenQuad();
_diffuseProgram->release();
}
newDiffusedFBO->release();
// add diffused texture to the primary
glBindTexture(GL_TEXTURE_2D, newDiffusedFBO->texture());
if (toTexture) {
destFBO = oldDiffusedFBO;
}
maybeBind(destFBO);
_addSeparateProgram->bind();
renderFullscreenQuad();
_addSeparateProgram->release();
maybeRelease(destFBO);
glBindTexture(GL_TEXTURE_2D, 0);
glActiveTexture(GL_TEXTURE0);
} else { // _renderMode == BLUR_ADD_MODE || _renderMode == BLUR_PERSIST_ADD_MODE
// render the primary to the secondary with the horizontal blur
QOpenGLFramebufferObject* secondaryFBO =
Application::getInstance()->getTextureCache()->getSecondaryFramebufferObject();
secondaryFBO->bind();
_horizontalBlurProgram->bind();
renderFullscreenQuad();
_horizontalBlurProgram->release();
secondaryFBO->release();
if (_renderMode == BLUR_ADD_MODE) {
// render the secondary to the screen with the vertical blur
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, secondaryFBO->texture());
//.........这里部分代码省略.........
开发者ID:Bazm0, 项目名称:hifi, 代码行数:101, 代码来源:GlowEffect.cpp
示例17: QImage
void KinectHelper::consume_depth(VideoFrameRef frame){
/// Get depth data from the frame just fetched
const openni::DepthPixel* pDepth = (const openni::DepthPixel*)frame.getData(); // for point cloud
const openni::DepthPixel* iDepth = (const openni::DepthPixel*)frame.getData(); // for depth image
/// Depth Image
(*depth_back_buffer) = QImage(frame.getWidth(), frame.getHeight(), QImage::Format_RGB32);
for (unsigned nY=0; nY<frame.getHeight(); nY++)
{
uchar *imageptr = (*depth_back_buffer).scanLine(nY);
for (unsigned nX=0; nX < frame.getWidth(); nX++)
{
unsigned depth = *iDepth;
unsigned maxdist=10000;
if(depth>maxdist) depth=maxdist;
if(depth)
{
depth = (depth*255)/maxdist;
//depth = (maxdist-depth)*255/maxdist+1;
}
// depth: 0: invalid
// depth: 255: closest
// depth: 1: furtherst (maxdist distance)
// Here we could do depth*color, to show the colored depth
imageptr[0] = depth;
imageptr[1] = depth;
imageptr[2] = depth;
imageptr[3] = 0xff;
iDepth++;
imageptr+=4;
}
}
_mutex.lock();
qSwap(depth_front_buffer, depth_back_buffer);
_mutex.unlock();
/// Point Cloud
float wx,wy,wz;
/// NaN values must be handled well and not displayed by OpenGL
for (int y = 0; y<frame.getHeight(); ++y){
for(int x = 0; x<frame.getWidth(); ++x){
DepthPixel d = *pDepth;
pDepth++;
/// Convert depth coordinates to world coordinates to remove camera intrinsics
CoordinateConverter::convertDepthToWorld(depth, x, y, d, &wx, &wy, &wz);
/// Change the coordinates of the vertices in the model
(*points_back_buffer)(y,x) = Vector3(wx,wy,wz);
}
}
/// Now swap front and back buffers
_mutex.lock();
qSwap(points_front_buffer, points_back_buffer);
_mutex.unlock();
}
开发者ID:prernaa, 项目名称:handtrack_share2, 代码行数:61, 代码来源:KinectHelper.cpp
示例18: DrawHelper
void CurveDrawer::drawLine(QPointF p0, QPointF p1, qreal thickness)
{
//draw line with thickness and squared ends
struct DrawHelper
{
QPointF p0;
QPointF p1;
QPointF dp;
qreal ed;
DrawHelper(const QPointF& p0, const QPointF& p1)
{
this->p0 = p0;
this->p1 = p1;
dp = p1 - p0;
ed = Utils::norm(dp);
}
double dist(const QPointF& p)
{
return qAbs((p.x() - p0.x()) * dp.y() - (p.y() - p0.y()) * dp.x()) / ed;
}
bool inside(const QPointF& p)
{
qreal v = (p.y() - p0.x()) * dp.y() + (p.x() - p1.y()) * dp.x();
return v + (p1.y() - p0.x()) * dp.x() + (p0.x() - p0.y()) * dp.y() >= 0 &&
v + (p1.y() - p1.x()) * dp.x() + (p0.x() - p1.y()) * dp.y() <= 0;
}
static QPointF makePoint(const QPointF& p)
{
return p;
}
static QPointF makePointSwap(const QPointF& p)
{
return QPointF(p.y(), p.x());
}
} drawHelper(p0, p1);
QPointF (*pointMaker)(const QPointF& p) = DrawHelper::makePoint;
if (qAbs(drawHelper.dp.y()) > qAbs(drawHelper.dp.x()))
{
p0 = DrawHelper::makePointSwap(p0);
p1 = DrawHelper::makePointSwap(p1);
pointMaker = DrawHelper::makePointSwap;
}
if (p1.x() < p0.x())
{
qSwap(p0, p1);
qSwap(drawHelper.p0, drawHelper.p1);
drawHelper.dp *= -1;
}
qreal xOffset = thickness * qAbs(p0.y() - p1.y()) / drawHelper.ed;
QPointF dStep(1, (p1.y() - p0.y()) / (p1.x() - p0.x()));
for (QPointF p(p0 - xOffset * dStep); p.x() <= p1.x() + xOffset; p += dStep)
{
for (int sy = -1; sy <= 1; sy += 2)
{
qreal dist;
for (QPoint pp(Utils::roundPoint(p)); (dist = drawHelper.dist(pointMaker(pp))) <= thickness; pp.ry() += sy)
{
if (drawHelper.inside(pointMaker(pp)))
{
setPixel(Utils::roundPoint(pointMaker(pp)), pixelColor(dist, thickness));
}
}
}
}
}
开发者ID:eugenechereshnev, 项目名称:computer-graphics, 代码行数:65, 代码来源:curvedrawer.cpp
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19193| 2023-10-27
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:9988| 2022-11-06
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8327| 2022-11-06
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8696| 2022-11-06
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8639| 2022-11-06
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9657| 2022-11-06
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8624| 2022-11-06
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:7998| 2022-11-06
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8656| 2022-11-06
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7535| 2022-11-06
请发表评论