deshlab wollte ich mal fragen wie man generell etwas optimieren kann.
ich dachte evtl dran, nicht bei mouse-events sondern über nen timer zu malen, aber bin nicht sicher ob das was bringen würde.
dann dachte ich dran dinge, die eigentlich nur einmal bei bestimmten events gezeichnet werden müssten und nicht bei einem mausmove zu puffern. aber da weis ich nicht wie das geht und ob überhaupt. kandidaten für sowas wären zum bsp.
Code: Alles auswählen
drawRangeCircles(*painter, px_painter, pen);könnte mir da jemand ein paar tips geben, solche recht einfachen sachen sollten doch schneller gehen....
Code: Alles auswählen
void BFItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {
Q_UNUSED(widget);
// Painter mit Zoll-Koordinatensystem
painter->setRenderHint(QPainter::Antialiasing);
painter->setRenderHint(QPainter::SmoothPixmapTransform);
//! Painter automatisch so skalieren, dass man mit den "Zoll"werten malt.
painter->scale(*pixels_per_inch, *pixels_per_inch);
// Painter mit standard Pixel-Koordinatensystem
QPainter px_painter;
// px_painter->setRenderHint(QPainter::Antialiasing);
// px_painter->setRenderHint(QPainter::SmoothPixmapTransform);
QPen pen;
selected = dModel->selected();
moving = dModel->moving();
turning = dModel->turning();
std::cout<<turning<<std::endl;
/*!
Modelle zeichnen
*/
drawRangeCircles(*painter, px_painter, pen);
/*!
Eiheiten zeichnen
*/
drawModel(*painter, pen, dModel->position() );
/*!
Modelle selektieren
*/
drawSelCircles(*painter, px_painter, pen);
/*!
Reichweite anzeigen
!es muss darauf geachtet werden, dass nur selektierte markiert werden (in der board wirds �berpr.)
*/
drawRangeCircles(*painter, px_painter, pen);
/*!
Modelle drehen
!es muss darauf geachtet werden, dass nur selektierte markiert werden (in der board wirds �berpr.)
*/
drawAngelGrid(*painter, px_painter);
}