COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 04-23-2016, 02:16 PM   #1
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default Better_GUI_Resizing -> Need Testers!

V1.21

Hi guys, I am working on a WDL framework to improve GUI resizing. Currently I am working on my WDL fork which is basically WDL-OL + better GUI resizing.

For now look at Better_GUI_Resize branch.

There are a still some things to implement but you can test it now. I am interested in any feature requests, or discussion.

For test build: IPlugExamples/IPlugBetterGUIResize.

NOTE:
- It tries to be as simple as possible for plugin development.
- GUI scaling is automatic.
- There are 3 different types of resizing. See IPlugGUIResize.h
- It works with BITMAPS!
- GUI scale will be shared for all plugin instances.
- Window size will be stored in presets

Current test project uses bitmap oversample mode that will make bitmaps clearer when you scale up.



Original post --------------------------------------------------------------------------------------------
Hi guys,
here is alpha version of better gui resizing. It is still missing a lot of features, but these will be added in the next updates. For now I am interested how does it performs, is resizing too slow? If resizing is really slow than I could insert the code that will disable rescalling bitmaps while resizing and only rescale it when you finish resizing, but disadvantage will be that while resizing you will have black screen, or I could capture GUI at mouse down and rescale that bitmap while resizing, but this will show incorrect text size as text size is specified in ints so it will not scale smoothly. Please report any bug that you spot. I am aware of animated window resizing for AU and I still don't know how to turn it off.

Please test some of your projects that doesn't have vector graphics. Vector graphics support will come soon. For this to work you will need to add some sources to the mac targets.
Look at the picture: https://drive.google.com/file/d/0B1l...ew?usp=sharing


As you can see in IPlugBetterGUIResize example, the only thing you need to change is to load bitmap pointers instead of bitmaps, and to include on gui resize code.


I wish you happy resizing, and don't forget to comment!


Download branch here:
https://github.com/Youlean/WDL-Youle...ter_GUI_Resize


BUGS SO FAR:
Code:
1. Animated scrolling for AU.
2. Laggy resizing on windows.
CHANGELOG:
Code:
V1.21
IPlugControls is now updated to support scaling

V1.20
-Added size limits
-Added resizing by draging sides
-Code is now readable

V1.10
-Added so much things. I can't write it all here.
-Most important is that views and window resizing are now implemented.

V1.01
-Added bitmap oversample. Now you can use bitmaps
 with higher resolution to have better look when you 
resize up.
-Added fast bitmap resizing.

Last edited by Youlean; 06-01-2016 at 04:18 PM.
Youlean is offline   Reply With Quote
Old 04-25-2016, 12:20 PM   #2
Andi!
Human being with feelings
 
Andi!'s Avatar
 
Join Date: Nov 2015
Location: Germany
Posts: 82
Default

Great work. It's nice to see such an enhancement in the framework. I wonder if it is really a wanted behaviour that the knobs are also resized. So the knobs are getting really small with small window sizes. Better for me would be that knob sizes don't change but some of them are hidden/shown dynamically.

Thumbs up for your work!
Andi! is offline   Reply With Quote
Old 04-25-2016, 04:15 PM   #3
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Andi! View Post
Great work. It's nice to see such an enhancement in the framework. I wonder if it is really a wanted behaviour that the knobs are also resized. So the knobs are getting really small with small window sizes. Better for me would be that knob sizes don't change but some of them are hidden/shown dynamically.

Thumbs up for your work!
Thanks! I am really glad that someone commented on this thread. I was getting feeling that no one cares and that is really demotivating, as I have spent 3 weeks working on this...

The plan is to have GUI that can automatically scale to any size for monitors with high resolution, and to have window that can be resized for many plugin views, for example mini view, normal, advanced etc. (This is what you want)

These features will come in the future (if someone cares...)
Youlean is offline   Reply With Quote
Old 04-25-2016, 04:31 PM   #4
Tronic
Human being with feelings
 
