本文整理汇总了C++中CGUIImage::FreeResources方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIImage::FreeResources方法的具体用法?C++ CGUIImage::FreeResources怎么用?C++ CGUIImage::FreeResources使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIImage
的用法示例。
在下文中一共展示了CGUIImage::FreeResources方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnDeinitWindow
void CGUIDialogBoxeeManualResolveMovie::OnDeinitWindow(int nextWindowID)
{
CGUIDialog::OnDeinitWindow(nextWindowID);
CGUIImage* pImage = (CGUIImage*)GetControl(MOVIE_COVER);
pImage->FreeResources();
}
示例2: Show
void CSplash::Show()
{
g_graphicsContext.Lock();
g_graphicsContext.Clear();
g_graphicsContext.Flip();
#ifndef _WIN32
g_graphicsContext.Clear();
g_graphicsContext.Flip();
g_graphicsContext.Clear();
g_graphicsContext.Flip();
#endif
float w = g_graphicsContext.GetWidth();
float h = g_graphicsContext.GetHeight();
if(g_graphicsContext.GetRenderLowresGraphics())
{
RESOLUTION res = g_graphicsContext.GetGraphicsResolution();
w = g_settings.m_ResInfo[res].iWidth;
h = g_settings.m_ResInfo[res].iHeight;
}
CGUIImage* image = new CGUIImage(0, 0, 0, 0, w, h, m_ImageName);
image->SetAspectRatio(CAspectRatio::AR_KEEP);
image->AllocResources();
//render splash image
g_Windowing.BeginRender();
image->Render();
image->FreeResources();
delete image;
//show it on screen
g_Windowing.EndRender();
g_graphicsContext.Flip();
g_graphicsContext.Unlock();
}
示例3: Update
void CGUIDialogMusicInfo::Update()
{
if (m_bArtistInfo)
{
CONTROL_ENABLE(CONTROL_BTN_GET_FANART);
SetLabel(CONTROL_TEXTAREA, m_artist.strBiography);
CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs);
OnMessage(message);
if (GetControl(CONTROL_BTN_TRACKS)) // if no CONTROL_BTN_TRACKS found - allow skinner full visibility control over CONTROL_TEXTAREA and CONTROL_LIST
{
if (m_bViewReview)
{
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
SET_CONTROL_HIDDEN(CONTROL_LIST);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21888);
}
else
{
SET_CONTROL_VISIBLE(CONTROL_LIST);
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21887);
}
}
}
else
{
CONTROL_DISABLE(CONTROL_BTN_GET_FANART);
SetLabel(CONTROL_TEXTAREA, m_album.strReview);
CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs);
OnMessage(message);
if (GetControl(CONTROL_BTN_TRACKS)) // if no CONTROL_BTN_TRACKS found - allow skinner full visibility control over CONTROL_TEXTAREA and CONTROL_LIST
{
if (m_bViewReview)
{
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
SET_CONTROL_HIDDEN(CONTROL_LIST);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 182);
}
else
{
SET_CONTROL_VISIBLE(CONTROL_LIST);
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 183);
}
}
}
// update the thumbnail
const CGUIControl* pControl = GetControl(CONTROL_IMAGE);
if (pControl)
{
CGUIImage* pImageControl = (CGUIImage*)pControl;
pImageControl->FreeResources();
pImageControl->SetFileName(m_albumItem->GetThumbnailImage());
}
// disable the GetThumb button if the user isn't allowed it
CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_GET_THUMB, g_settings.GetCurrentProfile().canWriteDatabases() || g_passwordManager.bMasterUser);
if (!m_album.artist.empty() && CLastFmManager::GetInstance()->IsLastFmEnabled())
{
SET_CONTROL_VISIBLE(CONTROL_BTN_LASTFM);
}
else
{
SET_CONTROL_HIDDEN(CONTROL_BTN_LASTFM);
}
}
示例4: Update
void CGUIDialogVideoInfo::Update()
{
// setup plot text area
CStdString strTmp = m_movieItem->GetVideoInfoTag()->m_strPlot;
if (!(!m_movieItem->GetVideoInfoTag()->m_strShowTitle.IsEmpty() && m_movieItem->GetVideoInfoTag()->m_iSeason == 0)) // dont apply to tvshows
if (m_movieItem->GetVideoInfoTag()->m_playCount == 0 && !g_guiSettings.GetBool("videolibrary.showunwatchedplots"))
strTmp = g_localizeStrings.Get(20370);
strTmp.Trim();
SetLabel(CONTROL_TEXTAREA, strTmp);
CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_castList);
OnMessage(msg);
if (GetControl(CONTROL_BTN_TRACKS)) // if no CONTROL_BTN_TRACKS found - allow skinner full visibility control over CONTROL_TEXTAREA and CONTROL_LIST
{
if (m_bViewReview)
{
if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty())
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 133);
}
else
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 206);
}
SET_CONTROL_HIDDEN(CONTROL_LIST);
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
}
else
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 207);
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
SET_CONTROL_VISIBLE(CONTROL_LIST);
}
}
// Check for resumability
if (CGUIWindowVideoBase::GetResumeItemOffset(m_movieItem.get()) > 0)
CONTROL_ENABLE(CONTROL_BTN_RESUME);
else
CONTROL_DISABLE(CONTROL_BTN_RESUME);
CONTROL_ENABLE(CONTROL_BTN_PLAY);
// update the thumbnail
const CGUIControl* pControl = GetControl(CONTROL_IMAGE);
if (pControl)
{
CGUIImage* pImageControl = (CGUIImage*)pControl;
pImageControl->FreeResources();
pImageControl->SetFileName(m_movieItem->GetThumbnailImage());
}
// tell our GUI to completely reload all controls (as some of them
// are likely to have had this image in use so will need refreshing)
if (m_hasUpdatedThumb)
{
CGUIMessage reload(GUI_MSG_NOTIFY_ALL, 0, 0, GUI_MSG_REFRESH_THUMBS);
g_windowManager.SendMessage(reload);
}
}
示例5: Process
void CSplash::Process()
{
D3DGAMMARAMP newRamp;
D3DGAMMARAMP oldRamp;
g_graphicsContext.Lock();
g_graphicsContext.Get3DDevice()->Clear(0, NULL, D3DCLEAR_TARGET, 0, 0, 0);
g_graphicsContext.SetCameraPosition(CPoint(0, 0));
float w = g_graphicsContext.GetWidth();
float h = g_graphicsContext.GetHeight();
CGUIImage* image = new CGUIImage(0, 0, 0, 0, w, h, m_ImageName);
CGUIImage* image2 = new CGUIImage(0, 0, 0, 0, w, h, m_ImageName2);
image->SetAspectRatio(CAspectRatio::AR_STRETCH);
image2->SetAspectRatio(CAspectRatio::AR_STRETCH);
image->AllocResources();
image2->AllocResources();
// Store the old gamma ramp
g_graphicsContext.Get3DDevice()->GetGammaRamp(&oldRamp);
float fade = 0.5f;
for (int i = 0; i < 256; i++)
{
newRamp.red[i] = (int)((float)oldRamp.red[i] * fade);
newRamp.green[i] = (int)((float)oldRamp.red[i] * fade);
newRamp.blue[i] = (int)((float)oldRamp.red[i] * fade);
}
g_graphicsContext.Get3DDevice()->SetGammaRamp(GAMMA_RAMP_FLAG, &newRamp);
//render splash image
#ifndef HAS_XBOX_D3D
g_graphicsContext.Get3DDevice()->BeginScene();
#endif
image->Render();
image2->Render();
image->FreeResources();
image2->FreeResources();
delete image;
delete image2;
//show it on screen
#ifdef HAS_XBOX_D3D
g_graphicsContext.Get3DDevice()->BlockUntilVerticalBlank();
#else
g_graphicsContext.Get3DDevice()->EndScene();
#endif
g_graphicsContext.Get3DDevice()->Present( NULL, NULL, NULL, NULL );
g_graphicsContext.Unlock();
//fade in and wait untill the thread is stopped
while (!m_bStop)
{
if (fade <= 1.f)
{
for (int i = 0; i < 256; i++)
{
newRamp.red[i] = (int)((float)oldRamp.red[i] * fade);
newRamp.green[i] = (int)((float)oldRamp.green[i] * fade);
newRamp.blue[i] = (int)((float)oldRamp.blue[i] * fade);
}
g_graphicsContext.Lock();
Sleep(3);
g_graphicsContext.Get3DDevice()->SetGammaRamp(GAMMA_RAMP_FLAG, &newRamp);
g_graphicsContext.Unlock();
fade += 0.01f;
}
else
{
Sleep(10);
}
}
g_graphicsContext.Lock();
// fade out
for (float fadeout = fade - 0.01f; fadeout >= 0.f; fadeout -= 0.01f)
{
for (int i = 0; i < 256; i++)
{
newRamp.red[i] = (int)((float)oldRamp.red[i] * fadeout);
newRamp.green[i] = (int)((float)oldRamp.green[i] * fadeout);
newRamp.blue[i] = (int)((float)oldRamp.blue[i] * fadeout);
}
Sleep(3);
g_graphicsContext.Get3DDevice()->SetGammaRamp(GAMMA_RAMP_FLAG, &newRamp);
}
//restore original gamma ramp
g_graphicsContext.Get3DDevice()->Clear(0, NULL, D3DCLEAR_TARGET, 0, 0, 0);
g_graphicsContext.Get3DDevice()->SetGammaRamp(0, &oldRamp);
g_graphicsContext.Get3DDevice()->Present( NULL, NULL, NULL, NULL );
g_graphicsContext.Unlock();
}
示例6: Update
//.........这里部分代码省略.........
if (m_movieItem->GetVideoInfoTag()->m_playCount == 0 && g_guiSettings.GetBool("videolibrary.hideplots"))
strTmp = g_localizeStrings.Get(20370);
strTmp.Trim();
SetLabel(CONTROL_TEXTAREA, strTmp);
// setup cast list + determine type
ClearCastList();
if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty())
{ // music video
CStdStringArray artists;
StringUtils::SplitString(m_movieItem->GetVideoInfoTag()->m_strArtist, g_advancedSettings.m_videoItemSeparator, artists);
for (std::vector<CStdString>::const_iterator it = artists.begin(); it != artists.end(); ++it)
{
CFileItem *item = new CFileItem(*it);
if (CFile::Exists(item->GetCachedArtistThumb()))
item->SetThumbnailImage(item->GetCachedArtistThumb());
item->SetIconImage("DefaultArtist.png");
m_castList->Add(item);
}
m_castList->SetContent("musicvideos");
}
else
{ // movie/show/episode
for (CVideoInfoTag::iCast it = m_movieItem->GetVideoInfoTag()->m_cast.begin(); it != m_movieItem->GetVideoInfoTag()->m_cast.end(); ++it)
{
CStdString character;
if (it->strRole.IsEmpty())
character = it->strName;
else
character.Format("%s %s %s", it->strName.c_str(), g_localizeStrings.Get(20347).c_str(), it->strRole.c_str());
CFileItem *item = new CFileItem(it->strName);
if (CFile::Exists(item->GetCachedActorThumb()))
item->SetThumbnailImage(item->GetCachedActorThumb());
item->SetIconImage("DefaultActor.png");
item->SetLabel(character);
m_castList->Add(item);
}
// determine type:
if (m_movieItem->m_bIsFolder)
m_castList->SetContent("tvshows");
else if (m_movieItem->GetVideoInfoTag()->m_iSeason > -1)
m_castList->SetContent("episodes");
else
m_castList->SetContent("movies");
}
CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_castList);
OnMessage(msg);
if (m_bViewReview)
{
if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty())
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 133);
}
else
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 206);
}
SET_CONTROL_HIDDEN(CONTROL_LIST);
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
}
else
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 207);
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
SET_CONTROL_VISIBLE(CONTROL_LIST);
}
// Check for resumability
CGUIWindowVideoFiles *window = (CGUIWindowVideoFiles *)m_gWindowManager.GetWindow(WINDOW_VIDEO_FILES);
if (window && window->GetResumeItemOffset(m_movieItem) > 0)
{
CONTROL_ENABLE(CONTROL_BTN_RESUME);
}
else
{
CONTROL_DISABLE(CONTROL_BTN_RESUME);
}
if (m_movieItem->GetVideoInfoTag()->m_strEpisodeGuide.IsEmpty()) // disable the play button for tv show info
{
CONTROL_ENABLE(CONTROL_BTN_PLAY)
}
else
{
CONTROL_DISABLE(CONTROL_BTN_PLAY)
}
// update the thumbnail
const CGUIControl* pControl = GetControl(CONTROL_IMAGE);
if (pControl)
{
CGUIImage* pImageControl = (CGUIImage*)pControl;
pImageControl->FreeResources();
pImageControl->SetFileName(m_movieItem->GetThumbnailImage());
}
}
示例7: Update
void CGUIWindowMusicInfo::Update()
{
if (m_bArtistInfo)
{
SetLabel(CONTROL_ARTIST, m_artist.strArtist );
SetLabel(CONTROL_GENRE, m_artist.strGenre);
SetLabel(CONTROL_MOODS, m_artist.strMoods);
SetLabel(CONTROL_STYLES, m_artist.strStyles );
if (m_bViewReview)
{
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
SET_CONTROL_HIDDEN(CONTROL_LIST);
SetLabel(CONTROL_TEXTAREA, m_artist.strBiography);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21888);
}
else
{
SET_CONTROL_VISIBLE(CONTROL_LIST);
if (GetControl(CONTROL_LIST))
{
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs);
OnMessage(message);
}
else
CLog::Log(LOGERROR, "Out of date skin - needs list with id %i", CONTROL_LIST);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 21887);
}
}
else
{
SetLabel(CONTROL_ALBUM, m_album.strAlbum );
SetLabel(CONTROL_ARTIST, m_album.strArtist );
CStdString date; date.Format("%d", m_album.iYear);
SetLabel(CONTROL_DATE, date );
CStdString strRating;
if (m_album.iRating > 0)
strRating.Format("%i/9", m_album.iRating);
SetLabel(CONTROL_RATING, strRating );
SetLabel(CONTROL_GENRE, m_album.strGenre);
SetLabel(CONTROL_MOODS, m_album.strMoods);
SetLabel(CONTROL_STYLES, m_album.strStyles );
if (m_bViewReview)
{
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
SET_CONTROL_HIDDEN(CONTROL_LIST);
SetLabel(CONTROL_TEXTAREA, m_album.strReview);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 182);
}
else
{
SET_CONTROL_VISIBLE(CONTROL_LIST);
if (GetControl(CONTROL_LIST))
{
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
CGUIMessage message(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_albumSongs);
OnMessage(message);
}
else
CLog::Log(LOGERROR, "Out of date skin - needs list with id %i", CONTROL_LIST);
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 183);
}
}
// update the thumbnail
const CGUIControl* pControl = GetControl(CONTROL_IMAGE);
if (pControl)
{
CGUIImage* pImageControl = (CGUIImage*)pControl;
pImageControl->FreeResources();
pImageControl->SetFileName(m_albumItem->GetThumbnailImage());
}
// disable the GetThumb button if the user isn't allowed it
CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_GET_THUMB, g_settings.m_vecProfiles[g_settings.m_iLastLoadedProfileIndex].canWriteDatabases() || g_passwordManager.bMasterUser);
if (!m_album.strArtist.IsEmpty() && CLastFmManager::GetInstance()->IsLastFmEnabled())
{
SET_CONTROL_VISIBLE(CONTROL_BTN_LASTFM);
}
else
{
SET_CONTROL_HIDDEN(CONTROL_BTN_LASTFM);
}
}
示例8: Update
void CGUIWindowVideoInfo::Update()
{
CStdString strTmp;
strTmp = m_movieItem->GetVideoInfoTag()->m_strTitle; strTmp.Trim();
SetLabel(CONTROL_TITLE, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strDirector; strTmp.Trim();
SetLabel(CONTROL_DIRECTOR, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strStudio; strTmp.Trim();
SetLabel(CONTROL_STUDIO, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strWritingCredits; strTmp.Trim();
SetLabel(CONTROL_CREDITS, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strGenre; strTmp.Trim();
SetLabel(CONTROL_GENRE, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strTagLine; strTmp.Trim();
SetLabel(CONTROL_TAGLINE, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strPlotOutline; strTmp.Trim();
SetLabel(CONTROL_PLOTOUTLINE, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strTrailer; strTmp.Trim();
SetLabel(CONTROL_TRAILER, strTmp);
strTmp = m_movieItem->GetVideoInfoTag()->m_strMPAARating; strTmp.Trim();
SetLabel(CONTROL_MPAARATING, strTmp);
CStdString strTop250;
if (m_movieItem->GetVideoInfoTag()->m_iTop250)
strTop250.Format("%i", m_movieItem->GetVideoInfoTag()->m_iTop250);
SetLabel(CONTROL_TOP250, strTop250);
CStdString strYear;
if (m_movieItem->GetVideoInfoTag()->m_iYear)
strYear.Format("%i", m_movieItem->GetVideoInfoTag()->m_iYear);
else
strYear = g_infoManager.GetItemLabel(m_movieItem.get(),LISTITEM_PREMIERED);
SetLabel(CONTROL_YEAR, strYear);
CStdString strRating_And_Votes;
if (m_movieItem->GetVideoInfoTag()->m_fRating != 0.0f) // only non-zero ratings are of interest
strRating_And_Votes.Format("%03.1f (%s %s)", m_movieItem->GetVideoInfoTag()->m_fRating, m_movieItem->GetVideoInfoTag()->m_strVotes, g_localizeStrings.Get(20350));
SetLabel(CONTROL_RATING_AND_VOTES, strRating_And_Votes);
strTmp = m_movieItem->GetVideoInfoTag()->m_strRuntime; strTmp.Trim();
SetLabel(CONTROL_RUNTIME, strTmp);
// setup plot text area
strTmp = m_movieItem->GetVideoInfoTag()->m_strPlot;
if (!(!m_movieItem->GetVideoInfoTag()->m_strShowTitle.IsEmpty() && m_movieItem->GetVideoInfoTag()->m_iSeason == 0)) // dont apply to tvshows
if (m_movieItem->GetVideoInfoTag()->m_playCount == 0 && g_guiSettings.GetBool("videolibrary.hideplots"))
strTmp = g_localizeStrings.Get(20370);
strTmp.Trim();
SetLabel(CONTROL_TEXTAREA, strTmp);
CGUIMessage msg(GUI_MSG_LABEL_BIND, GetID(), CONTROL_LIST, 0, 0, m_castList);
OnMessage(msg);
if (m_bViewReview)
{
if (!m_movieItem->GetVideoInfoTag()->m_strArtist.IsEmpty())
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 133);
}
else
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 206);
}
SET_CONTROL_HIDDEN(CONTROL_LIST);
SET_CONTROL_VISIBLE(CONTROL_TEXTAREA);
}
else
{
SET_CONTROL_LABEL(CONTROL_BTN_TRACKS, 207);
SET_CONTROL_HIDDEN(CONTROL_TEXTAREA);
SET_CONTROL_VISIBLE(CONTROL_LIST);
}
// Check for resumability
CGUIWindowVideoFiles *window = (CGUIWindowVideoFiles *)m_gWindowManager.GetWindow(WINDOW_VIDEO_FILES);
if (window && window->GetResumeItemOffset(m_movieItem.get()) > 0)
CONTROL_ENABLE(CONTROL_BTN_RESUME);
else
CONTROL_DISABLE(CONTROL_BTN_RESUME);
CONTROL_ENABLE(CONTROL_BTN_PLAY);
// update the thumbnail
const CGUIControl* pControl = GetControl(CONTROL_IMAGE);
if (pControl)
{
CGUIImage* pImageControl = (CGUIImage*)pControl;
pImageControl->FreeResources();
pImageControl->SetFileName(m_movieItem->GetThumbnailImage());
//.........这里部分代码省略.........