I've been having very good results with the accelerated putimage() in ptcgraph. I am wondering if this modification could be added to 3.04, or some future release, as I think everyone would want putimage() to happen as fast as possible. I can't figure out how or where to submit this though. I got the original code from here: https://sourceforge.net/p/ptcpas/code/785/tree/trunk/ and the code modified code I have is here: https://github.com/Zaaphod/ptcpas/tree/Avoid_ReChecking_Bitblt. I don't see any method to submit something similar to a pull request though. Is there some method to contribute code to the PTCPAS project?
I am also wondering if it would be beneficial to accelerate other procedures in the same way especially getimage() I'm wanting to make it appear as it an object moves across the screen so I want to getimage() a small portion of the screen, copy the image variable, draw the object in the copy, putimage() the copy to show the object, then when it's time to move it, putimage() the original back, then start the process over again in the next location.
>I am also wondering if it would be beneficial to accelerate other procedures in the same way especially getimage()
I went ahead and tried it and I've got getimage() to about 18x faster on my system. I changed how it works a little, the original was checking every single pixel if it was in the viewport or not, instead of doing that, I just fixed the nested loop to only operate within the range included in the viewport. I also added a section to only include items that are actually on the screen as well. I've updated my github repository, the changes I've made are on the 'zaaphod_custom' branch. Here's a link
I'm wondering if I should take the default procedures out of graph.inc and replace them with just an error and halt as many of the other procedures have done.
I thought I would include the i386-win32 and x86_64-win64 compiled units of ptcpas with the accelerated versions of putimage() and getimage() in my repository if anyone wants to give them a try. They are in a 'units' directory on the 'compiled' branch Here's the link: