void Graphics::clear(bool inForceFreeHardware) { mFillJob.clear(); mLineJob.clear(); mTileJob.clear(); // clear jobs for(int i=0;i<mJobs.size();i++) mJobs[i].clear(); mJobs.resize(0); if (mHardwareData) { if (inForceFreeHardware || mClearCount<4) { delete mHardwareData; mHardwareData = 0; } else mHardwareData->clear(); if (!inForceFreeHardware) mClearCount++; } mPathData->clear(); mExtent0 = Extent2DF(); mRotation0 = 0; mBuiltHardware = 0; mMeasuredJobs = 0; mCursor = UserPoint(0,0); OnChanged(); }
void Graphics::clear() { mFillJob.clear(); mLineJob.clear(); mTileJob.clear(); // clear jobs for(int i=0;i<mJobs.size();i++) mJobs[i].clear(); mJobs.resize(0); if (mHardwareData) { delete mHardwareData; mHardwareData = 0; } mPathData->clear(); mExtent0 = Extent2DF(); mRotation0 = 0; mBuiltHardware = 0; mMeasuredJobs = 0; mCursor = UserPoint(0,0); mVersion++; }
void PolygonRender::GetExtent(CachedExtent &ioCache) { mBuildExtent = &ioCache.mExtent; *mBuildExtent = Extent2DF(); SetTransform(ioCache.mTransform); Iterate(itGetExtent,*ioCache.mTransform.mMatrix); mBuildExtent = 0; }
Extent2DF CachedExtent::Get(const Transform &inTransform) { mID = gCachedExtentID++; if (!mExtent.Valid()) return Extent2DF(); /* double ratio = mMatrix.m00!=0.0 ? inTransform.mMatrix->m00/mMatrix.m00 : mMatrix.m01!=0.0 ? inTransform.mMatrix->m01/mMatrix.m01 : 1.0; */ double ratio = 1; Extent2DF result = mExtent; result.Transform(ratio, ratio, inTransform.mMatrix->mtx - mMatrix.mtx, inTransform.mMatrix->mty - mMatrix.mty); return result; }