DxWnd v2.04.50 has, as usual, some new features and fixes and also some unfinished business inside, not to mention the possibility of new bugs to fix.
But this time there's also a major GUI twist, a iconized listwiew style that resembles the one of D3DWindower (let's be honest, my is a little nicer, isn't it?) with a program's icon auto-extraction and serialization on the configuration and exported files. That means that no matter what you do with your executables, even if you don't have the program or you just deleted it, its icon will stay.
I hope you will like it, but if you prefer the old, simpler and clearer style (the icon view eliminates the colored bullet that is telling the program category) just head to View->List->Detail menu command and the old GUI style is back again.
P.s. Icon mode is the new default, but the chosed style is saved in the DxWnd configuration, so whatever you select will stay until you change it or the configuration is deleted.
It's not really a bug, let's call it a "known problem" ...
The matter is when DxWnd imports a game icon it shows a nice 32bit colored icon, but when it saves it to the config file the image is 256 colors only (maybe even less: if you count them you never see more than 16!). This depends on the particular saving schema (a source code that I duly copied from a web example), there is an alternative way to make that operation preserving 32bit colors, but it has two problems:
1) generates a hex string 4 times longer
2) it doesn't work
So, my plan is to try to fix the new schema, but I'm unsure some better colored icons are worth such a bigger (and maybe slower) processing.
Next releases, anyway.
Last edit: gho 2017-10-26
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2017-10-26
Last edit: Anonymous 2018-10-20
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
One trick could be to have Dxwnd use the saved 16 color icon pictures only when the executable is not found. In other cases use the high color icon directly from the executable. This way the user could tell at a glance which games are present and which are missing or have incorrect path.
Of course some executables only have a 16 color icon. But in general this would provide a similar function to the detailed views green and gray indicators.
edit:
Additionally or alternatively the icon text could also be grayed out when the executable is not found.
Last edit: Riitaoja 2017-10-26
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I agree. But using an ico extracted on the fly from the executable could bring delays (it could be repeated up to 256 times!), I should measure some performances. In addition, this solution would erase any custom icon you may select (this is not such a trifling thing: some games may have no icon on the game executable and a better icon somewhere else).
I was also thinking to a setup option to save icons with 4, 8, 16, 32 bit color depth.
But before anything else I must learn how to extract and reproduce decent icons: the task seems much more difficult than expected!
About status encoded in the text color or style (bold vs. italic vs. underlined) or text background, the problem here is that MFC component has no capability for doing that, I should find some working (and possibly open-source) listbox extended class.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
New icon GUI is simply great. Something in DxWnd's look was missing for me but I didn't know what. Now I know.
But I keep ini file clean from "iconX" entries to have full color icons for games with exe's path configured correctly. Each time 'dxwnd.ini' is saved icon entries apear again, but this is not a problem for already configured games. I think storing simplified icon is ok for not present games, but full color for active ones is a must and it looks very good.
The problem is still here for 16 color icons, to distinguish active and disabled game configs.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wow! I missed the opportunity to give an answer to you both arqarq and Riitaoja for only 25 seconds!!!
See my previous post and concerns. In any case, I'm well aware that the thing isn't finished here. When I'll learn how to manage icons a little better, hopefully some new functionalities (like a "select icon" command) and some additional setup flags should keep everyone happy!
Last edit: gho 2017-10-27
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Try this new GUI, it behaves quite better, and seems fast enough though there's some optimization work to be done. But, please, don't look inside dxwnd.ini!!!!
It's ok, but you can just put icon storage in another amorphous type indexed file like 'dxwnd_icon.db' or something like that. For now it is some brute force approach for storing binary in text ini. But for me it's also not a problem with bigger ini.
It also would make refreshing icons storage simple - by just deleting .db file. Something like known 'thumbs.db' file in XP or 'IconCache.db' in Win7.
For non active game profiles I suggest greying them out somehow.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2017-10-28
Last edit: Anonymous 2018-10-20
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Experimental release: go to "Global Settings" and chose 32 bit icons if you like them better. Default is 16 colors only. The nice thing is that 16 color icons and 32 bit icons can happily coexist in the same dxwnd.ini file. While you make up your minds, I'm trying to gray out programmatically an existing icon....
Making the icons grayed is possible, on 16 color icons you just have to replace with 0x77 every not NULL byte in the icon's bitmap data. But the result is not so exciting, I think I'll pass this one.
Making the icons grayed is possible, on 16 color icons you just have to replace with 0x77 every not NULL byte in the icon's bitmap data. But the result is not so exciting, I think I'll pass this one.
Maybe the grayed out icons do not look visually appealing but they are functional and definitely show which games can not find the executable.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here it is, grayed if target not found.
Only problem, the grayed icon is currently "static": if you change the path field or remove the target, nothing changes until DxWnd is started again. But I think it could be enough ...
I start to agree, but when you start something, sadly you have to finish it, or dismantle everything.
This in attach could be the last release (excluding bug fixes), equipped with:
option for 4 or 32 bit icons
option for grayed icons for unreacheable paths
pretty dynamic gray color (if you update the path, now the icon reflects the current status)
fully grayed icon (previous version was leaving color trails ...)
grayed icon also for programs with no icon resources
The nice thing is that if you don't like this all, it is sufficient to leave the View->List mode to "Detail" and you can forget all the rest!
However what have you done with v2.04.50 in general? It seems that V-Rally 3 is no longer starting. It worked with all prior versions including v2.04.49.
Now I just get a 640x480 black window and Dxwnd freezes. I then need to close vrally3.exe using the task manager to regain control. Log is not showing anything useful.
Looking at the release notes, I'd say just few but important changes, though nothing that (in theory) could affect a 3D game like V-Rally 3.
The only sensible area could be the surface stack, a delicate thing that after the intervention should be much more robust, but you never know. Then, there's the possibility of some bug.
I'd better double check and test the game.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Uhm... in the new surface stack there's a smaller limit to the numbero of surfaces per type. If V-Rally 3 uses many surfaces of the same type, that could be a problem.
Now I don't have the game ready available, could you make a quick try with this experimental version that has the limits simply enlarged to the previous figures?
DxWnd v2.04.50 has, as usual, some new features and fixes and also some unfinished business inside, not to mention the possibility of new bugs to fix.
But this time there's also a major GUI twist, a iconized listwiew style that resembles the one of D3DWindower (let's be honest, my is a little nicer, isn't it?) with a program's icon auto-extraction and serialization on the configuration and exported files. That means that no matter what you do with your executables, even if you don't have the program or you just deleted it, its icon will stay.
I hope you will like it, but if you prefer the old, simpler and clearer style (the icon view eliminates the colored bullet that is telling the program category) just head to View->List->Detail menu command and the old GUI style is back again.
P.s. Icon mode is the new default, but the chosed style is saved in the DxWnd configuration, so whatever you select will stay until you change it or the configuration is deleted.
Last edit: gho 2017-10-25
Last edit: Anonymous 2018-10-20
It's not really a bug, let's call it a "known problem" ...
The matter is when DxWnd imports a game icon it shows a nice 32bit colored icon, but when it saves it to the config file the image is 256 colors only (maybe even less: if you count them you never see more than 16!). This depends on the particular saving schema (a source code that I duly copied from a web example), there is an alternative way to make that operation preserving 32bit colors, but it has two problems:
1) generates a hex string 4 times longer
2) it doesn't work
So, my plan is to try to fix the new schema, but I'm unsure some better colored icons are worth such a bigger (and maybe slower) processing.
Next releases, anyway.
Last edit: gho 2017-10-26
Last edit: Anonymous 2018-10-20
One trick could be to have Dxwnd use the saved 16 color icon pictures only when the executable is not found. In other cases use the high color icon directly from the executable. This way the user could tell at a glance which games are present and which are missing or have incorrect path.
Of course some executables only have a 16 color icon. But in general this would provide a similar function to the detailed views green and gray indicators.
edit:
Additionally or alternatively the icon text could also be grayed out when the executable is not found.
Last edit: Riitaoja 2017-10-26
I agree. But using an ico extracted on the fly from the executable could bring delays (it could be repeated up to 256 times!), I should measure some performances. In addition, this solution would erase any custom icon you may select (this is not such a trifling thing: some games may have no icon on the game executable and a better icon somewhere else).
I was also thinking to a setup option to save icons with 4, 8, 16, 32 bit color depth.
But before anything else I must learn how to extract and reproduce decent icons: the task seems much more difficult than expected!
About status encoded in the text color or style (bold vs. italic vs. underlined) or text background, the problem here is that MFC component has no capability for doing that, I should find some working (and possibly open-source) listbox extended class.
New icon GUI is simply great. Something in DxWnd's look was missing for me but I didn't know what. Now I know.
But I keep ini file clean from "iconX" entries to have full color icons for games with exe's path configured correctly. Each time 'dxwnd.ini' is saved icon entries apear again, but this is not a problem for already configured games. I think storing simplified icon is ok for not present games, but full color for active ones is a must and it looks very good.
The problem is still here for 16 color icons, to distinguish active and disabled game configs.
Wow! I missed the opportunity to give an answer to you both arqarq and Riitaoja for only 25 seconds!!!
See my previous post and concerns. In any case, I'm well aware that the thing isn't finished here. When I'll learn how to manage icons a little better, hopefully some new functionalities (like a "select icon" command) and some additional setup flags should keep everyone happy!
Last edit: gho 2017-10-27
Try this new GUI, it behaves quite better, and seems fast enough though there's some optimization work to be done. But, please, don't look inside dxwnd.ini!!!!
Last edit: gho 2017-10-27
It's ok, but you can just put icon storage in another amorphous type indexed file like 'dxwnd_icon.db' or something like that. For now it is some brute force approach for storing binary in text ini. But for me it's also not a problem with bigger ini.
It also would make refreshing icons storage simple - by just deleting .db file. Something like known 'thumbs.db' file in XP or 'IconCache.db' in Win7.
For non active game profiles I suggest greying them out somehow.
Last edit: Anonymous 2018-10-20
Experimental release: go to "Global Settings" and chose 32 bit icons if you like them better. Default is 16 colors only. The nice thing is that 16 color icons and 32 bit icons can happily coexist in the same dxwnd.ini file. While you make up your minds, I'm trying to gray out programmatically an existing icon....
Making the icons grayed is possible, on 16 color icons you just have to replace with 0x77 every not NULL byte in the icon's bitmap data. But the result is not so exciting, I think I'll pass this one.
Last edit: Anonymous 2018-10-20
Maybe the grayed out icons do not look visually appealing but they are functional and definitely show which games can not find the executable.
Here it is, grayed if target not found.
Only problem, the grayed icon is currently "static": if you change the path field or remove the target, nothing changes until DxWnd is started again. But I think it could be enough ...
Last edit: gho 2017-10-29
I think this is fine.
I think you guys are spending too much time on this subject.
MM
Last edit: Anonymous 2018-10-20
I start to agree, but when you start something, sadly you have to finish it, or dismantle everything.
This in attach could be the last release (excluding bug fixes), equipped with:
The nice thing is that if you don't like this all, it is sufficient to leave the View->List mode to "Detail" and you can forget all the rest!
Last edit: gho 2017-10-29
Firstly very nice work with the icons GHO.
However what have you done with v2.04.50 in general? It seems that V-Rally 3 is no longer starting. It worked with all prior versions including v2.04.49.
Now I just get a 640x480 black window and Dxwnd freezes. I then need to close vrally3.exe using the task manager to regain control. Log is not showing anything useful.
EDIT
Here is the log:
Last edit: Riitaoja 2017-10-30
Looking at the release notes, I'd say just few but important changes, though nothing that (in theory) could affect a 3D game like V-Rally 3.
The only sensible area could be the surface stack, a delicate thing that after the intervention should be much more robust, but you never know. Then, there's the possibility of some bug.
I'd better double check and test the game.
Uhm... in the new surface stack there's a smaller limit to the numbero of surfaces per type. If V-Rally 3 uses many surfaces of the same type, that could be a problem.
Now I don't have the game ready available, could you make a quick try with this experimental version that has the limits simply enlarged to the previous figures?
Interesting... Here is a comparison log using v2.04.49:
As can be seen in v2.04.50 it seems to jump directly from "HotPatch:" to "SetWindowsHookEx" missing a lot of steps in between.
Uhm, looking at the code, that should not happen.
Please, read my post above (it was written while you were writing yours)
Last edit: gho 2017-10-30