Giter Site home page Giter Site logo

Comments (203)

selastingeorge avatar selastingeorge commented on August 17, 2024 3

are you good at QT?

Not very bad at least. But not very professional as well.

create a desktop environment using qt qml

I don't quite understand what does it mean. Can you explain it more clearly?

i mean like a gnome or sway, i was working on a project for creating an os,i finished building up the kernel and i was trying to build the desktop for my os. i have searched and found that it can be done using qtwayland.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024 3

This is far more complicated, let's just check our windows 10 acrylic blur itself. if i find a solution to implement acrylic blur i will let you know.

thank you.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024 1

Well i ran into another problem, i was able to build the acrylic effect with best quality and no flicker.
Here is the video : https://youtu.be/_SV-s4Q4O1s
(in video it flickers because i was capturing using obs and i have less ram, but it doesn't flicker if obs is off)

but the problem is will not be able to draw anything into the window. whatever i draw in window will be overlapped by the blur resulting this :

sample

i know why does this happen but there is no way i could solve this.
Actually the acrylic i built is rendered by direct composition and direct composition always draws only at the top of the window.

And i reached another dead end.......

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024 1

@JulienMaille I'm currently working on a private repository to emulate the acrylic effect base on QtitanRibbon's solution. Once it's done, I'll let you know. It's not a simple copy-and-paste so I think there will not be license issues. It's heavily modified to meet my own needs.

PS. It's not perfect indeed, but at least it works, and works on Windows 7 ~ 10. But to get the best appearance, you should use it on Windows 10.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024 1

@JulienMaille @selastingeorge The Acrylic Effect has been added to the master branch. You can test it now. Feel free to open new issues if you find anything not correct. It currently only supports Windows 7~10. Support for Linux and macOS may be added later.

can you please post a link to the exe file of that example. i haven't installed QT

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Win7, Win8 and Win8.1 are not affected because only from Win10 1803 can the normal Win32 windows enable the Acrylic effect.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

The only workaround for this issue is switching back to use the classic blur instead of the Acrylic effect, however, unfortunately, they don't look exactly the same.

Or maybe you can solve this in a pure Qt way: draw the blurred background yourself, through QPainter or whatever.

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

Maybe @selastingeorge has some ideas? We could freeze the background when moving and disable transparency until it's released?

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

We could freeze the background when moving and disable transparency until it's released?

I don't have much knowledge about the Acrylic effect. It's a bit beyond my limit.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Ok no problem

@selastingeorge You know how to fix the laggy dragging?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

The only way to fix the laggy dragging in acrylic blur is to disable the transparency effect of windows 10 from the personalization settings

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

and that's a very bad move

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

i need to find a way to capture the visual behind a window and thats the only way to bring a perfectly working acrylic blur to win32 and wpf

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

and that's a very bad move

Very bad indeed.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

there is one last option, use DWM blur behind capture the hwnd using directx, use gaussian blur from DirectX and redraw it to window

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

and its a very difficult task

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Ah, so complex!

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

ya microsoft should fix this. have you tried xaml islands

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

we can use acrylic effect using xaml islands and it is not laggy but flickers a lot.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

have you tried xaml islands

I know about it but I don't know whether I can integrate it with Qt or not. I haven't tried it yet. But I think it's not hard to use it in normal Win32 applications, Microsoft's Terminal is a good example.

but flickers a lot.

It's not caused by the xaml island I'm afraid. Maybe it can be solved by your WM_NCCALCSIZE trick.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

no i tried it doesnt work

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

are you good at QT?
do you have any idea how to create a desktop environment using qt qml

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

no i tried it doesnt work

So sad.

I'm also wondering why the standard title bar doesn't flicker. It's drawn on the non-client area as what we do, but the title bar drawn by ourselves flicker a lot.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

are you good at QT?

Not very bad at least. But not very professional as well.

create a desktop environment using qt qml

I don't quite understand what does it mean. Can you explain it more clearly?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

ya windows keeps secrets. the won't let anyone to touch their source codes. if they would have published windows as opensource then windows 10 would be as better as linux.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

ya windows keeps secrets. the won't let anyone to touch their source codes. if they would have published windows as opensource then windows 10 would be as better as linux.

Ha ha, sounds sensible.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

but i don't know how to create a gridview in qml with multiple selection.
like this image, i need to select multiple items using the rectangle.
bar

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

i was working on a project for creating an os

Wow, that's awesome!

i was trying to build the desktop for my os

Have you ever heard about the Deepin Desktop Environment (aka DDE) ? It's written in C++/Qt and it's open source. Maybe it can help you. Building a desktop is far beyond my limit😂

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Or KDE? It's written in Qt as well.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

ya but not fully qml. anyway i will check it out

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

the Deepin Desktop Environment (aka DDE)

Sorry, I forgot to write the link: https://github.com/linuxdeepin

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

but not fully qml

I don't think it makes sense to build a desktop environment entirely with QML, as QML is not mature enough and until Qt 5.15 there were still quite a few bugs. If only a few components use QML, this is a good choice.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

if i find a solution to implement acrylic blur i will let you know.

Thanks!

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

The only way to fix the laggy dragging in acrylic blur is to disable the transparency effect of windows 10 from the personalization settings

Yes it fixed the laggy dragging indeed. But the resizing is also very laggy and can't be fixed in this way.

But I have an interesting finding: although I have turned off the transparency effect in the personalization settings, our own Acrylic effect is not affected by it -> it still has the transparency effect. But the dragging is not laggy anymore.

Could this be a breakthrough point?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

Ya it wont affect our acrylic effect. i noticed it before and that's why i mentioned it earlier

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Maybe there are some APIs (even undocumented APIs) to adjust this, just like SetWindowCompositionAttribute?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

yes there might be.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@selastingeorge See here for more detailed discussion. No solutions yet but at least why the window laggs is known.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

@wangwenx190, We have got a good lead, check out this
SetWindowDisplayAffinity

there is a new DWORD value added to this function called WDA_EXCLUDEFROMCAPTURE , this one help us to exclude a window from screen capture, which means we will be able to capture the visual behind window by just capturing the area where window is placed. now i'm currently working to integrate it.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@wangwenx190, We have got a good lead, check out this
SetWindowDisplayAffinity

there is a new DWORD value added to this function called WDA_EXCLUDEFROMCAPTURE , this one help us to exclude a window from screen capture, which means we will be able to capture the visual behind window by just capturing the area where window is placed. now i'm currently working to integrate it.

It’s introduced in win10 2004. Isn’t this too new?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

ya but that's the only hope

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

well i ran into a new problem. it is really tough to understand the dxgi desktop duplication code. it captures the entire desktop. i need to get only the part where my window is placed

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

ya but that's the only hope

You are right. Let’s fix the issue first.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

well i ran into a new problem. it is really tough to understand the dxgi desktop duplication code. it captures the entire desktop. i need to get only the part where my window is placed

https://github.com/robmikh/Win32CaptureSample

https://github.com/robmikh/CaptureGifEncoder

https://github.com/robmikh/SimpleRecorder

They show how to use dxgi to capture windows.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

all of these uses winrt and it's well complicated than desktop duplication

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

any way i'm posting a question in stack overflow i think some one will help us.

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

I just tried today on my latest insider build and moving isn't laggy anymore. I have not tried for a while on that computer so I can't tell exactly when it was fixed.
image

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@JulienMaille @selastingeorge Great news! Thanks for telling me about this!

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

the gif doesn't show it so well, but it's smooth
test2

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

Ya i have seen some post stating the same thing that the acrylic blur is working in insider builds. But they haven't yet rolled it into production.

would be nice to know if we can ship a specific dll in the meantime, or if its a much deeper system fix

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

the gif doesn't show it so well, but it's smooth
test2

Thanks! Looks awesome!

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

we can ship a specific dll in the meantime

I think it's dangerous. Better to wait for the official fix.

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

we can ship a specific dll in the meantime

I think it's dangerous. Better to wait for the official fix.

Can you share the links where you've seen other people stating latest insider build has the fix?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

@wangwenx190 bad news: resizing is still laggy!

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@wangwenx190 bad news: resizing is still laggy!

Previously we can work-around the laggy dragging by disabling the transparent effect, but the resizing is still laggy. So I'm not surprised.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

I think the only current way or the better way is to use the xaml islands

@selastingeorge Yes, it is. The best way to use the Acrylic brush in Win32 applications is to use the xaml islands, and that's what Microsoft recommended. There's no laggy dragging and resizing issue when using xaml islands. But for this repo, we are using Qt, and it's rather hard to integrate Qt with xaml islands.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

@wangwenx190 did u get flickering while resizing the window on window 10 19042. when i alter the WM_NCCALCSIZE. it flickers one or two times. so i come up with a new way by altering the hbrush of the window class. its perfect and does not flicker at all.
In the 1903 build the dwmExtendFrame... creates a 8px margin around window while maximizing. you can fix this issue also by altering the hbrush of window in createwindowex

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

i'm doing this in wpf. i was not able to alter the window class in wpf but i altered it by using the setWindowCompositionAttribute(). its undocumented but altering some values bring better options like if we set AccentState to 6 we get a completely transparent window. and a very good news is that from 19042 the acrylic blur is not flickering from this sample:

https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/tree/master/dotnet/WPF/AcrylicEffect

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@wangwenx190 did u get flickering while resizing the window on window 10 19042. when i alter the WM_NCCALCSIZE. it flickers one or two times. so i come up with a new way by altering the hbrush of the window class. its perfect and does not flicker at all.
In the 1903 build the dwmExtendFrame... creates a 8px margin around window while maximizing. you can fix this issue also by altering the hbrush of window in createwindowex

Thanks for telling me this. Your solution may work well for normal windows, however, things are a lot different in Qt. Qt has taken over the responsibility of painting windows. Adjust the brush may not help.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

i'm doing this in wpf. i was not able to alter the window class in wpf but i altered it by using the setWindowCompositionAttribute(). its undocumented but altering some values bring better options like if we set AccentState to 6 we get a completely transparent window. and a very good news is that from 19042 the acrylic blur is not flickering from this sample:

https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/tree/master/dotnet/WPF/AcrylicEffect

That’s a good news indeed! Thanks for telling me this!

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

@wangwenx190 did u get flickering while resizing the window on window 10 19042. when i alter the WM_NCCALCSIZE. it flickers one or two times. so i come up with a new way by altering the hbrush of the window class. its perfect and does not flicker at all.
In the 1903 build the dwmExtendFrame... creates a 8px margin around window while maximizing. you can fix this issue also by altering the hbrush of window in createwindowex

Thanks for telling me this. Your solution may work well for normal windows, however, things are a lot different in Qt. Qt has taken over the responsibility of painting windows. Adjust the brush may not help.

Have you tried using WS_EX_NOREDIRECTIONBITMAP in window style. In win32 it removes the content which is drawn using WM_PAINT, but since wpf uses directx we get a fully transparent window with system borders and shadow (it's the perfect window) and is used by UWP Apps. (i inspected using spy++). May be Qt can also do the same thing.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@wangwenx190 did u get flickering while resizing the window on window 10 19042. when i alter the WM_NCCALCSIZE. it flickers one or two times. so i come up with a new way by altering the hbrush of the window class. its perfect and does not flicker at all.
In the 1903 build the dwmExtendFrame... creates a 8px margin around window while maximizing. you can fix this issue also by altering the hbrush of window in createwindowex

Thanks for telling me this. Your solution may work well for normal windows, however, things are a lot different in Qt. Qt has taken over the responsibility of painting windows. Adjust the brush may not help.

Have you tried using WS_EX_NOREDIRECTIONBITMAP in window style. In win32 it removes the content which is drawn using WM_PAINT, but since wpf uses directx we get a fully transparent window with system borders and shadow (it's the perfect window) and is used by UWP Apps. (i inspected using spy++). May be Qt can also do the same thing.

Yes I've tried that style once, but it doesn't work for Qt. I still got a normal window, nothing changed. But it does work as expected in pure Win32 projects. I tested it in a normal Win32 window and it become totally transparent indeed. I guess Qt doesn't paint in WM_PAINT.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

like this :
private enum AccentState
{
ACCENT_DISABLED = 0,
ACCENT_ENABLE_GRADIENT = 1,
ACCENT_ENABLE_TRANSPARENTGRADIENT = 2,
ACCENT_ENABLE_BLURBEHIND = 3,
ACCENT_ENABLE_ACRYLICBLURBEHIND = 4,
ACCENT_INVALID_STATE = 5,
ACCENT_DISABLE_REDIRECTIONBITMAP=6
}

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

The WS_EX_NOREDIRECTIONBITMAP can only be used with CreateWindowEx(). it won't work while using the SetWindowLong()

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

Quick update, with latest insider build, moving is still ok while resizing is laggy.
The lag when resizing is growing the longer you keep dragging. It really feels like repaint are buffered and processed slower than they are generated. Is there anything that could be done to repaint at a slower rate?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

I'm not sure whether there's an appropriate workaround or not.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

I prefer waiting for Microsoft to fix the bug officially, although it may be a very long time (and it already is). There are no good workarounds currently in my point of view.

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

anything interesting in this PR?
https://github.com/qt/qtbase/pull/44/files

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

anything interesting in this PR?
https://github.com/qt/qtbase/pull/44/files

Not quite sure.

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

Monthly update: got insider build 21292.1000 and resizing is still laggy

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Monthly update: got insider build 21292.1000 and resizing is still laggy

@JulienMaille Thanks for your information!

They are not going to fix this issue any sooner, because there is already a
work around using xaml islands. Like microsoft terminal does

@selastingeorge Maybe you are right, but at least the moving is not laggy any more.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

I am working on new acrylic blur effect which is not laggy check this out: https://youtu.be/V-G8s-ol6p4

@selastingeorge It looks quite impressive! How do you achieve that? Is it pure C++ or based on WPF/.NET?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

yes its completely working on c++ but i can port it to WPF, it uses direct composition and uses desktop wallpaper as blur input(instead of Host backdrop), later I am going to get the host backdrop using desktop duplication with WDA_EXCLUDEFROMCAPTURE.

Still it's not perfect it in the video above the window is moved along with cursor but if I try dragging the window the blur will start to flicker like this https://youtu.be/bAKCRQdNLjc and that's weird. it is something related to some mathematical calculation I don't know where is the mistake. i have spend a lot of time in it and still no result. now I'm still working on it.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

yes its completely working on c++ but i can port it to WPF, it uses direct composition and uses desktop wallpaper as blur input(instead of Host backdrop), later I am going to get the host backdrop using desktop duplication with WDA_EXCLUDEFROMCAPTURE.

Still it's not perfect it in the video above the window is moved along with cursor but if I try dragging the window the blur will start to flicker like this https://youtu.be/bAKCRQdNLjc and that's weird. it is something related to some mathematical calculation I don't know where is the mistake. i have spend a lot of time in it and still no result. now I'm still working on it.

@selastingeorge Thanks for your impressive work! I'm looking forward to your final solution! May I ask will it be open source?

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

yes of course it will be opensource. I know how hard is to find something like this in internet. I will share the complete source code once it is ready.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

but i need more time to fix these issues. till then everyone can use this https://github.com/Microsoft/Windows.UI.Composition-Win32-Samples/tree/master/dotnet/WPF/AcrylicEffect

this one is not laggy anymore.its working fine in my system, i dont have a c++ version of it but i would like to build it

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

but i need more time to fix these issues. till then everyone can use this https://github.com/Microsoft/Windows.UI.Composition-Win32-Samples/tree/master/dotnet/WPF/AcrylicEffect

this one is not laggy anymore.its working fine in my system, i dont have a c++ version of it but i would like to build it

I'm afriad of it's using some WPF specific technique to avoid laggy. I would like to help you but sadly I'm not able to convert it to C++.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Monthly update: got insider build 21292.1000 and resizing is still laggy

@JulienMaille I think we should not count on this undocumented function anymore. Even if Microsoft fixed it some day in the future, it will require a very recent version of Windows 10, which I think is not acceptable. And it's undocumented API after all, it may become unstable or even totally unusable in the future. I think the best solution is to simulate the Acrylic effect ourself. Let's wait for @selastingeorge 's great work.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

Here is the executable : https://firebasestorage.googleapis.com/v0/b/quizbox-f1bb1.appspot.com/o/Debug.zip?alt=media&token=c34323a4-82d0-4064-b74a-d467bef16a6c

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Here is the executable : https://firebasestorage.googleapis.com/v0/b/quizbox-f1bb1.appspot.com/o/Debug.zip?alt=media&token=c34323a4-82d0-4064-b74a-d467bef16a6c

It's really impressive! But I don't understand why you can't draw anything on that window. Isn't it an official demo provided by Microsoft? If it has such a severe issue, it would have been fixed by MS already.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

I have edited their samples and tried out but no luck. The direct composition always draw on top of the window like the dwm thumbnail does. In uwp they have been drawing everything in window using direct composition so there is no issue. In the case of wpf no luck.

Oh, that's too bad!

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@JulienMaille @selastingeorge I have bought QtitanRibbon's source code from Developer Machines, and they are achieveing this by acquiring the wallpaper and blurring it, the appearance is not very bad but I think the performance will not be good, and honestly, the appearance is not very good as well. And it has some issues when running on Windows 7. According to the license I can't show you the source code, but it's not much code, they are using Qt Graphic Effect to do this.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

In normal win32 I have done this using direct composition and dwmflush() function. It was working well but the problem was windows airspace issue when I use it in another places such as wpf , I won't be able to draw anything on top of the window. Every content is drawn under the window

Yes I know, you have told me about this.

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

@JulienMaille @selastingeorge I have bought QtitanRibbon's source code from Developer Machines

That's what I call dedication! Too bad it wasn't worth it. Are you still working on an official Qt patch of this repository?

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Too bad it wasn't worth it.

It was not too bad actually. Although their home made acrylic effect is not perfect, I still learned a lot from their source code.

Are you still working on an official Qt patch of this repository?

Yes but the situation now is a bit awkward. In the very beginning, I was trying to introduce a totally new feature called "WindowChrome", I was just adding new stuff to Qt, not modifying any of its original code. It mostly works on Windows because I'm not professional on Linux and macOS. But after some discussions with Qt engineers, I decided to simplify the patch. The reason why we have to write so many code on Windows is we can't use the "Qt::FramelessWindowHint" flag provided by Qt. I tried that flag on Linux KDE and it works fine, the frame shadow is still there, and the animations of windows when they are maximizing or minimizing are preserved as well. So I guess it's a Windows-only issue. The patch now only modified QPA's source code to let Qt::FramelessWindowHint works like other platforms. The code is quite simple, but some unit tests failed so it can't be merged. However I'm not familiar with Qt's unit tests, so the process stuck there.

The patch for Qt: https://codereview.qt-project.org/c/qt/qtbase/+/325649

from framelesshelper.

JulienMaille avatar JulienMaille commented on August 17, 2024

Thanks, yes I'd be happy to see how you can emulate it!

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

Thanks, yes I'd be happy to see how you can emulate it!

Good news: making good progress. Bad news: maybe lack support for Linux.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

@JulienMaille @selastingeorge The Acrylic Effect has been added to the master branch. You can test it now. Feel free to open new issues if you find anything not correct. It currently only supports Windows 7~10. Support for Linux and macOS may be added later.

from framelesshelper.

wangwenx190 avatar wangwenx190 commented on August 17, 2024

can you please post a link to the exe file of that example. i haven't installed QT

@selastingeorge No problem. But how can I send it to you? I have no access to any Google-related services.

from framelesshelper.

selastingeorge avatar selastingeorge commented on August 17, 2024

just upload it to any links such as onedrive,dropbox,mediafire any one of them or anyplace where i could download the file

from framelesshelper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.