@@ -8,7 +8,12 @@ QVector<QRgb> StereoMaker::grayscale;
8
8
9
9
StereoMaker::StereoMaker ()
10
10
{
11
- depthsep=(int *)malloc (256 *sizeof (int ));
11
+ depthsep= new int [256 ];
12
+ }
13
+
14
+ StereoMaker::~StereoMaker ()
15
+ {
16
+ delete [] depthsep;
12
17
}
13
18
14
19
void StereoMaker::composeDepth (QImage & depth,QImage & compose,float compose_height)
@@ -100,8 +105,8 @@ QImage StereoMaker::render(const QImage & map, const QImage & ptrn, Preset *pset
100
105
101
106
int x, left;
102
107
int y, right;
103
- int *lookL =( int *) malloc ( vwidth* sizeof ( int )) ;
104
- int *lookR =( int *) malloc ( vwidth* sizeof ( int )) ;
108
+ int *lookL = new int [ vwidth] ;
109
+ int *lookR = new int [ vwidth] ;
105
110
106
111
int dpi = psettings->getDotsPerInch ();
107
112
int yShift=dpi/16 ;
@@ -151,7 +156,7 @@ QImage StereoMaker::render(const QImage & map, const QImage & ptrn, Preset *pset
151
156
// benchmark
152
157
QElapsedTimer t_time;
153
158
t_time.start ();
154
- unsigned int **patternptr=( unsigned int **) malloc ( pattern_height* sizeof ( void *)) ;
159
+ unsigned int **patternptr= new unsigned int *[ pattern_height] ;
155
160
for (int i=pattern_height-1 ;i>=0 ;i--)
156
161
{
157
162
patternptr[i]=(unsigned int *)pattern.scanLine (i);
@@ -255,7 +260,7 @@ QImage StereoMaker::render(const QImage & map, const QImage & ptrn, Preset *pset
255
260
}
256
261
257
262
258
- CurResultScaledLine = CurResultLine.scaledToWidth (width,Qt::SmoothTransformation);
263
+ CurResultScaledLine = CurResultLine.scaled (width, 1 , Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
259
264
memcpy (result.scanLine (y+rh),CurResultScaledLine.scanLine (0 ),result.bytesPerLine ());
260
265
if (progbarval!=10 *y/(height-1 ))
261
266
{
@@ -264,10 +269,10 @@ QImage StereoMaker::render(const QImage & map, const QImage & ptrn, Preset *pset
264
269
}
265
270
}
266
271
qDebug (" Time elapsed: %lld ms" , t_time.elapsed ());
267
- free ( lookL) ;
268
- free ( lookR) ;
272
+ delete [] lookL;
273
+ delete [] lookR;
269
274
free (mapptr);
270
- free ( patternptr) ;
275
+ delete [] patternptr;
271
276
if (show_helper)
272
277
{
273
278
QPainter painter (&result);
@@ -289,11 +294,10 @@ QImage StereoMaker::render(const QImage & map, const QImage & ptrn, Preset *pset
289
294
{
290
295
rh = 30 ;
291
296
}
292
- if (eye_helper_left!= 0 )
297
+ if (eye_helper_left != 0 && eye_helper_right != 0 )
293
298
{
294
299
painter.drawImage (QPoint (result.width ()/2 -rect_sep/2 -rw/2 ,rh/6 ),*eye_helper_left);
295
300
painter.drawImage (QPoint (result.width ()/2 +rect_sep/2 -rw/2 ,rh/6 ),*eye_helper_right);
296
-
297
301
}
298
302
else
299
303
{
0 commit comments