As the serial task queue doesn't autodelete. When the task was canceled while
running, this caused the serial task to be leaked.
Moreover, the TaksRunner wasn't traking these tasks explicitly, the serial task
may try to acces the TaskRunner after it was deleted.
Now we assing a task ID to serial tasks to track them as the regular ones.
Some tasks are not exectuted from the UI thread (QQuickImageResponse for
instance). This ensures that the target still exists when calling the callback
This method's hidden state is a micro optimisation since this method
only gets called when the collection view sizing actually changes. Yet
it makes accurately setting the adjustment more difficult. So let's
remove it
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
This module has a hard dependency on opengl32 since it was created in db93ff0602.
It uses:
* wglMakeCurrent
* glGetString
* wglCreateContext
* wglDeleteContext
* wglGetProcAddress
Per the comment in the header this is no longer needed once we stop
targetting 10.7; we are now targetting 10.10
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
From https://code.videolan.org/videolan/vlc/-/merge_requests/6750#note_470781
> the C standard doesn't guarantee that you can cast a function pointer into a
> void* it only guarantees you that you can cast a function pointer to another
> function pointer.
It requires an extension C17 N2176 J.5.7:
> A pointer to an object or to void may be cast to a pointer to a function,
> allowing data to be invoked as a function (6.5.4).
> A pointer to a function may be cast to a pointer to an object or to void,
> allowing a function to be inspected or modified (for example, by a debugger) (6.5.4)
The Direct3D9 code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
DXVAHD_CreateDevice is available since Windows 7 [^1].
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
[^1]: https://learn.microsoft.com/en-us/windows/win32/api/dxvahd/nf-dxvahd-dxvahd_createdevice
The Direct3D9 code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
DXVAHD_CreateDevice is available since Windows 7 [^1].
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
[^1]: https://learn.microsoft.com/en-us/windows/win32/api/dxvahd/nf-dxvahd-dxvahd_createdevice
The Direct3D9 code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
Direct3DCreate9Ex() is available since Vista [^1]:
> Direct3DCreate9Ex is supported only in Windows Vista, Windows Server 2008, and Windows 7. Earlier versions of the D3D9.dll library do not include Direct3D9Ex and Direct3DCreate9Ex.
We fallback to Direct3DCreate9() just in case it fails for maximum compatibility.
[^1]: https://learn.microsoft.com/en-us/windows/win32/api/d3d9/nf-d3d9-direct3dcreate9ex#remarks
The DXVA2 code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
The DXVA2 code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
The DMO code is enabled for non-UWP targets and all Windows targets
have this DLL (since Vista).
msdmo.dll with DMOEnum() is available in vanilla Windows 7.
If for some reason the DLL is not there, the plugin won't be loaded
and it will rightfully be skipped.
Functioning of double clicking list view delegate is broken due to "Error:
Insufficient arguments".
At the same time, `currentIndex` should be used instead of the first selected
item when view is requested.
It is not clear why such signal exists, it seems that it is
supposed to be a function instead.
Regardless, having such signal is not meaningful because there
is already `currentIndex` which is synchronized with the shown
artist. This synchronization is satisfied by the change handler.
The change handler already needs to adjust the artist id (for
synchronization), making `showArtist()` meaningless.
Currently clicking a delegate does not change the current index.
Views should change the current index when clicking on delegate.
It does not make sense to adjust selection within `resetFocus()`. This
causes the initial selection to be the first item while normally there
should not be a selection initially.
Here, Qt wants to create a layer because when source is `QQuickImage`,
`QGfxSourceProxy(ME)` checks its fill mode and source size.
In this case, we need to tell Qt that we don't need a layer here, as
we are doing the mapping as we want but Qt currently does not offer
a way to tell that and simply tries to decide itself: "If needed,
MultiEffect will internally generate a ShaderEffectSource as the
texture source"
Using the static texture for the blur source has also the advantage
of applying blur only once because the source would not get updated
constantly due to size change. With clipping, we can simply adjust
the viewport without needing to update the blur.
Unfortunately we can not do this with older Qt versions, because if
the source image changes fill mode from stretch or to stretch where
it is fed to a blur effect, the effect either causes crash (layering
needed to not needed, so Tile -> Stretch) or does not work (layering
not needed to needed, so Stretch -> Tile).