Tronic's Avatar
 
Join Date: Jan 2012
Posts: 104
Default

I care it....
not comment here, but now you have 99 forks in github
Tronic is offline   Reply With Quote
Old 04-25-2016, 04:40 PM   #5
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Tronic View Post
I care it....
not comment here, but now you have 99 forks in github
Thanks! No, these forks are from WDL-OL.
Youlean is offline   Reply With Quote
Old 04-25-2016, 08:22 PM   #6
Andi!
Human being with feelings
 
Andi!'s Avatar
 
Join Date: Nov 2015
Location: Germany
Posts: 82
Default

More important than the forks is that you are contributing something to the community here, and that's great.
Is it possible that you provide the compiled plug-ins of your example for win/mac to make testing easier? And would be great to have some text elements with different sizes and maybe a fader/switch in your example.
Andi! is offline   Reply With Quote
Old 04-26-2016, 12:54 AM   #7
stw
Human being with feelings
 
stw's Avatar
 
Join Date: Apr 2012
Posts: 279
Default

Quote:
Originally Posted by Youlean View Post
These features will come in the future (if someone cares...)
I definitely care too!! ;-)
Just not enough time to drive any serious testing right now, sorry...
stw is offline   Reply With Quote
Old 04-26-2016, 02:01 AM   #8
jack461
Human being with feelings
 
jack461's Avatar
 
Join Date: Nov 2013
Location: France
Posts: 181
Default Two sized plugin...

Hi Youlean!

You are doing a great work, and I wonder if I should use it.

I am working [on Mac, OS X 10.9, Xcode 6.2] on a plugin which includes a graphical code editor, with a kind of whiteboard for designing algorithm. In "run" mode, the plugin has a small footprint, but in "edit" mode, I resize its window to show the whiteboard, and I use the IGraphics::Resize method for that.

While this is working to the perfection (well, most of the time), I have two problems :
- the IGraphics::Resize method deletes all controls with: mControls.Empty(true); while there is probably a good reason for that, which I don't yet fully understand, it is really a pain in the neck to manage the state of my 600 controls or so...
- the size of the plugin is fixed in the two modes (810 by 326 pixels, and 1282 by 910) which may not be convenient for all users.

Finally, I do not use bitmaps, but all controls are drawn with basic primitives such as DrawHorizontalLine, DrawVerticalLine, FillIRect, DrawArc, DrawCircle, FillCircle, FillRoundRect, DrawIText, etc.

As I understand, your approach does not imply that the controls are deleted, as with IGraphics::Resize. On the other hand, it does little in helping with my run/edit problem, since it doesn't change the layout of the plugin.

All in all, it seems that I would have a lot of code rewriting. What is your point of view ? Do you suggest that I have a deeper look to your code, or do you think it doesn't address my problem ?

Anyway, in a future design, I certainly will try to use it, since it looks like a very good approach and provides nice features.

Jack.
jack461 is offline   Reply With Quote
Old 04-26-2016, 02:36 AM   #9
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by jack461 View Post
Hi Youlean!

You are doing a great work, and I wonder if I should use it.

I am working [on Mac, OS X 10.9, Xcode 6.2] on a plugin which includes a graphical code editor, with a kind of whiteboard for designing algorithm. In "run" mode, the plugin has a small footprint, but in "edit" mode, I resize its window to show the whiteboard, and I use the IGraphics::Resize method for that.

While this is working to the perfection (well, most of the time), I have two problems :
- the IGraphics::Resize method deletes all controls with: mControls.Empty(true); while there is probably a good reason for that, which I don't yet fully understand, it is really a pain in the neck to manage the state of my 600 controls or so...
- the size of the plugin is fixed in the two modes (810 by 326 pixels, and 1282 by 910) which may not be convenient for all users.

