// // Set image info from a file // bool CCCDFile::Open(const gchar *filepath, CmpackOpenMode mode, GError **error) { Close(); // Check file path if (mode != CMPACK_OPEN_CREATE) { if (!filepath || !g_file_test(filepath, G_FILE_TEST_IS_REGULAR)) { g_set_error(error, g_AppError, 0, "The file does not exists."); return false; } } else { if (!filepath) { g_set_error(error, g_AppError, 0, "Invalid file path."); return false; } } // Open file char *f = g_locale_from_utf8(filepath, -1, NULL, NULL, NULL); int res = cmpack_ccd_open(&m_Handle, f, mode, 0); if (res!=0) { char *msg = cmpack_formaterror(res); g_set_error(error, g_AppError, res, msg); cmpack_free(msg); } InvalidateCache(); g_free(f); return res==0; }
// // Clear data // bool CCCDFile::Close(GError **error) { if (m_Handle) { int res = cmpack_ccd_close(m_Handle); if (res!=0) { char *msg = cmpack_formaterror(res); g_set_error(error, g_AppError, res, msg); cmpack_free(msg); return false; } m_Handle = NULL; m_Object.Clear(); m_Location.Clear(); g_free(m_Filter); m_Filter = NULL; g_free(m_FormatName); m_FormatName = NULL; g_free(m_Observer); m_Observer = NULL; g_free(m_Telescope); m_Telescope = NULL; g_free(m_Instrument); m_Instrument = NULL; m_AvgFrames = m_SumFrames = 0; } InvalidateCache(); return true; }
BOOL EllipseRecordHandler::ReadEllipseSimple(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pEllipse; DocCoord CentrePoint; INT32 Height; INT32 Width; pEllipse = new NodeRegularShape; if (ok) ok = SetupShape(pEllipse); if (ok) ok = SetIsCircular(pEllipse, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoord(&CentrePoint); if (ok) ok = SetCentrePoint(pEllipse, CentrePoint); if (ok) ok = pCXaraFileRecord->ReadINT32(&Width); if (ok) ok = pCXaraFileRecord->ReadINT32(&Height); if (ok) ok = SetHeightAndWidth(pEllipse, Height, Width); if (ok) ok = InvalidateCache(pEllipse); if (ok) ok = InsertNode(pEllipse); return ok; }
bool Add(_tK const &Key, _tV const &Value) { _tRelOp RelOp; tNode *pNew = nullptr; tNode *pParent = nullptr; if (!pRoot) pNew = new tNode(Key, Value); else { tNode *pNode = dynamic_cast<tNode *>(FindNode(dynamic_cast<tNode *>(pRoot), Key, &pParent)); if (pNode) return false; // Key is already present in Tree. pNew = new tNode(Key, Value); } if (!pParent) pRoot = pNew; else { pNew->pUp = pParent; if (RelOp(Key, pParent->KV.first)) pParent->pLeft = pNew; else pParent->pRight = pNew; } InvalidateCache(); ++NodeCount; return true; } // Add()
BOOL RectangleRecordHandler::ReadRectangleSimple(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pRectangle; DocCoord CentrePoint; INT32 Height; INT32 Width; pRectangle = new NodeRegularShape; if (ok) ok = SetupShape(pRectangle); if (ok) ok = SetNumberOfSides(pRectangle, NumberOfSides); if (ok) ok = pCXaraFileRecord->ReadCoord(&CentrePoint); if (ok) ok = SetCentrePoint(pRectangle, CentrePoint); if (ok) ok = pCXaraFileRecord->ReadINT32(&Width); if (ok) ok = pCXaraFileRecord->ReadINT32(&Height); if (ok) ok = SetHeightAndWidth(pRectangle, Height, Width); if (ok) ok = InvalidateCache(pRectangle); if (ok) ok = InsertNode(pRectangle); return ok; }
BOOL EllipseRecordHandler::ReadEllipseComplex(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape *pEllipse; DocCoord CentrePoint; DocCoord MajorAxis; DocCoord MinorAxis; pEllipse = new NodeRegularShape; if (ok) ok = SetupShape(pEllipse); if (ok) ok = SetIsCircular(pEllipse, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoord(&CentrePoint); if (ok) ok = SetCentrePoint(pEllipse, CentrePoint); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MajorAxis,0,0); if (ok) ok = SetMajorAxis(pEllipse, MajorAxis); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MinorAxis,0,0); if (ok) ok = SetMinorAxis(pEllipse, MinorAxis); if (ok) ok = InvalidateCache(pEllipse); if (ok) ok = InsertNode(pEllipse); return ok; }
BOOL RectangleRecordHandler::ReadRectangleSimpleRoundedReformed(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pRectangle; DocCoord CentrePoint; INT32 Height; INT32 Width; double Curvature; pRectangle = new NodeRegularShape; if (ok) ok = SetupShape(pRectangle); if (ok) ok = SetNumberOfSides(pRectangle, NumberOfSides); if (ok) ok = SetIsRounded(pRectangle, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoord(&CentrePoint); if (ok) ok = SetCentrePoint(pRectangle, CentrePoint); if (ok) ok = pCXaraFileRecord->ReadINT32(&Width); if (ok) ok = pCXaraFileRecord->ReadINT32(&Height); if (ok) ok = SetHeightAndWidth(pRectangle, Height, Width); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&Curvature); if (ok) ok = SetCurvature(pRectangle, Curvature); if (ok) ok = pCXaraFileRecord->ReadPath(&(pRectangle->EdgePath1)); if (ok) ok = InvalidateCache(pRectangle); if (ok) ok = InsertNode(pRectangle); return ok; }
bool EDetailManager::UpdateObjects(bool bUpdateTex, bool bUpdateSelectedOnly) { m_Base.ReloadImage(); if (!m_Base.Valid()){ ELog.DlgMsg(mtError,"Invalid base texture!"); return false; } if (objects.empty()){ ELog.DlgMsg(mtError,"Object list empty!"); return false; } // update objects SPBItem* pb = UI->ProgressStart(dtH.size_x*dtH.size_z,"Updating objects..."); for (u32 z=0; z<dtH.size_z; z++) for (u32 x=0; x<dtH.size_x; x++){ if (!bUpdateSelectedOnly||(bUpdateSelectedOnly&&m_Selected[z*dtH.size_x+x])) UpdateSlotObjects(x,z); pb->Inc(); } UI->ProgressEnd(pb); InvalidateCache (); return true; }
void ClueListBox::CalculateNumberWidth() { // Calculate the max width, filling in missing values int max_width = 0; container_t::iterator item_it = m_items.begin(); std::vector<int>::iterator it, end; for (it = m_numWidths.begin(), end = m_numWidths.end(); it != end; ++it) { int & width = *it; // If there is no width for this item, calculate it if (width == -1) GetTextExtent(wxString::Format(_T("%d."), item_it->Number()), &width, NULL, NULL, NULL); if (width > max_width) max_width = width; ++item_it; } // Test to see if the cache needs to be invalidated if (max_width != m_numWidth) { m_numWidth = max_width; InvalidateCache(); } }
BOOL RectangleRecordHandler::ReadRectangleComplexRounded(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pRectangle; DocCoord CentrePoint; DocCoord MajorAxis; DocCoord MinorAxis; double Curvature; pRectangle = new NodeRegularShape; if (ok) ok = SetupShape(pRectangle); if (ok) ok = SetNumberOfSides(pRectangle, NumberOfSides); if (ok) ok = SetIsRounded(pRectangle, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoord(&CentrePoint); if (ok) ok = SetCentrePoint(pRectangle, CentrePoint); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MajorAxis,0,0); if (ok) ok = SetMajorAxis(pRectangle, MajorAxis); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MinorAxis,0,0); if (ok) ok = SetMinorAxis(pRectangle, MinorAxis); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&Curvature); if (ok) ok = SetCurvature(pRectangle, Curvature); if (ok) ok = InvalidateCache(pRectangle); if (ok) ok = InsertNode(pRectangle); return ok; }
void EDetailManager::ClearSlots() { ZeroMemory (&dtH,sizeof(DetailHeader)); xr_free (dtSlots); m_Selected.clear (); InvalidateCache (); }
/** read a page length data into iActive page and return iActive page if read is successful. */ TDynamicDirCachePage* CDynamicDirCache::UpdateActivePageL(TInt64 aPos) { // align the page position TInt64 pageStartMedPos = CalcPageStartPos(aPos); if (iActivePage->StartPos() == pageStartMedPos && iActivePage->IsValid()) { return iActivePage; } __PRINT2(_L("CDynamicDirCache::UpdateActivePageL(aPos=%lx, active=%lx)"), aPos, iActivePage->StartPos()); // set start med pos value, no other effects, only available to active page iActivePage->SetPos(pageStartMedPos); // read data, make active page valid TUint8* data = iActivePage->PtrInPage(iActivePage->iStartMedPos); TPtr8 dataPtr(data, iPageSizeInBytes); const TInt nErr = iDrive.ReadNonCritical(iActivePage->iStartMedPos, iPageSizeInBytes, dataPtr); if(nErr !=KErrNone) { // some serious problem occured during reading, invalidate cache. InvalidateCache(); User::Leave(nErr); } iActivePage->SetValid(ETrue); return iActivePage; }
BOOL RectangleRecordHandler::ReadRectangleComplexRoundedReformed(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pRectangle; DocCoord MajorAxis; DocCoord MinorAxis; Matrix TransformMatrix; double Curvature; pRectangle = new NodeRegularShape; if (ok) ok = SetupShape(pRectangle); if (ok) ok = SetNumberOfSides(pRectangle, NumberOfSides); if (ok) ok = SetIsRounded(pRectangle, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MajorAxis,0,0); if (ok) ok = SetMajorAxis(pRectangle, MajorAxis); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MinorAxis,0,0); if (ok) ok = SetMinorAxis(pRectangle, MinorAxis); if (ok) ok = pCXaraFileRecord->ReadMatrix(&TransformMatrix); if (ok) ok = SetTransformMatrix(pRectangle, TransformMatrix); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&Curvature); if (ok) ok = SetCurvature(pRectangle, Curvature); if (ok) ok = pCXaraFileRecord->ReadPath(&(pRectangle->EdgePath1)); if (ok) ok = InvalidateCache(pRectangle); if (ok) ok = InsertNode(pRectangle); return ok; }
/** 2nd stage constructor. @param aNumPages number of pages in the directory cache. @param aPageSizeLog2 Log2 of the page size in bytes, this is the cache read granularity @param aWrGranularityLog2 Log2(cache write granularity) */ void CMediaWTCache::InitialiseL(TUint32 aNumPages, TUint32 aPageSizeLog2, TUint32 aWrGranularityLog2) { ASSERT(aNumPages && aPageSizeLog2); __PRINT3(_L("#CMediaWTCache::InitialiseL() Pages=%d, PageSzLog2=%d, WrGrLog2:%d"), aNumPages, aPageSizeLog2, aWrGranularityLog2); ASSERT(aNumPages); ASSERT(aPageSizeLog2); if(aWrGranularityLog2) { ASSERT(aWrGranularityLog2 >= KDefSectorSzLog2 && aWrGranularityLog2 <= aPageSizeLog2); } iPageSizeLog2 = aPageSizeLog2; iWrGranularityLog2 = aWrGranularityLog2; //-- create cache pages for(TUint cnt=0; cnt<aNumPages; ++cnt) { CWTCachePage* pPage = CWTCachePage::NewL(aPageSizeLog2); iPages.AppendL(pPage); } InvalidateCache(); }
BOOL RectangleRecordHandler::ReadRectangleSimpleStellated(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pRectangle; DocCoord CentrePoint; INT32 Height; INT32 Width; double StellationRadius; double StellationOffset; pRectangle = new NodeRegularShape; if (ok) ok = SetupShape(pRectangle); if (ok) ok = SetNumberOfSides(pRectangle, NumberOfSides); if (ok) ok = SetIsStellated(pRectangle, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoord(&CentrePoint); if (ok) ok = SetCentrePoint(pRectangle, CentrePoint); if (ok) ok = pCXaraFileRecord->ReadINT32(&Width); if (ok) ok = pCXaraFileRecord->ReadINT32(&Height); if (ok) ok = SetHeightAndWidth(pRectangle, Height, Width); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&StellationRadius); if (ok) ok = SetStellationRadius(pRectangle, StellationRadius); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&StellationOffset); if (ok) ok = SetStellationOffset(pRectangle, StellationOffset); if (ok) ok = InvalidateCache(pRectangle); if (ok) ok = InsertNode(pRectangle); return ok; }
// // Close handle // void CFrameSet::Clear(void) { if (m_Handle) { cmpack_fset_destroy(m_Handle); m_Handle = NULL; } InvalidateCache(); }
BOOL RegularShapeRecordHandler::ReadShapeGeneralPhase1(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pShape; BYTE Flags; UINT16 NumberOfSides; DocCoord UTCentrePoint; DocCoord MajorAxis; DocCoord MinorAxis; Matrix TransformMatrix; double StellationRadius; double StellationOffset; double PrimaryCurvature; double SecondaryCurvature; pShape = new NodeRegularShape; if (ok) ok = SetupShape(pShape); if (ok) ok = pCXaraFileRecord->ReadBYTE(&Flags); if (ok) ok = SetFlags(pShape, Flags); if (ok) ok = pCXaraFileRecord->ReadUINT16(&NumberOfSides); if (ok) ok = SetNumberOfSides(pShape, NumberOfSides); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&UTCentrePoint,0,0); if (ok) ok = SetUTCentrePoint(pShape, UTCentrePoint); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MajorAxis,0,0); if (ok) ok = SetMajorAxis(pShape, MajorAxis); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MinorAxis,0,0); if (ok) ok = SetMinorAxis(pShape, MinorAxis); if (ok) ok = pCXaraFileRecord->ReadMatrix(&TransformMatrix); if (ok) ok = SetTransformMatrix(pShape, TransformMatrix); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&StellationRadius); if (ok) ok = SetStellationRadius(pShape, StellationRadius); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&StellationOffset); if (ok) ok = SetStellationOffset(pShape, StellationOffset); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&PrimaryCurvature); if (ok) ok = SetPrimaryCurvature(pShape, PrimaryCurvature); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&SecondaryCurvature); if (ok) ok = SetSecondaryCurvature(pShape, SecondaryCurvature); if (ok) ok = pCXaraFileRecord->ReadPath(&(pShape->EdgePath1)); if (ok) ok = pCXaraFileRecord->ReadPath(&(pShape->EdgePath2)); if (ok) ok = InvalidateCache(pShape); if (ok) ok = InsertNode(pShape); return ok; }
void EDetailManager::InitRender() { // inavlidate cache InvalidateCache (); // Make dither matrix bwdithermap (2,dither); soft_Load (); }
void SInvalidationPanel::SetContent(const TSharedRef< SWidget >& InContent) { InvalidateCache(); ChildSlot [ InContent ]; }
void SInvalidationPanel::Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) { if ( GetCanCache() ) { const bool bWasCachingNeeded = bNeedsCaching; if ( bNeedsCaching == false ) { if ( bCacheRelativeTransforms ) { // If the container we're in has changed in either scale or the rotation matrix has changed, if ( AllottedGeometry.GetAccumulatedLayoutTransform().GetScale() != LastAllottedGeometry.GetAccumulatedLayoutTransform().GetScale() || AllottedGeometry.GetAccumulatedRenderTransform().GetMatrix() != LastAllottedGeometry.GetAccumulatedRenderTransform().GetMatrix() ) { InvalidateCache(); } } else { // If the container we're in has changed in any way we need to invalidate for sure. if ( AllottedGeometry.GetAccumulatedLayoutTransform() != LastAllottedGeometry.GetAccumulatedLayoutTransform() || AllottedGeometry.GetAccumulatedRenderTransform() != LastAllottedGeometry.GetAccumulatedRenderTransform() ) { InvalidateCache(); } } if ( AllottedGeometry.GetLocalSize() != LastAllottedGeometry.GetLocalSize() ) { InvalidateCache(); } } LastAllottedGeometry = AllottedGeometry; // TODO We may be double pre-passing here, if the invalidation happened at the end of last frame, // we'll have already done one pre-pass before getting here. if ( bNeedsCaching ) { SlatePrepass(AllottedGeometry.Scale); CachePrepass(SharedThis(this)); } } }
void ClueListBox::OnSelection(wxCommandEvent & evt) { if (m_clues && m_clues->size() <= evt.GetSelection()) { InvalidateCache(); RefreshAll(); } else { evt.Skip(); } }
void EDetailManager::InvalidateSlots() { int slot_cnt = dtH.size_x*dtH.size_z; for (int k=0; k<slot_cnt; k++){ DetailSlot* it = &dtSlots[k]; it->w_id(0,DetailSlot::ID_Empty); it->w_id(1,DetailSlot::ID_Empty); it->w_id(2,DetailSlot::ID_Empty); it->w_id(3,DetailSlot::ID_Empty); } InvalidateCache(); }
void PathGeometry::OnCollectionItemChanged (Collection *col, DependencyObject *obj, PropertyChangedEventArgs *args) { if (!PropertyHasValueNoAutoCreate (PathGeometry::FiguresProperty, col)) { Geometry::OnCollectionItemChanged (col, obj, args); return; } InvalidateCache (); NotifyListenersOfPropertyChange (PathGeometry::FiguresProperty, NULL); }
void GeometryGroup::OnCollectionItemChanged (Collection *col, DependencyObject *obj, PropertyChangedEventArgs *args) { InvalidateCache (); if (!PropertyHasValueNoAutoCreate (GeometryGroup::ChildrenProperty, col)) { Geometry::OnCollectionItemChanged (col, obj, args); return; } NotifyListenersOfPropertyChange (GeometryGroup::ChildrenProperty, NULL); }
/** Write data to the media through the directory cache. @param aPos linear media position to start writing with @param aDes data to write */ void CMediaWTCache::WriteL(TInt64 aPos,const TDesC8& aDes) { #ifdef _DEBUG if(iCacheDisabled) {//-- cache is disabled for debug purposes User::LeaveIfError(iDrive.WriteCritical(aPos,aDes)); return; } #endif //_DEBUG TUint32 dataLen = aDes.Size(); const TUint8* pData = aDes.Ptr(); const TUint32 PageSz = PageSize(); //-- cache page size //-- find out if aPos is in cache. If not, find a spare page and read data there TInt nPage = FindOrGrabReadPageL(aPos); CWTCachePage* pPage = iPages[nPage]; const TUint32 bytesToPageEnd = (TUint32)(pPage->iStartPos+PageSize() - aPos); //-- number of bytes from aPos to the end of the page // __PRINT5(_L("CMediaWTCache::WriteL: aPos=%lx, aLength=%x, page:%lx, pageSz:%x, bytesToPageEnd=%x"), aPos, dataLen, pPage->iStartPos, PageSz, bytesToPageEnd); if(dataLen <= bytesToPageEnd) {//-- data section completely fits to the cache page Mem::Copy(pPage->PtrInCachePage(aPos), pData, dataLen); //-- update cache //-- make small write a multiple of a write granularity size (if it is used at all) //-- this is not the best way to use write granularity, but we would need to refactor cache pages code to make it normal TPtrC8 desBlock(aDes); if(iWrGranularityLog2) {//-- write granularity is used const TInt64 newPos = (aPos >> iWrGranularityLog2) << iWrGranularityLog2; //-- round position down to the write granularity size TUint32 newLen = (TUint32)(aPos - newPos)+dataLen; //-- round block size up to the write granularity size newLen = RoundUp(newLen, iWrGranularityLog2); const TUint8* pd = pPage->PtrInCachePage(newPos); desBlock.Set(pd, newLen); aPos = newPos; } //-- write data to the media const TInt nErr = iDrive.WriteCritical(aPos, desBlock); if(nErr != KErrNone) {//-- some serious problem occured during writing, invalidate cache. InvalidateCache(); User::Leave(nErr); } }
EDetail* EDetailManager::AppendDO(LPCSTR name, bool bTestUnique) { EDetail* D=0; if (bTestUnique&&(0!=(D=FindDOByName(name)))) return D; D = xr_new<EDetail>(); if (!D->Update(name)){ xr_delete(D); return 0; } objects.push_back (D); InvalidateCache (); return D; }
BOOL RectangleRecordHandler::ReadRectangleComplexRoundedStellatedReformed(CXaraFileRecord *pCXaraFileRecord) { BOOL ok = TRUE; NodeRegularShape * pRectangle; DocCoord MajorAxis; DocCoord MinorAxis; Matrix TransformMatrix; double StellationRadius; double StellationOffset; double PrimaryCurvature; double SecondaryCurvature; pRectangle = new NodeRegularShape; if (ok) ok = SetupShape(pRectangle); if (ok) ok = SetNumberOfSides(pRectangle, NumberOfSides); if (ok) ok = SetIsRounded(pRectangle, TRUE); if (ok) ok = SetIsStellated(pRectangle, TRUE); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MajorAxis,0,0); if (ok) ok = SetMajorAxis(pRectangle, MajorAxis); if (ok) ok = pCXaraFileRecord->ReadCoordTrans(&MinorAxis,0,0); if (ok) ok = SetMinorAxis(pRectangle, MinorAxis); if (ok) ok = pCXaraFileRecord->ReadMatrix(&TransformMatrix); if (ok) ok = SetTransformMatrix(pRectangle, TransformMatrix); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&StellationRadius); if (ok) ok = SetStellationRadius(pRectangle, StellationRadius); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&StellationOffset); if (ok) ok = SetStellationOffset(pRectangle, StellationOffset); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&PrimaryCurvature); if (ok) ok = SetPrimaryCurvature(pRectangle, PrimaryCurvature); if (ok) ok = pCXaraFileRecord->ReadDOUBLE(&SecondaryCurvature); if (ok) ok = SetSecondaryCurvature(pRectangle, SecondaryCurvature); if (ok) ok = pCXaraFileRecord->ReadPath(&(pRectangle->EdgePath1)); if (ok) ok = pCXaraFileRecord->ReadPath(&(pRectangle->EdgePath2)); if (ok) ok = InvalidateCache(pRectangle); if (ok) ok = InsertNode(pRectangle); return ok; }
void wxBitmapCache::SetBitmap( const wxBitmap& bitmap ) { if ( !m_bitmap.IsSameAs(bitmap) ) { InvalidateCache(); m_bitmap = bitmap; if( m_image ) { XmUninstallImage( (XImage*)m_image ); XtFree( (char*)(XImage*)m_image ); m_image = NULL; } } }
// // Make catalogue file from photometry file // bool CCCDFile::MakeCopy(const CCCDFile &img, GError **error) { assert (img.m_Handle!=NULL); CmpackCcdFile *handle = cmpack_ccd_new(); int res = cmpack_ccd_copy(img.m_Handle, handle, NULL); if (res!=0) { char *msg = cmpack_formaterror(res); g_set_error(error, g_AppError, res, msg); cmpack_free(msg); cmpack_ccd_destroy(handle); } Close(); m_Handle = handle; InvalidateCache(); return res==0; }
void Geometry::OnPropertyChanged (PropertyChangedEventArgs *args, MoonError *error) { // no need to clear the path for Geometry itself as FillRule and Transform properties are // only used when drawing, i.e. they do not affect the path itself if (args->GetProperty ()->GetOwnerType() != Type::GEOMETRY && args->GetId () != PathGeometry::FillRuleProperty && args->GetId () != GeometryGroup::FillRuleProperty) { DependencyObject::OnPropertyChanged (args, error); // not sure why we're doing this inside this block.. seems like it should happen outside it? InvalidateCache (); return; } NotifyListenersOfPropertyChange (args, error); }