Browse Source

Fix reference counting of sources of cloned surfaces

master
Krisjanis Rijnieks 9 years ago
parent
commit
5b21163bcd
  1. 4
      src/Surfaces/GridWarpSurface.cpp
  2. 4
      src/Surfaces/QuadSurface.cpp
  3. 1
      src/Surfaces/QuadSurface.h
  4. 4
      src/Surfaces/TriangleSurface.cpp

4
src/Surfaces/GridWarpSurface.cpp

@ -247,7 +247,9 @@ BaseSurface * GridWarpSurface::clone(){
GridWarpSurface * s = new GridWarpSurface(); GridWarpSurface * s = new GridWarpSurface();
s->setVertices(getVertices()); s->setVertices(getVertices());
s->setTexCoords(getTexCoords()); s->setTexCoords(getTexCoords());
s->setSource(getSource()); BaseSource * src = getSource();
src->referenceCount++;
s->setSource(src);
return s; return s;
} }

4
src/Surfaces/QuadSurface.cpp

@ -293,7 +293,9 @@ BaseSurface * QuadSurface::clone(){
QuadSurface * s = new QuadSurface(); QuadSurface * s = new QuadSurface();
s->setVertices(getVertices()); s->setVertices(getVertices());
s->setTexCoords(getTexCoords()); s->setTexCoords(getTexCoords());
s->setSource(getSource()); BaseSource * src = getSource();
src->referenceCount++;
s->setSource(src);
return s; return s;
} }

1
src/Surfaces/QuadSurface.h

@ -14,7 +14,6 @@ class QuadSurface : public BaseSurface {
~QuadSurface(); ~QuadSurface();
void setup(); void setup();
void setup(ofVec2f p1, ofVec2f p2, ofVec2f p3, ofVec2f p4, ofVec2f t1, void setup(ofVec2f p1, ofVec2f p2, ofVec2f p3, ofVec2f p4, ofVec2f t1,
ofVec2f t2, ofVec2f t3, ofVec2f t4, BaseSource * newSource); ofVec2f t2, ofVec2f t3, ofVec2f t4, BaseSource * newSource);

4
src/Surfaces/TriangleSurface.cpp

@ -189,7 +189,9 @@ BaseSurface * TriangleSurface::clone(){
TriangleSurface * s = new TriangleSurface(); TriangleSurface * s = new TriangleSurface();
s->setVertices(getVertices()); s->setVertices(getVertices());
s->setTexCoords(getTexCoords()); s->setTexCoords(getTexCoords());
s->setSource(getSource()); BaseSource * src = getSource();
src->referenceCount++;
s->setSource(src);
return s; return s;
} }

Loading…
Cancel
Save