Remove the dependency to vout_GetPicture by creating an internal picture
pool inside the visualization module. For now the number of picture is
arbitrary, since nothing in the design allows passing the number of
required additional pictures, but it's no different than before.
Remove the dependency to vout_GetPicture by creating an internal picture
pool inside the visualization module. For now the number of picture is
arbitrary, since nothing in the design allows passing the number of
required additional pictures, but it's no different than before.
This fixes errors like these:
libprojectM/projectM.hpp:303:8: error: no template named 'auto_ptr' in namespace 'std'
std::auto_ptr<Preset> m_activePreset;
~~~~~^
The std::auto_ptr type was deprecated in C++11 and removed in C++17.
The VLC C++ headers use C++11 features, so the only working
alternatives here are C++11 or C++14.
It is not used in POSIX systems. On other system it probably don't make a
difference anymore, only Windows has actual useful values for
VLC_THREAD_PRIORITY_XXX. The synchronization is more important than having some
threads called more often than others.
There is no need to disable and enable the context between each
rendering. Since we own both the context and the thread, we can just
keep it as current until the thread is closed, simplifying the already
missing error handling.
Use the symbols from the vlc_gl_t instance for OpenGL instead of linking
the platform OpenGL library.
This effectively decouples the glspectrum visualization from the
underlying OpenGL implementation, allowing alternative OpenGL
implementation or function wrapper to be used with it, and simplifying
the linkage of the plugin on every platforms.
Thanks to this decoupling, it's now possible to use the visualization
through OpenGL video callbacks in VLC.
Fixes#22520
see e967f81f6a.
note, this does **not** affect cat-based module selection items
(of which there are just three in use by the core), since that
mechanism uses subcats not cats.
"flat" is not in the choice list and is meaningless to the module, not
matching any of its known presets. it is thus equivalent to a default of
"none". (see `window_get_param()` in `modules/visualization/visual/window.c`
which describes this as falling back to "using rectangular window (i.e. no
window)").
it is a reasonable assumption that the author meant the default to be the
`"flattop"` choice, and just made a mistake here, however this is not
certain and the preference expressed in review was to preserve the existing
behaviour by switching to "none".
The config "advanced" flag was unused and has been removed by
6a7a137f7b.
It has been removed from many add_*() macros, but not all. Remove it
from the remaining macros.
where identical to shorttext, or near enough.
bad because:
- wastes resources.
- useless tooltips in prefs GUI (poor UX) - tooltip longtext should add
something of value.
- useless repetition of text in certain help output.
in some cases they differed only in full-stop, creating unnecessary extra
burden on translators.
Generate a simple operations structure for filters generating their own filter
callback via VIDEO_FILTER_WRAPPER().
The filter chain sets a mouse handler on video filters that don't have one,
just as before, by using a local version of the ops structure of the filter and
adding the local mouse callback.
Co-authored-by: Steve Lhomme <robux4@ycbcr.xyz>