Thank you both.
Right then, I've just downloaded Microsoft Visual C++ 2010 Express on my other Laptop, The newest one, which uses Windows 7.
I've simply created the same file path from c: to where my pre-built binary needs to be, and freshly downloaded the correct binary to this folder.
Now, I've copied my program project folder to the other computer, Windows 7 . I've compiled it as usual and: Exactly the same delay as my Vista Laptop, perhaps slightly worse. I've checked the .exe size and is exactly the same, what I'd expect.
Yes this might be an unusual thing to suspect, but I wanted to be sure that it wasn't anything to do with my Vista computer. Incidentally on my XP computer, which I tested the .exe on yesterday, there's no delay whatsoever.
So it seems the way I'm doing it just doesn't work the way it looks like it should do. Again please read through my points 1, 2, 3 and 4 in my previous entry. I think they’re valid, and if al_get_next_event() was removing events each cycle, then at 60 FPS I don't see how the queue could GET BACKED UP. But perhaps I'm missing something. Please explain.
Thomas: You said "force all events to be handled before drawing" I thought that's what my: if(al_is_event_queue_empty(event_queue)) is supposed to do.
Anyway, it doesn't work properly, so I have to change the way I'm doing it. I CONCEDE. Edgar: Yes my way is unconventional, and I also guess it should work, but unless there's something I'm missing, Allegro it seems is just not supposed to be used this way. Damn!
Everybody: I don't want to time my game loop using a timer. I want it to be timed by the Vsync signal. That's why I've set Vsync to be on and I'm not using a timer.
What's the correct/proper way to do this. Please help me with this. Please!
Please address this point as well: I've been setting Vsync on to time my game loop off the Vsync signal. As soon as a timer is used in the conventional way, but at the same time as Vsync being used like I'm trying to use it, the timer then determines the FPS, which isn't surprising, but not what I want.
Thank you Edgar for the link. I've had a look and I'm trying to understand how the "FPS is limited by the vsync". I can’t see any call to Vsync, so I'm struggling to understand this aspect. Please explain.
Anyway, I've tried the method of completely draining the event queue using a while loop and I still get the same delay issue.
It seems to me that it's extremely likely to do with Vsync. When I turn it off, although there's an increase in cpu usage (not as much as I was expecting though) there's clearly no delay.
So I'm still feeling a bit beaten up.
EDIT: Peter Wang, that's the most reassuring reply I've had so far. I've noticed you are on the development team, but unfortunately for me I'm still a beginner.
Anyway, there's no chance I could understand the depths of your suspicion any time soon, but it exactly falls in line with the behaviour I'm getting and my imaginary idea of a keyboard buffer (that I previously mentioned in this thread) feeding the key presses into the queue slowly at times.
Well I'll wait for further replies. Thank You Peter.
I'm late for work. I'll check here tonight.