本文整理汇总了C++中ClearCache函数的典型用法代码示例。如果您正苦于以下问题:C++ ClearCache函数的具体用法?C++ ClearCache怎么用?C++ ClearCache使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ClearCache函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PROFILE_THIS_SCOPE
void MipsJit::Compile(u32 em_address) {
PROFILE_THIS_SCOPE("jitc");
if (GetSpaceLeft() < 0x10000 || blocks.IsFull()) {
ClearCache();
}
int block_num = blocks.AllocateBlock(em_address);
JitBlock *b = blocks.GetBlock(block_num);
DoJit(em_address, b);
blocks.FinalizeBlock(block_num, jo.enableBlocklink);
bool cleanSlate = false;
if (js.hasSetRounding && !js.lastSetRounding) {
WARN_LOG(JIT, "Detected rounding mode usage, rebuilding jit with checks");
// Won't loop, since hasSetRounding is only ever set to 1.
js.lastSetRounding = js.hasSetRounding;
cleanSlate = true;
}
if (cleanSlate) {
// Our assumptions are all wrong so it's clean-slate time.
ClearCache();
Compile(em_address);
}
}
示例2: NumFields
void c4_HandlerSeq::DetachFromStorage(bool full_)
{
if (_persist != 0) {
int limit = full_ ? 0 : NumFields();
// get rid of all handlers which might do I/O
for (int c = NumHandlers(); --c >= 0;) {
c4_Handler &h = NthHandler(c);
// all nested fields are detached recursively
if (IsNested(c))
for (int r = 0; r < NumRows(); ++r)
if (h.HasSubview(r)) {
SubEntry(c, r).DetachFromStorage(full_);
}
if (c >= limit) {
if (h.IsPersistent()) {
delete &h;
_handlers.RemoveAt(c);
ClearCache();
}
}
}
if (full_) {
//UnmappedAll();
_persist = 0;
}
}
}
示例3: __CHECK_POINTER
STDMETHODIMP CEtsDivColl::Clone(IEtsDivColl** ppVal)
{
HRESULT hr = S_OK;
__CHECK_POINTER(ppVal);
try
{
ClearCache();
IEtsDivCollPtr spColl;
CComObject<CEtsDivColl>* pColl = NULL;
_CHK(CComObject<CEtsDivColl>::CreateInstance(&pColl));
spColl.Attach(pColl, TRUE);
if(!m_DivColl.empty())
{
EnumIterType itr = m_DivColl.begin();
while(itr!=m_DivColl.end())
{
pColl->m_DivColl.insert(*itr);
++itr;
}
}
*ppVal = spColl.Detach();
}
catch (_com_error& e)
{
hr = Error((PTCHAR)EgLib::CComErrorWrapper::ErrorDescription(e), IID_IEtsDivColl, e.Error());
}
return hr;
}
示例4: SetPen
void ImgCell::Draw(CellParser& parser, wxPoint point, int fontsize)
{
wxDC& dc = parser.GetDC();
if (DrawThisCell(parser, point) && m_image != NULL)
{
wxMemoryDC bitmapDC;
double scale = parser.GetScale();
m_image->ViewportSize(m_canvasSize.x,m_canvasSize.y,scale);
m_height = (m_image->m_height) + 2 * m_imageBorderWidth;
m_width = (m_image->m_width) + 2 * m_imageBorderWidth;
SetPen(parser);
if (m_drawRectangle)
dc.DrawRectangle(wxRect(point.x, point.y - m_center, m_width, m_height));
wxBitmap bitmap = m_image->GetBitmap();
bitmapDC.SelectObject(bitmap);
dc.Blit(point.x + m_imageBorderWidth, point.y - m_center + m_imageBorderWidth, m_width - 2 * m_imageBorderWidth, m_height - 2 * m_imageBorderWidth, &bitmapDC, 0, 0);
}
else
// The cell isn't drawn => No need to keep it's image cache for now.
ClearCache();
MathCell::Draw(parser, point, fontsize);
}
示例5: StopTimer
void SlideShow::MarkAsDeleted()
{
// Stop and unregister the timer.
StopTimer();
ClearCache();
Cell::MarkAsDeleted();
}
示例6: DetachFromParent
c4_HandlerSeq::~c4_HandlerSeq()
{
const bool rootLevel = _parent == this;
c4_Persist *pers = _persist;
if (rootLevel && pers != 0) {
pers->DoAutoCommit();
}
DetachFromParent();
DetachFromStorage(true);
for (int i = 0; i < NumHandlers(); ++i) {
delete &NthHandler(i);
}
_handlers.SetSize(0);
ClearCache();
if (rootLevel) {
delete _field;
d4_assert(pers != 0);
delete pers;
}
}
示例7: ClearCache
ChEXPORT SsrwOOCacheStream::SsrwOOCacheStream(Stream* in_pStream)
{
ChLOG_DEBUG_START_FN;
m_pStream = in_pStream;
m_pStringTmp = NULL;
ClearCache();
}
示例8: ClearCache
BoxBrowser::~BoxBrowser()
{
for( int i = 0; i < NUM_BOXES; i++ )
{
delete box[ i ];
}
delete gameText;
// delete zIdTxt;
delete noCoverdata;
ClearCache();
if( bgImg1 )
delete bgImg1;
if( bgImg2 )
delete bgImg2;
// if( ratingImg )
// delete ratingImg;
// if( ratingImgData )
// delete ratingImgData;
}
示例9: if
//shifts the image datas to a different box and shifts the index
void BoxBrowser::Shift( int num )
{
//shift list index
listIdx -= num;
if( listIdx >= GameList::Count() )
{
listIdx = 0;
}
else if( listIdx < 0 )
{
listIdx = GameList::Count() - 1;
}
// check cache size
// probably could be more elegant than this, but this should work for now
if( coverImg.size() + abs(num) > BB_MAX_CACHE )
ClearCache( false );
//assign new image to boxes
int lOff = ( NUM_BOXES / 2 );
for( int i = 0; i < NUM_BOXES; i++ )
{
u32 cvrIdx = ( ( ( listIdx ) + i ) % GameList::Count() );
box[ i ]->SetImage( Get( cvrIdx ) );
if( i == lOff )
{
//set title text
currentSelection = cvrIdx;
gameText->SetText( GameList::Name( currentSelection ).c_str() );
}
}
//RsxMem::PrintInfo( true );
}
示例10: _T
const FileStatusCacheEntry * GitFolderStatus::GetCachedItem(const CTGitPath& filepath)
{
sCacheKey.assign(filepath.GetWinPath());
FileStatusMap::const_iterator iter;
const FileStatusCacheEntry *retVal;
if(m_mostRecentPath.IsEquivalentTo(CTGitPath(sCacheKey.c_str())))
{
// We've hit the same result as we were asked for last time
CTraceToOutputDebugString::Instance()(_T(__FUNCTION__) _T(": fast cache hit for %s\n"), filepath.GetWinPath());
retVal = m_mostRecentStatus;
}
else if ((iter = m_cache.find(sCacheKey)) != m_cache.end())
{
CTraceToOutputDebugString::Instance()(_T(__FUNCTION__) _T(": cache found for %s\n"), filepath.GetWinPath());
retVal = &iter->second;
m_mostRecentStatus = retVal;
m_mostRecentPath = CTGitPath(sCacheKey.c_str());
}
else
{
retVal = NULL;
}
if(retVal != NULL)
{
// We found something in a cache - check that the cache is not timed-out or force-invalidated
DWORD now = GetTickCount();
if ((now >= m_TimeStamp)&&((now - m_TimeStamp) > GetTimeoutValue()))
{
// Cache is timed-out
CTraceToOutputDebugString::Instance()(__FUNCTION__ ": Cache timed-out\n");
ClearCache();
retVal = NULL;
}
else if(WaitForSingleObject(m_hInvalidationEvent, 0) == WAIT_OBJECT_0)
{
// TortoiseGitProc has just done something which has invalidated the cache
CTraceToOutputDebugString::Instance()(__FUNCTION__ ": Cache invalidated\n");
ClearCache();
retVal = NULL;
}
return retVal;
}
return NULL;
}
示例11: ReloadTimer
void SlideShow::Draw(wxPoint point)
{
Cell::Draw(point);
// If the animation leaves the screen the timer is stopped automatically.
if(m_animationRunning)
ReloadTimer();
if (DrawThisCell(point) && (m_images[m_displayed] != NULL))
{
// Start the timer once the animation appears on the screen.
// But start it only once: Else the animation could be refreshed
// more frequent than it can be drawn. Each update of the animation
// will trigger this function and will trigger the animation to be
// restarted anyway.
//
Configuration *configuration = (*m_configuration);
if(configuration->GetPrinting()) {
m_images[m_displayed]->Recalculate(configuration->GetZoomFactor() * PRINT_SIZE_MULTIPLIER);
} else {
m_images[m_displayed]->Recalculate();
}
if (!InUpdateRegion()) return;
wxDC *dc = configuration->GetDC();
wxMemoryDC bitmapDC;
// Slide show cells have a red border except if they are selected
if (m_drawBoundingBox)
dc->SetPen(*(wxThePenList->FindOrCreatePen(configuration->GetColor(TS_SELECTION))));
else
dc->SetPen(*wxRED_PEN);
dc->DrawRectangle(wxRect(point.x, point.y - m_center, m_width, m_height));
wxBitmap bitmap = (configuration->GetPrinting() ? m_images[m_displayed]->GetBitmap(configuration->GetZoomFactor() * PRINT_SIZE_MULTIPLIER) : m_images[m_displayed]->GetBitmap());
bitmapDC.SelectObject(bitmap);
int imageBorderWidth = m_imageBorderWidth;
if (m_drawBoundingBox)
{
imageBorderWidth = Scale_Px(3);
dc->SetBrush(*(wxTheBrushList->FindOrCreateBrush(configuration->GetColor(TS_SELECTION))));
dc->DrawRectangle(wxRect(point.x, point.y - m_center, m_width, m_height));
}
dc->Blit(point.x + imageBorderWidth, point.y - m_center + imageBorderWidth,
m_width - 2 * imageBorderWidth, m_height - 2 * imageBorderWidth,
&bitmapDC,
imageBorderWidth - m_imageBorderWidth, imageBorderWidth - m_imageBorderWidth);
}
else
// The cell isn't drawn => No need to keep it's image cache for now.
ClearCache();
// If we need a selection border on another redraw we will be informed by OnPaint() again.
m_drawBoundingBox = false;
}
示例12: SaveCache
void MEmblemMgr::Destroy()
{
if (CheckSaveFlag())
SaveCache();
ClearCache();
m_HttpSpooler.Destroy();
}
示例13: SaveCache
ProfileManager::~ProfileManager()
{
// If the profiles have been altered then write out the profile file
if (Changed)
SaveCache();
ClearCache();
}
示例14: ClearCache
EXPORT_C void CHuiFxEngine::SetMemoryLevel(THuiMemoryLevel aLevel)
{
iLowGraphicsMemoryMode = aLevel;
if(iLowGraphicsMemoryMode < EHuiMemoryLevelReduced)
{
ClearCache();
}
}
示例15: DrawSceneToWindowWithTransition
void Core_Imp::DrawSceneToWindowWithTransition(CoreScene* nextScene, CoreScene* previousScene, CoreTransition* transition)
{
auto t = (CoreTransition_Imp*) transition;
m_graphics->SetRenderTarget(nullptr, nullptr);
t->DrawCache(layerRenderer, nextScene, previousScene);
t->ClearCache();
}