[Kst] branches/work/kst/portto4/kst

Peter Kümmel syntheticpp at gmx.net
Mon Aug 23 09:04:45 CEST 2010


Do you need to pass a SharedPtr? When there is only one thread
you could pass a plain poniter/reference and circumvent this way
the (I assume expensive) synchronization mechanism in the copy
constructor of SharedPtr.

Peter


Am Montag, den 23.08.2010, 06:52 +0200 schrieb Barth Netterfield:
> SVN commit 1166844 by netterfield:
> 
> Speedup:
> 
> Don't do a qstring keyed hash lookup in the inner loop of drawing images.
> 
> 
> 
>  M  +0 -17     devel-docs/Kst2Specs/Wishlist  
>  M  +3 -1      src/libkst/matrix.h  
>  M  +5 -3      src/libkstmath/image.cpp  
>  M  +1 -1      src/libkstmath/image.h  
> 
> 
> --- branches/work/kst/portto4/kst/devel-docs/Kst2Specs/Wishlist #1166843:1166844
> @@ -41,25 +41,8 @@
>  
>  1.x kst file read compatibility...
>  
> -------------
> -
> -DECIDE: absolute or relative file names in kst files?
> -  kst1.x uses absolute.  This becomes a problem when the directory changes.
> -
> ------------
> -
> -Easier way to specify reversed axis when loading sky images:
> -  -can desire to reverse be gleaned from the fits image?
> -  -command line option?
> -  -new-image (sticky) option?
> -
>  ---------
>  
> -After the label creation dialog has been applied, attach the label to
> -the mouse, to allow it to be dragged around until placed by a click.
> -
> ----------
> -
>  Thread kst2
>  
>  --------------------
> --- branches/work/kst/portto4/kst/src/libkst/matrix.h #1166843:1166844
> @@ -30,6 +30,9 @@
>  
>  namespace Kst {
>  
> +class Matrix;
> +typedef SharedPtr<Matrix> MatrixPtr;
> +
>  class KSTCORE_EXPORT Matrix : public Primitive {
>    Q_OBJECT
>  
> @@ -185,7 +188,6 @@
>  
>  };
>  
> -typedef SharedPtr<Matrix> MatrixPtr;
>  typedef ObjectList<Matrix> MatrixList;
>  typedef ObjectMap<Matrix> MatrixMap;
>  
> --- branches/work/kst/portto4/kst/src/libkstmath/image.cpp #1166843:1166844
> @@ -144,10 +144,10 @@
>  }
>  
> 
> -QColor Image::getMappedColor(double x, double y) {
> +QColor Image::getMappedColor(MatrixPtr m, double x, double y) {
>    bool ok;
>  
> -  double z = _inputMatrices[THEMATRIX]->value(x, y, &ok);
> +  double z = m->value(x, y, &ok);
>    if (ok) {
>      int index;
>      if (_zUpper - _zLower != 0) {
> @@ -526,6 +526,8 @@
>  
>        // color map
>        QColor thisPixel;
> +      MatrixPtr m = _inputMatrices.value(THEMATRIX);
> +
>        if (image->hasColorMap()) {
>          int hXlXDiff = d2i(img_Hx_pix - img_Lx_pix);
>          int hYlYDiff = d2i(img_Hy_pix - img_Ly_pix - 1);
> @@ -544,7 +546,7 @@
>              } else {
>                new_y = (y + 1 + img_Ly_pix - b_Y) / m_Y;
>              }
> -            thisPixel = image->getMappedColor(new_x, new_y);
> +            thisPixel = image->getMappedColor(m, new_x, new_y);
>              if (thisPixel.isValid()) {
>                scanLine[x] = thisPixel.rgb();
>              }
> --- branches/work/kst/portto4/kst/src/libkstmath/image.h #1166843:1166844
> @@ -51,7 +51,7 @@
>      virtual QString propertyString() const;
>  
>      virtual bool getNearestZ(double x, double y, double& z);
> -    virtual QColor getMappedColor(double x, double y);
> +    virtual QColor getMappedColor(MatrixPtr m, double x, double y);
>      virtual void setPalette(const Palette &pal);
>      virtual void setUpperThreshold(double z);
>      virtual void setLowerThreshold(double z);
> _______________________________________________
> Kst mailing list
> Kst at kde.org
> https://mail.kde.org/mailman/listinfo/kst




More information about the Kst mailing list