Finally, I do not use bitmaps, but all controls are drawn with basic primitives such as DrawHorizontalLine, DrawVerticalLine, FillIRect, DrawArc, DrawCircle, FillCircle, FillRoundRect, DrawIText, etc.

As I understand, your approach does not imply that the controls are deleted, as with IGraphics::Resize. On the other hand, it does little in helping with my run/edit problem, since it doesn't change the layout of the plugin.

All in all, it seems that I would have a lot of code rewriting. What is your point of view ? Do you suggest that I have a deeper look to your code, or do you think it doesn't address my problem ?

Anyway, in a future design, I certainly will try to use it, since it looks like a very good approach and provides nice features.

Jack.
Thanks! Don't use it for now in your projects that you are going to release to the public, because the this is still in alpha phase.
Don't bother too much about my code for now, many more features are comming, so stay tuned.

Don't worry about your project, this will be covered in one of the next updates.
Youlean is offline   Reply With Quote
Old 04-26-2016, 03:45 AM   #10
Antonio the carver
Human being with feelings
 
Join Date: Apr 2014
Posts: 42
Default

We care a lot! This is something I have wanted to do myself for a long time, and I really think your work seems great!

I will take it for a spin when I have time, of that you can be sure

Thank you!
Antonio the carver is offline   Reply With Quote
Old 04-28-2016, 07:38 AM   #11
Youlean
Human being with feelings
 
Youlean's Avatar
 
Join Date: May 2015
Location: Serbia
Posts: 654
Default

Quote:
Originally Posted by Andi! View Post
More important than the forks is that you are contributing something to the community here, and that's great.
Is it possible that you provide the compiled plug-ins of your example for win/mac to make testing easier? And would be great to have some text elements with different sizes and maybe a fader/switch in your example.
I will add more elements soon. As for testing I think that it is better to build it your self and explore options that this branch will have. Currently I am mainly interested does this work on AAX because I can not test this...
Youlean is offline   Reply With Quote
Old 03-11-2017, 07:05 AM   #12
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,107
Default

Quote:
Originally Posted by Youlean View Post
Thanks! I am really glad that someone commented on this thread. I was getting feeling that no one cares and that is really demotivating, as I have spent 3 weeks working on this...
I do care and I'm currently checking it out.
Thank you for making this !

(Can't give any useful feedback yet, except building your BetterGUIREsize example worked fine, but this will probably come when I'm a little more 'into it'.)
nofish is offline   Reply With Quote
Old 03-11-2017, 09:19 AM   #13
snooks
Banned
 
Join Date: Sep 2015
Posts: 1,650
Default

I'm looking forward to v1.0 too. I'll test some stuff out when it lands!
snooks is offline   Reply With Quote
Old 03-11-2017, 02:54 PM   #14
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,107
Default

So, as a first little test/learning project I thought I do a resizeable virtual MIDI keyboard.

The background rescales fine, nice.

https://i.imgur.com/NEeRV55.gif

but when I attach a IKeyboardControl, the keys rescale but they don't follow position.

https://i.imgur.com/bpycRFJ.gif

I'd guess this is currently not implemented/supported or is it me doing something wrong ?

For the keys I did:

Code:
IBitmap *p_whitekey = pGraphics->LoadPointerToBitmap(WHITEKEY_ID, WHITEKEY_FN, 6);
IBitmap *p_blackkey = pGraphics->LoadPointerToBitmap(BLACKKEY_ID, BLACKKEY_FN);

int keyCoordinates[12] = { 0, 14, 24, 40, 48, 72, 86, 96, 112, 120, 138, 144 }; 
mVirtualKeyboard = new IKeyboardControl(this, kKeybX, kKeybY, virtualKeyboardMinimumNoteNumber, /* octaves: */ 5, p_whitekey, p_blackkey, keyCoordinates);
keyboardInt = pGraphics->AttachControl(mVirtualKeyboard);

Last edited by nofish; 03-11-2017 at 03:06 PM.
nofish is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 12:48 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.