Charmed Quark Systems, Ltd. - Support Forums and Community

Full Version: Official RIVA thread
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Dean Roddey Wrote:But you also send the position in the press event. Are you getting the most recent position when you send the press event?
The PRESS event sends the button's position... The following MOVE sends the position of the mouse at the time the event is sent... Is the C++ client resending a PRESS event for every move? Something like::

PRESS
MOVE + PRESS
MOVE + PRESS
MOVE + PRESS
MOVE + PRESS
RELEASE

Instead of just:

PRESS
MOVE
MOVE
MOVE
MOVE
MOVE
RELEASE

If for a simple PRESS/RELEASE the C++ client also sends a PRESS/PRESS/RELEASE, I guess that could explain why it's not acting like our PRESS/RELEASE, as you would be missing the fact that the first PRESS isn't animated...
Oh, no, it's just doing what you would expect. If it sent a press for every move, that would make the server go crazy.

But all three of them include the current position. I was just wondering if perhaps your deferred move logic was making you send the 350ms ago position, some some such, when the user clicks or something like that.
I've added some code to log about press/release messages, whether a widget was hit, what it's name and type are, whether tracking completed and so forth. So that'll hope give a little more info about what the server is doing. After the next drop you can give it a try.

BTW, did you ever try the thing of moving the mouse in and out of the widget while you hold the mouse down? Do you get the pressed image when you move out and back in, even though you don't get it when you initially press? The widget should go in and out of pressed state when you click and then hold the mouse and move in and out, as long as you are sending move messages correctly anyway.

That would be an interesting sanity check as to whether it's the first redraw or something to with the whole state of the first mouse press/release.
Dean Roddey Wrote:BTW, did you ever try the thing of moving the mouse in and out of the widget while you hold the mouse down?
I did and there was no animation what so ever, which is why I asked if you were sending a press with each move or such...
So do you think that you are getting a request to draw a fully transparent image like Brain seems to be seeing?
Dean Roddey Wrote:So do you think that you are getting a request to draw a fully transparent image like Brain seems to be seeing?
No, for the MOVE there was absolutely no message sent from the RIVA server...

For the first click, it's sending an alpha blit of the unpressed image.
There wouldn't be anything sent from the move. That's purely just to inform the server of the current mouse position in case of any sort of 'flyover' type of effect.

What is the alpha level of the alphablit you are getting? Brian seems to be seeing an alpha level that makes the image completely transparent, so the actual press action is really happening, but you see nothing because the image is being drawn transparently.
Dean Roddey Wrote:There wouldn't be anything sent from the move.
But then how could the image change from pressed to unpressed if that info isn't sent?

Quote:Brian seems to be seeing an alpha level that makes the image completely transparent, so the actual press action is really happening, but you see nothing because the image is being drawn transparently.
Regardless of the alpha level, the first press gets told to show the same unpressed image in the same position... There's no way changing the alpha level would magically show a different image or move it by 1 pixels each way... Wink

Without a pressed image, it goes like this:

First PRESS = alpha blit (X, Y) of unpressed image.
RELEASE = alpha blit (X, Y) of unpressed image.
Second PRESS = alpha blit (X + 1, Y + 1) of unpressed image.
RELEASE = alpha blit (X, Y) of unpressed image.

With a pressed image, it goes like this:

First PRESS = alpha blit (X, Y) of unpressed image.
RELEASE = alpha blit (X, Y) of unpressed image.
Second PRESS = alpha blit (X + 1, Y + 1) of pressed image.
RELEASE = alpha blit (X, Y) of unpressed image.
Oh, you meant a move while it was being held down. If it's not sending you anything, then I don't think you ever got a press inside the widget. It would only send you something if you got the original press inside the widget. Otherwise it won't be tracking the widget and therefore it won't send anything.

That also kind of leads me to believe that maybe it's related to positions on the click. And that would also maybe explain what's happening, because it sees that first press as a release, so it thinks it's being RELEASED inside the button, and asks you to draw the unpressed image. After that, it gets into sync and works. Then, after a move, somehow, it's getting into that thinking it's pressed state again.

So maybe it's something like that, and it's just that I'm compensating for it unknowingly or something. I'll look at that.
Yes, I guess that makes sense. If you think that we are doing something wrong with the Press/Move/Release messages we send to you, let us know.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39