dxDrawPrimitive | Multi Theft Auto: Wiki Skip to content

dxDrawPrimitive

Client-side
Server-side
Shared

This function draws a 2D primitive shape across the screen - rendered for one frame. This should be used in conjunction with onClientRender in order to display continuously.

Syntax

bool dxDrawPrimitive ( ​string pType, ​bool postGUI, ​table vertex1, [ ​table vertex2... = nil ] )
Required Arguments
  • pType: Type of primitive to be drawn.
    • pointlist: Renders the vertices as a collection of isolated points.
    • linelist: Renders the vertices as a list of isolated straight line segments.
    • linestrip: Renders the vertices as a single polyline.
    • trianglelist: Renders the specified vertices as a sequence of isolated triangles. Each group of three vertices defines a separate triangle.
    • trianglestrip: Renders the vertices as a triangle strip.
    • trianglefan: Renders the vertices as a triangle fan.
  • postGUI: A bool representing whether the line should be drawn on top of or behind any ingame GUI (rendered by CEGUI).
  • vertex1: Tables representing each primitive vertex, required amount of them is determined by primitive type. See vertices format below:
    • posX - An float representing the absolute X position of the vertex, represented by pixels on the screen.
    • posY - An float representing the absolute Y position of the vertex, represented by pixels on the screen.
    • color (optional) - An integer of the hex color, produced using tocolor or 0xAARRGGBB (AA = alpha, RR = red, GG = green, BB = blue). If it's not specified, white color is used.
Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use.

  • vertex2... (default: nil): Tables representing each primitive vertex, required amount of them is determined by primitive type. Check table format above.

Returns

  • bool: result

Returns a true if the operation was successful, false otherwise.

Code Examples

client

This is a small example that creates trianglefan primitive with vertices in places that user clicks. It assigns every vertex random color.

local vertices = {}
function onClick(btn, state, x, y)
if btn ~= "left" then return end
if state ~= "up" then return end
local vertex = {x, y, tocolor(math.random(255), math.random(255), math.random(255))}
table.insert(vertices, vertex)
end
addEventHandler("onClientClick", root, onClick)
function draw()
dxDrawPrimitive("trianglefan", true, unpack(vertices))
end
addEventHandler("onClientPreRender", root, draw)