DxDrawSVG: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
Revision as of 10:36, 22 August 2025
Description
Draws an SVG image on screen using dxDrawImage, with automatic caching. Supports both raw SVG strings and external .svg files from the resource folder.
- This function runs on the client-side.**
 
Syntax
dxDrawSVG(x, y, width, height, svgPathOrCode [, rotation = 0], [rotationCenterX = 0], [rotationCenterY = 0], [color = white], [postGUI = false])
Required Arguments
- x: *float* – X position on screen.
 - y: *float* – Y position on screen.
 - width: *float* – Width of the image.
 - height: *float* – Height of the image.
 - svgPathOrCode: *string* – Raw SVG code or a file path to `.svg`.
 
Optional Arguments
- rotation: *float* – Rotation in degrees.
 - rotationCenterX: *float* – Rotation center X.
 - rotationCenterY: *float* – Rotation center Y.
 - color: *int* – Color (use tocolor()).
 - postGUI: *bool* – Whether to draw after GUI.
 
Code (Client-side)
local HsoData = {}
function dxDrawSVG(x, y, w, h, rawOrPath, ...)
    if not HsoData[rawOrPath] then
        if fileExists(rawOrPath) then
            local file = fileOpen(rawOrPath)
            if file then
                local content = fileRead(file, fileGetSize(file))
                fileClose(file)
                HsoData[rawOrPath] = svgCreate(w, h, content)
            end
        else
            HsoData[rawOrPath] = svgCreate(w, h, rawOrPath)
        end
    end
    if HsoData[rawOrPath] then
        dxSetBlendMode('add')
        dxDrawImage(x, y, w, h, HsoData[rawOrPath], ...)
        dxSetBlendMode('blend')
    end
end
Example: Raw SVG string
dxDrawSVG(400, 200, 128, 128, [[ <svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"> <circle cx="64" cy="64" r="60" stroke="white" stroke-width="8" fill="blue" /> </svg> ]], 0, 0, 0, tocolor(255, 255, 255, 200))
Example: SVG file
meta.xml:
<file src="files/icon.svg" />
Lua:
dxDrawSVG(400, 200, 64, 64, "files/icon.svg", 0, 0, 0, tocolor(255, 255, 255, 255))
Notes
- Supports both raw SVG content and external SVG files.
 - Automatically caches each unique SVG to improve performance.
 - Some complex SVGs may not be fully supported by svgCreate.
 - This function should be used on the **client-side** only.
 
See also
Credits
- Function by Hussein Ali
 
Instagram : pkw_3