//////////////////////////////////////////////////////////// /// <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) { sfRenderTexture_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); } }
//////////////////////////////////////////////////////////// /// <summary> /// Draw the shape 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) { states.Transform *= Transform; RenderStates.MarshalData marshaledStates = states.Marshal(); if (target is RenderWindow) { sfRenderWindow_drawShape(((RenderWindow)target).CPointer, CPointer, ref marshaledStates); } else if (target is RenderTexture) { sfRenderTexture_drawShape(((RenderTexture)target).CPointer, CPointer, ref marshaledStates); } }