MCPcopy Create free account
hub / github.com/ddnet/ddnet / UpdateFilePreview

Method UpdateFilePreview

src/game/editor/file_browser.cpp:494–528  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

492}
493
494void CFileBrowser::UpdateFilePreview()
495{
496 if(m_PreviewState != EPreviewState::UNLOADED ||
497 !str_endswith(m_vpFilteredFileList[m_SelectedFileIndex]->m_aFilename, FILETYPE_EXTENSIONS[(int)m_FileType]))
498 {
499 return;
500 }
501
502 if(m_FileType == CFileBrowser::EFileType::IMAGE)
503 {
504 char aImagePath[IO_MAX_PATH_LENGTH];
505 str_format(aImagePath, sizeof(aImagePath), "%s/%s", m_pCurrentPath, m_vpFilteredFileList[m_SelectedFileIndex]->m_aFilename);
506 CImageInfo PreviewImageInfo;
507 if(Graphics()->LoadPng(PreviewImageInfo, aImagePath, m_vpFilteredFileList[m_SelectedFileIndex]->m_StorageType))
508 {
509 Graphics()->UnloadTexture(&m_PreviewImage);
510 m_PreviewImageWidth = PreviewImageInfo.m_Width;
511 m_PreviewImageHeight = PreviewImageInfo.m_Height;
512 m_PreviewImage = Graphics()->LoadTextureRawMove(PreviewImageInfo, 0, aImagePath);
513 m_PreviewState = EPreviewState::LOADED;
514 }
515 else
516 {
517 m_PreviewState = EPreviewState::ERROR;
518 }
519 }
520 else if(m_FileType == CFileBrowser::EFileType::SOUND)
521 {
522 char aSoundPath[IO_MAX_PATH_LENGTH];
523 str_format(aSoundPath, sizeof(aSoundPath), "%s/%s", m_pCurrentPath, m_vpFilteredFileList[m_SelectedFileIndex]->m_aFilename);
524 Sound()->UnloadSample(m_PreviewSound);
525 m_PreviewSound = Sound()->LoadOpus(aSoundPath, m_vpFilteredFileList[m_SelectedFileIndex]->m_StorageType);
526 m_PreviewState = m_PreviewSound == -1 ? EPreviewState::ERROR : EPreviewState::LOADED;
527 }
528}
529
530void CFileBrowser::RenderFilePreview(CUIRect Preview)
531{

Callers

nothing calls this directly

Calls 9

str_endswithFunction · 0.85
str_formatFunction · 0.85
GraphicsFunction · 0.85
UnloadTextureMethod · 0.80
LoadTextureRawMoveMethod · 0.80
UnloadSampleMethod · 0.80
LoadOpusMethod · 0.80
SoundFunction · 0.70
LoadPngMethod · 0.45

Tested by

no test coverage detected