Thread: VirtualDub2
View Single Post
Old 14th May 2019, 01:05   #849  |  Link
shekh
Registered User
 
Join Date: Mar 2015
Posts: 775
Quote:
Originally Posted by stax76 View Post
I noticed main menu > File is very large, it might make sense to use some sub menus.
Agree, something needs to be moved or deleted.


Quote:
Originally Posted by stax76 View Post
The icon looks nice (how did you create it?) and everything scales very well using 288 DPI, I wonder how hard it is doing all this with plain win32, even with advanced layout controls I had many difficulties using WinForms to implement High DPI.

Avery Lee is known to be an excellent dev, did you have a good experience working with his code base?
You mean the main icon? This was long trial and error. When I was almost fine with general look I made it as vector painting in Photoshop, then rasterized it in some practical resolutions, fixed some shapes, experimented with colors. The final image is combination of multiple resolutions. Down to 48x was easy from vector source, the smaller the more hand correction was necessary, and finally 16x I painted pixel by pixel.

DPI works automatically with standard controls like dialog with fonts and buttons. But it is a lot of trouble when doing any custom graphics. The timeline toolbar (position control) had a lot of scaling issues, I changed big part of its code. Overall IMO working with plain win32 GUI is like assembly, it is very slow to code but the documentation is mostly perfect and it can work.
Bitmaps with system colors (like toolbar icons) that can scale:
https://github.com/shekh/VirtualDub2....cpp#L132-L161
And then of course I maintain the created bitmap and redo it again if any scaling or system color parameters change.
Not too bad thanks to LR_LOADMAP3DCOLORS flag, otherwise would require to decode down to pixels and remap colors. Few dozen more lines of code...
In better GUI systems all this is standard function which doesn't need any implementation at all (not sure how is WinForms).

Did I have a good experience working with the code base:
I had all kinds of experiences. In most part I feel comfortable. I still don't know how to treat library names. Ami, Asuka, Dita, Kasumi and so on. Are these his girls? (ok got it, most likely anime heroes) To me looks like nonsense1, nonsense2, ... I never remember which one I need.
I hate almost everything about coding style: use of white space especially tabs, hungarian notation, multi-line parameter lists...
I like that the project is easy to build (very few dependencies). I like parts which are very simple, e.g. direct use of win32 API etc.
__________________
VirtualDub2
shekh is offline   Reply With Quote