//////////////////////////////////////////////////////////// /// <summary> /// Draw primitives defined by a sub-array of vertices /// </summary> /// <param name="vertices">Pointer to the vertices</param> /// <param name="start">Index of the first vertex to use in the array</param> /// <param name="count">Number of vertices to draw</param> /// <param name="type">Type of primitives to draw</param> /// <param name="states">Render states to use for drawing</param> //////////////////////////////////////////////////////////// public void Draw(Vertex[] vertices, uint start, uint count, PrimitiveType type, RenderStates states) { RenderStates.MarshalData marshaledStates = states.Marshal(); unsafe { fixed(Vertex *vertexPtr = vertices) { sfRenderWindow_drawPrimitives(CPointer, vertexPtr + start, count, type, ref marshaledStates); } } }
//////////////////////////////////////////////////////////// /// <summary> /// Draw the vertex array to a render target /// </summary> /// <param name="target">Render target to draw to</param> /// <param name="states">Current render states</param> //////////////////////////////////////////////////////////// public void Draw(RenderTarget target, RenderStates states) { RenderStates.MarshalData marshaledStates = states.Marshal(); if (target is RenderWindow) { sfRenderWindow_drawVertexArray(((RenderWindow)target).CPointer, CPointer, ref marshaledStates); } else if (target is RenderTexture) { sfRenderTexture_drawVertexArray(((RenderTexture)target).CPointer, CPointer, ref marshaledStates); } }
//////////////////////////////////////////////////////////// /// <summmary> /// Draw the object to a render target /// /// This is a pure virtual function that has to be implemented /// by the derived class to define how the drawable should be /// drawn. /// </summmary> /// <param name="target">Render target to draw to</param> /// <param name="states">Current render states</param> //////////////////////////////////////////////////////////// public void Draw(RenderTarget target, RenderStates states) { states.Transform *= Transform; RenderStates.MarshalData marshaledStates = states.Marshal(); if (target is RenderWindow) { sfRenderWindow_drawSprite(((RenderWindow)target).CPointer, CPointer, ref marshaledStates); } else if (target is RenderTexture) { sfRenderTexture_drawSprite(((RenderTexture)target).CPointer, CPointer, ref marshaledStates); } }
//////////////////////////////////////////////////////////// /// <summmary> /// Draw the object to a render target /// /// This is a pure virtual function that has to be implemented /// by the derived class to define how the drawable should be /// drawn. /// </summmary> /// <param name="target">Render target to draw to</param> /// <param name="states">Current render states</param> //////////////////////////////////////////////////////////// public void Draw(RenderTarget target, RenderStates states) { //states.Transform *= Transform; RenderStates.MarshalData marshaledStates = states.Marshal(Transform); // NetGore custom line if (target is RenderWindow) { sfRenderWindow_drawText(((RenderWindow)target).CPointer, CPointer, ref marshaledStates); } else if (target is RenderTexture) { sfRenderTexture_drawText(((RenderTexture)target).CPointer, CPointer, ref marshaledStates); } }
public void Draw(RenderTarget target, Transform transform) { var states = RenderStates.Default; states.Transform *= transform; RenderStates.MarshalData marshaledStates = states.Marshal(); if (target is RenderWindow) { sfRenderWindow_drawVertexArray(((RenderWindow)target).CPointer, CPointer, ref marshaledStates); } else if (target is RenderTexture) { sfRenderTexture_drawVertexArray(((RenderTexture)target).CPointer, CPointer, ref marshaledStates); } }
unsafe static extern void sfRenderWindow_drawPrimitives(IntPtr CPointer, Vertex *vertexPtr, uint vertexCount, PrimitiveType type, ref RenderStates.MarshalData renderStates);
static extern void sfRenderTexture_drawSprite(IntPtr CPointer, IntPtr Sprite, ref RenderStates.MarshalData states);
static extern void sfRenderTexture_drawVertexArray(IntPtr CPointer, IntPtr VertexArray, ref RenderStates.MarshalData states);
static extern void sfRenderWindow_drawShape(IntPtr CPointer, IntPtr Shape, ref RenderStates.MarshalData states);
static extern void sfRenderTexture_drawText(IntPtr CPointer, IntPtr Text, ref RenderStates.MarshalData states);
static extern void sfRenderWindow_drawVertexBuffer(IntPtr CPointer, IntPtr VertexArray, ref RenderStates.MarshalData states);