View previous topic :: View next topic |
Author |
Message |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7924 Location: Salford, UK
|
Posted: Mon Apr 15, 2013 3:15 pm Post subject: |
|
|
Bill
You don't need to replace these routines.
I can fix similar problems in other places.
ClearWin+ should allow you to call these routines any number of times.
Just let me know which routine(s) are causing a problem. |
|
Back to top |
|
|
BILLDOWS
Joined: 22 Jul 2005 Posts: 86 Location: Swansea, UK
|
Posted: Tue Apr 16, 2013 9:13 am Post subject: |
|
|
I have sent you a PM with a minor update to the original program posted above for which you provided a DLL update which showed some improvement.
In the update I create a virtual region in addition to the real screen and in turn write the draw_filled_polygon to each. Whilst the write to the real screen does not add to the GDI count that to the virtual region adds +1 on each call thus crashing eventually
I am pleased to say that this is really the only routine I use 'in anger' in my real program.
Thanks
Bill |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7924 Location: Salford, UK
|
Posted: Tue Apr 16, 2013 12:02 pm Post subject: |
|
|
I have uploaded a new DLL to the same place.
This includes a more comprehensive fix for this problem.
ClearWin+ now limits the number of cached GDI objects to a little under 10000 which is the default limit for Windows 7.
I have added a routine that allows the user to set this maximum to another value. |
|
Back to top |
|
|
BILLDOWS
Joined: 22 Jul 2005 Posts: 86 Location: Swansea, UK
|
Posted: Tue Apr 16, 2013 12:12 pm Post subject: |
|
|
Once again many thanks
First tests on both demo program and real program seem fine.
Will spend time doing more exhaustive tests and report back
Thanks again
Bill
Paul: All tests I have done to date have worked fine.
From what I can see from the GDI behaviour (on my full program), whilst the GDI count does rise eventually to hit the 10,000 limit once this is reached the complete 'buffer' is cleared and the count re-starts. As 10,000 is the limit on Windows XP and later then this should be fine. |
|
Back to top |
|
|
|