Path: chuka.playstation.co.uk!news From: Chris Chadwick Newsgroups: scee.yaroze.programming.libraries Subject: MoveImage() M.O. Date: Wed, 18 Mar 1998 01:56:27 -0800 Organization: PlayStation Net Yaroze (SCEE) Lines: 55 Message-ID: <350F9A4B.2062@dial.pipex.com> NNTP-Posting-Host: am114.du.pipex.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 2.02 (Win95; I; 16bit) Hi, I currently need to display a sprite object in my game which is effectively a small text box. I'm doing this by copying (with MoveImage) each text character to the box sprite image in VRAM, from a font image located elsewhere in VRAM. I actually copy a single character image AND a cursor image once every couple of vsyncs, to give a 'computer read-out' type effect. I'm doing it this way as I obviously dont want to have a separate sprite for each character etc! So, the basic run of events within the main game loop is: game loop start . . . MoveImage() // to copy character image to box sprite image . MoveImage() // to copy cursor image to box sprite image . // Note: I dont/cant use a DrawSync() . // after either MoveImage() call . DrawSync() Vsync() GsSwapDispBuff() GsDrawOT() . . . game loop end I modify the source RECT used by the first MoveImage and use it with the second MoveImage. This seems to work BUT, isn't it possible I will have modified the RECT variable BEFORE the first MoveImage operation is done, as it is non-blocking? Or, does each MoveImage call keep it's own working copy of the RECT variable passed to it? I assume some such mechanism is used as when each MoveImage call is made (as above) the GPU will be busy because of the last GsDrawOT call, so the 2 MoveImage operations will be delayed until AFTER the GPU has finished drawing. Is this right? Is it QUARANTEED that any MoveImage call issued AFTER a GsDrawOT will be delayed until the GPU has finished drawing ALL the OT objects? I dont want to be altering a sprite image while/before the GPU has used that image in drawing the previous frame (if you see what I mean!?) I hope that lot makes some kind of sense to someone. :) I quess, what I'm asking in essence is: How and when, EXACTLY, are MoveImage operation requests stored and subsequently dealt with by the GPU? As I say, everything SEEMS to be working fine the way it is (things that run first go give me an uneasy feeling :) I just want to be sure that things wont go pear-shaped somewhere down the line. Thanks in advance! -Chris