Kaydet (Commit) 9b0a74a4 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in ZBufferProcessor3D

Change-Id: I73005afdaf20efe15321a2a073beb3ae4f7a63e3
üst f9894d68
......@@ -430,7 +430,7 @@ namespace drawinglayer
// back to front
if(!mpRasterPrimitive3Ds)
{
const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds = new std::vector< RasterPrimitive3D >;
const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds.reset( new std::vector< RasterPrimitive3D > );
}
mpRasterPrimitive3Ds->push_back(RasterPrimitive3D(
......@@ -494,7 +494,7 @@ namespace drawinglayer
// back to front
if(!mpRasterPrimitive3Ds)
{
const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds = new std::vector< RasterPrimitive3D >;
const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds.reset( new std::vector< RasterPrimitive3D > );
}
mpRasterPrimitive3Ds->push_back(RasterPrimitive3D(
......@@ -598,18 +598,18 @@ namespace drawinglayer
maRasterRange.expand(basegfx::B2DPoint(mrBZPixelRaster.getWidth(), nStopLine));
// create the raster converter
mpZBufferRasterConverter3D = new ZBufferRasterConverter3D(mrBZPixelRaster, *this);
mpZBufferRasterConverter3D.reset( new ZBufferRasterConverter3D(mrBZPixelRaster, *this) );
}
ZBufferProcessor3D::~ZBufferProcessor3D()
{
delete mpZBufferRasterConverter3D;
mpZBufferRasterConverter3D.reset();
if(mpRasterPrimitive3Ds)
{
OSL_FAIL("ZBufferProcessor3D: destructed, but there are unrendered transparent geometries. Use ZBufferProcessor3D::finish() to render these (!)");
delete mpRasterPrimitive3Ds;
}
mpRasterPrimitive3Ds.reset();
}
void ZBufferProcessor3D::finish()
......@@ -653,8 +653,7 @@ namespace drawinglayer
// delete them to signal the destructor that all is done and
// to allow asserting there
delete mpRasterPrimitive3Ds;
mpRasterPrimitive3Ds = nullptr;
mpRasterPrimitive3Ds.reset();
}
}
} // end of namespace processor3d
......
......@@ -24,6 +24,7 @@
#include <drawinglayer/processor3d/defaultprocessor3d.hxx>
#include <vcl/bitmapex.hxx>
#include <memory>
namespace basegfx {
class BZPixelRaster;
......@@ -62,7 +63,7 @@ namespace drawinglayer
basegfx::B3DHomMatrix maInvEyeToView;
/// The raster converter for Z-Buffer
ZBufferRasterConverter3D* mpZBufferRasterConverter3D;
std::unique_ptr<ZBufferRasterConverter3D> mpZBufferRasterConverter3D;
/* AA value. Defines how many oversamples will be used in X and Y. Values 0, 1
will switch it off while e.g. 2 will use 2x2 pixels for each pixel to create
......@@ -72,7 +73,7 @@ namespace drawinglayer
/* remembered RasterPrimitive3D's which need to be painted back to front
for transparent 3D parts
*/
std::vector< RasterPrimitive3D >* mpRasterPrimitive3Ds;
std::unique_ptr<std::vector< RasterPrimitive3D >> mpRasterPrimitive3Ds;
sal_uInt32 mnStartLine;
sal_uInt32 mnStopLine;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment