 |
|
|
04-07-2019, 12:32 PM
|
#42
|
Human being with feelings
Join Date: Jan 2014
Posts: 867
|
|
|
|
04-08-2019, 01:17 AM
|
#43
|
Human being with feelings
Join Date: Jul 2009
Posts: 3,714
|
Quote:
Originally Posted by Embass
|
It is very useful to have a "bag of tricks" for getting transparent windows and other interesting UI features!
|
|
|
04-08-2019, 02:00 AM
|
#44
|
Human being with feelings
Join Date: Jul 2009
Posts: 3,714
|
Good news! Alpha blending on Linux has been enabled in the newest version of REAPER!
(Somewhat unexpectedly, JS_Composite now seems to work better on Linux and macOS than on Windows.)
Also, v0.981 of the ReaScriptAPI extension has also been uploaded, with a few improvements in JS_Composite. For example, if the destination width or height is set to -1, the image will be stretched to fill the target window if the window is resized.
|
|
|
04-09-2019, 01:39 AM
|
#45
|
Human being with feelings
Join Date: Jun 2009
Location: Croatia
Posts: 3,556
|
edit...
Last edited by Sexan; 04-11-2019 at 01:59 PM.
|
|
|
04-11-2019, 10:42 AM
|
#46
|
Human being with feelings
Join Date: Jul 2009
Posts: 3,714
|
As mentioned above, I implemented the idea to intercept WM_PAINT, and it works perfectly on Linux and macOS.
Unfortunately, on WindowsOS, it still glitches. I therefore tried to get REAPER to draw into an offscreen memory bitmap instead of the screen, so that this bitmap and the script's LICE bitmap can be composited before blitting to the screen. WM_PAINT can optionally point to a memory bitmap in its WPARAM parameter, but code such as this didn't work, so I suspect that REAPER's windows ignore the WPARAM pointer:
Code:
RECT r{0,0,0,0};
GetClientRect(hwnd, &r);
HDC clientDC = GetDC(hwnd);
HDC memDC = CreateCompatibleDC(clientDC);
HBITMAP memBitmap = CreateCompatibleBitmap(clientDC, r.right, r.bottom);
SelectObject(memDC, memBitmap);
LRESULT result = SendMessage(hwnd, WM_PAINT, (WPARAM)memDC, lParam);
AlphaBlend LICE into memDC;
BitBlt(clientDC, 0, 0, r.right, r.bottom, memDC, 0, 0, SRCCOPY);
DeleteObject( memBitmap );
DeleteDC( memDC );
Changing WM_PAINT into WM_PRINT or WM_PRINTCLIENT didn't work either (or at least, not with the options that I tried).
|
|
|
04-30-2019, 10:00 PM
|
#47
|
Human being with feelings
Join Date: May 2008
Posts: 62
|
+1 good idea!
|
|
|
05-01-2019, 04:12 AM
|
#48
|
Human being with feelings
Join Date: Apr 2014
Posts: 4,150
|
+1 from me too! I've been experimenting a little with things placing progress bars in other script GUI's (eg - the script doing the work has no GUI) - but so far it's been a little flickery.
|
|
|
05-23-2019, 03:42 PM
|
#49
|
Human being with feelings
Join Date: Oct 2018
Posts: 39
|
+2 YES, I've been needing this for a while
|
|
|
07-29-2019, 10:27 AM
|
#50
|
Human being with feelings
Join Date: Jun 2017
Posts: 110
|
Bump would be cool
__________________
twitch.tv/suprshady trying to stream REAPER stuff.. more than twice a year
|
|
|
02-24-2020, 05:46 AM
|
#51
|
Human being with feelings
Join Date: Dec 2017
Posts: 279
|
Hi Julian! We still don`t know reason of a little glitching on windows?This is because AlphaBlend is slow?
May be some kind of double buffering help avoid this?
|
|
|
02-24-2020, 06:45 AM
|
#52
|
Human being with feelings
Join Date: Jul 2009
Posts: 3,714
|
Quote:
Originally Posted by nappies
May be some kind of double buffering help avoid this?
|
I did try to implement double buffering (post #48 above), but unfortunately couldn't get REAPER's windows to draw to the offscreen buffer.
|
|
|
02-24-2020, 12:50 PM
|
#54
|
Human being with feelings
Join Date: Jul 2009
Posts: 3,714
|
Quote:
Originally Posted by nappies
Ah, I realized this is it) And reason of windows blinking not clear?
If this because Alphablend slow ,I found custom AlphaBlend function using SSE instructions.
|
Do these functions perform blitting from one device context to another, similar to the Win32 AlphaBlend function, or do they perform alpha pre-multiplication on a bitmap?
In any case, it seems that recent versions of REAPER introduced a bug in the WDL/swell version of AlphaBlend, so that it doesn't work on new Macs that use Metal graphics. Until this bug is fixed, compositing isn't not usable cross-platform.
|
|
|
03-26-2023, 07:47 AM
|
#55
|
Human being with feelings
Join Date: Dec 2020
Posts: 15
|
Hi! Can you, please, tell me if the collection works in Reaper 6+?
Thank you
|
|
|
03-27-2023, 02:16 AM
|
#56
|
Human being with feelings
Join Date: May 2017
Location: Leipzig
Posts: 6,124
|
Quote:
Originally Posted by ilmel
Hi! Can you, please, tell me if the collection works in Reaper 6+?
Thank you
|
You mean the functions of the extension? They work on Reaper 6+
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 05:18 PM.
|