diff --git a/build/DefaultConfiguration.props b/build/DefaultConfiguration.props index 785021381..504b2637e 100644 --- a/build/DefaultConfiguration.props +++ b/build/DefaultConfiguration.props @@ -49,16 +49,17 @@ updates.aegisub.org /trunk - ..\..\vendor\boost - ..\..\vendor\ffms2 - ..\..\vendor\ffmpeg - ..\..\vendor\fftw - ..\..\vendor\freetype2 - ..\..\vendor\fribidi - ..\..\vendor\googletest - ..\..\vendor\icu\source - ..\..\vendor\libass - ..\..\vendor\wxWidgets - ..\..\vendor\wxWidgets\src\zlib + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\vendor)) + $(VendorRoot)\boost + $(VendorRoot)\ffms2 + $(VendorRoot)\ffmpeg + $(VendorRoot)\fftw + $(VendorRoot)\freetype2 + $(VendorRoot)\fribidi + $(VendorRoot)\googletest + $(VendorRoot)\icu\source + $(VendorRoot)\libass + $(VendorRoot)\wxWidgets + $(VendorRoot)\wxWidgets\src\zlib diff --git a/build/aegisub.props b/build/aegisub.props index 0acc3d501..aa07badea 100644 --- a/build/aegisub.props +++ b/build/aegisub.props @@ -34,7 +34,7 @@ true Unicode MultiByte - v140_xp + v141 diff --git a/build/ffmpeg/ffmpeg.vcxproj b/build/ffmpeg/ffmpeg.vcxproj index fcdb21772..8f9959679 100644 --- a/build/ffmpeg/ffmpeg.vcxproj +++ b/build/ffmpeg/ffmpeg.vcxproj @@ -54,7 +54,7 @@ $(FfmpegSrcDir)\ - %(Include) -I$(MSBuildThisFileDirectory) -I$(MSBuildThisFileDirectory)$(FfmpegSrcDir) + %(Include) -I$(MSBuildThisFileDirectory) -I$(FfmpegSrcDir) %(Config) -DPREFIX -Pconfig-x86.asm %(Config) -Pconfig-x64.asm diff --git a/build/install.targets b/build/install.targets index b43e8f7cd..818536fbb 100644 --- a/build/install.targets +++ b/build/install.targets @@ -10,7 +10,7 @@ 6 || (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion >= 1)) - return FindExInfoBasic; - else - return FindExInfoStandard; - } -} - namespace agi { namespace fs { std::string ShortName(path const& p) { std::wstring out(MAX_PATH + 1, 0); @@ -98,7 +85,7 @@ DirectoryIterator::DirectoryIterator(path const& p, std::string const& filter) : privdata(new PrivData) { WIN32_FIND_DATA data; - privdata->h = FindFirstFileEx((p/(filter.empty() ? "*.*" : filter)).c_str(), find_info_level(), &data, FindExSearchNameMatch, nullptr, 0); + privdata->h = FindFirstFileEx((p/(filter.empty() ? "*.*" : filter)).c_str(), FindExInfoBasic, &data, FindExSearchNameMatch, nullptr, 0); if (privdata->h == INVALID_HANDLE_VALUE) { privdata.reset(); return; diff --git a/src/audio_renderer.cpp b/src/audio_renderer.cpp index d2286dd68..e90586b02 100644 --- a/src/audio_renderer.cpp +++ b/src/audio_renderer.cpp @@ -67,6 +67,7 @@ size_t AudioRendererBitmapCacheBitmapFactory::GetBlockSize() const AudioRenderer::AudioRenderer() { + bitmaps.reserve(AudioStyle_MAX); for (int i = 0; i < AudioStyle_MAX; ++i) bitmaps.emplace_back(256, AudioRendererBitmapCacheBitmapFactory(this)); @@ -157,21 +158,20 @@ size_t AudioRenderer::NumBlocks(const int64_t samples) const return static_cast(duration / pixel_ms / cache_bitmap_width); } -const wxBitmap *AudioRenderer::GetCachedBitmap(const int i, const AudioRenderingStyle style) +wxBitmap const& AudioRenderer::GetCachedBitmap(const int i, const AudioRenderingStyle style) { assert(provider); assert(renderer); bool created = false; - wxBitmap *bmp = bitmaps[style].Get(i, &created); - assert(bmp); + auto& bmp = bitmaps[style].Get(i, &created); if (created) { - renderer->Render(*bmp, i*cache_bitmap_width, style); + renderer->Render(bmp, i*cache_bitmap_width, style); needs_age = true; } - assert(bmp->IsOk()); + assert(bmp.IsOk()); return bmp; } @@ -201,7 +201,7 @@ void AudioRenderer::Render(wxDC &dc, wxPoint origin, const int start, const int for (int i = firstbitmap; i <= lastbitmap; ++i) { - dc.DrawBitmap(*GetCachedBitmap(i, style), origin); + dc.DrawBitmap(GetCachedBitmap(i, style), origin); origin.x += cache_bitmap_width; } diff --git a/src/audio_renderer.h b/src/audio_renderer.h index 7bfeb2428..1d88be3cb 100644 --- a/src/audio_renderer.h +++ b/src/audio_renderer.h @@ -111,7 +111,7 @@ class AudioRenderer { /// /// Will attempt retrieving the requested bitmap from the cache, creating it /// if the cache doesn't have it. - const wxBitmap *GetCachedBitmap(int i, AudioRenderingStyle style); + wxBitmap const& GetCachedBitmap(int i, AudioRenderingStyle style); /// @brief Update the block count in the bitmap caches /// diff --git a/src/audio_renderer_spectrum.cpp b/src/audio_renderer_spectrum.cpp index 9d79feaa8..7884f1006 100644 --- a/src/audio_renderer_spectrum.cpp +++ b/src/audio_renderer_spectrum.cpp @@ -240,7 +240,7 @@ void AudioSpectrumRenderer::Render(wxBitmap &bmp, int start, AudioRenderingStyle { // Derived audio data size_t block_index = (size_t)(ax * pixel_ms * provider->GetSampleRate() / 1000) >> derivation_dist; - float *power = cache->Get(block_index); + float *power = &cache->Get(block_index); // Prepare bitmap writing unsigned char *px = imgdata + (imgheight-1) * stride + (ax - start) * 3; diff --git a/src/block_cache.h b/src/block_cache.h index 35ad0eedd..9fcaf42e7 100644 --- a/src/block_cache.h +++ b/src/block_cache.h @@ -109,6 +109,8 @@ public: SetBlockCount(block_count); } + DataBlockCache(DataBlockCache&&) = default; + DataBlockCache& operator=(DataBlockCache&&) = default; /// @brief Change the number of blocks in cache /// @param block_count New number of blocks to hold @@ -158,12 +160,12 @@ public: /// @return A pointer to the block in cache /// /// It is legal to pass 0 (null) for created, in this case nothing is returned in it. - BlockT *Get(size_t i, bool *created = nullptr) + BlockT& Get(size_t i, bool *created = nullptr) { size_t mbi = i >> MacroblockExponent; assert(mbi < data.size()); - MacroBlock &mb = data[mbi]; + auto &mb = data[mbi]; // Move this macroblock to the front of the age list if (mb.blocks.empty()) @@ -193,6 +195,6 @@ public: else if (created) *created = false; - return b; + return *b; } }; diff --git a/src/menu.cpp b/src/menu.cpp index 13e054baa..99edbcf7d 100644 --- a/src/menu.cpp +++ b/src/menu.cpp @@ -419,7 +419,7 @@ class AutomationMenu final : public wxMenu { WorkItem *FindOrMakeSubitem(std::string const &name) { auto sub = std::find_if(subitems.begin(), subitems.end(), [&](WorkItem const &item) { return item.displayname == name; }); if (sub != subitems.end()) return &*sub; - + subitems.emplace_back(name); return &subitems.back(); } @@ -529,8 +529,13 @@ namespace menu { } } +#ifdef __WXMAC__ menu->Bind(wxEVT_MENU_OPEN, &CommandManager::OnMenuOpen, &menu->cm); menu->Bind(wxEVT_MENU, &CommandManager::OnMenuClick, &menu->cm); +#else + window->Bind(wxEVT_MENU_OPEN, &CommandManager::OnMenuOpen, &menu->cm); + window->Bind(wxEVT_MENU, &CommandManager::OnMenuClick, &menu->cm); +#endif #ifdef __WXMAC__ bind_events(menu.get());