Terrarium.Renderer.DirectX.DirectDrawSpriteSurface.GrabSprite C# (CSharp) Method

GrabSprite() public method

Retreive a sprite that has to be drawn within the given destination rectangle, given the bounds of the viewport. Also contains a scaling factor.
public GrabSprite ( int xFrame, int yFrame, Rectangle dest, Rectangle bounds, int factor ) : DirectDrawClippedRect
xFrame int Retrieve the Xth horizontal frame.
yFrame int Retrieve the Yth vertical frame.
dest System.Drawing.Rectangle The destination rectangle for the sprite.
bounds System.Drawing.Rectangle The view rectangle bounds.
factor int A scaling factor.
return DirectDrawClippedRect
        public DirectDrawClippedRect GrabSprite(int xFrame, int yFrame, Rectangle dest, Rectangle bounds, int factor)
        {
            #if TRACE
            GraphicsEngine.Profiler.Start("DirectDrawSpriteSurface.GrabSprite(int, int, RECT, RECT, int)");
            #endif
            if (xFrame < 0 || xFrame >= animationFrames ||
                yFrame < 0 || yFrame >= animationTypes)
            {
                throw new Exception("Sprite request is out of range");
            }

            var spriteRect = new Rectangle(xFrame, yFrame, frameWidth, frameHeight);

            var ddClipRect = new DirectDrawClippedRect();
            ddClipRect.Destination  = dest;
            ddClipRect.Source       = spriteRect;

            if (dest.Left >= bounds.Right || dest.Right <= bounds.Left || dest.Top >= bounds.Bottom ||
                dest.Bottom <= bounds.Top)
            {
                ddClipRect.Invisible = true;
            #if TRACE
                GraphicsEngine.Profiler.End("DirectDrawSpriteSurface.GrabSprite(int, int, RECT, RECT, int)");
            #endif
                return ddClipRect;
            }
            ddClipRect.ClipRectBounds(dest, bounds, factor);

            #if TRACE
            GraphicsEngine.Profiler.End("DirectDrawSpriteSurface.GrabSprite(int, int, RECT, RECT, int)");
            #endif
            return ddClipRect;
        }

Same methods

DirectDrawSpriteSurface::GrabSprite ( int xFrame, int yFrame, Rectangle dest, Rectangle bounds ) : DirectDrawClippedRect
DirectDrawSpriteSurface::GrabSprite ( int xFrame, int yFrame ) : RECT