Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
Advertisement

Sets the texture to an image.

TextureBase:SetTexture([textureAsset, wrapModeHorizontal, wrapModeVertical, filterMode])

Arguments[]

To clear the texture call this without any params or nil.

textureAsset
number|string? - A FileID or the file path to a texture.
wrapModeHorizontal
string? = CLAMP - If TextureBase:SetHorizTile is enabled, sets the wrap behavior for pixels with an x coordinate outside the (0, 1) region of the texture coordinate space.
wrapModeVertical
string? = CLAMP - If TextureBase:SetVertTile is enabled, sets the wrap behavior for pixels with a y coordinate outside the (0, 1) region of the texture coordinate space.
wrapMode Description
CLAMP Default; extends the texture edges infinitely.
CLAMPTOWHITE Fills the overflow with white.
CLAMPTOBLACK Fills the overflow with black.
CLAMPTOBLACKADDITIVE Fills overflow with a transparent black.
REPEAT (or true) Repeats the whole texture infinitely.
MIRROR Repeats the whole texture infinitely, mirroring adjacent iterations.
filterMode
string? = LINEAR
filterMode Description
LINEAR Default; bilinear filtering.
TRILINEAR Also sampling mipmaps.
NEAREST Nearest-neighbor filtering.

Details[]

  • Custom images must be in BLP, JPEG, PNG, or TGA format with power-of-two dimensions (e.g. 16x16, 8x32, 256x64). TGA images may have 8bpp grayscale, 24bpp RGB, or 32 bpp RGBA; RLE is supported.
    • Unlike other formats, PNG files must explicitly include the ".png" extension when their file path is used in-game.
  • Pixels outside the texture coordinate space may be sampled explicitly by TextureBase:SetTexCoord, or implicitly by the tiling mechanism when the texture widget is larger than the default size of the texture file.
  • Textures load asynchronously. For example, texture:GetSize() returns 0,0 until Texture:IsObjectLoaded becomes true; and then it returns the native texture size. See also TextureLoadingGroupMixin:IsFullyLoaded.
  • This API has a success return value but it has no significance since it always returns true, even for invalid FileIDs or parameters.

Example[]

Shows an icon on the screen.

local tex = UIParent:CreateTexture()
tex:SetPoint("CENTER")

tex:SetTexture(134532) -- interface/icons/inv_mushroom_11

API TextureBase SetTexture 01

The texture will be stretched or compressed if tiling is disabled.

tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang")
tex:SetSize(256, 64)

API TextureBase SetTexture 03

tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang")
tex:SetSize(32, 64)

API TextureBase SetTexture 13

Wrap Mode[]

When tiling is enabled, wrap mode specifies how pixels outside the texture coordinate space will be handled.

CLAMP - If the wrap mode is omitted it defaults to clamp.
tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang")
tex:SetSize(256, 64)
tex:SetHorizTile(true)

API TextureBase SetTexture 04

Clamping extends the texture edges infinitely. This texture illustrates how the right and bottom edges and the bottomright pixel get extended.

tex:SetTexture("Interface/RAIDFRAME/Shield-Overlay", "CLAMP", "CLAMP")
tex:SetSize(64, 64)
tex:SetScale(2)
tex:SetHorizTile(true)
tex:SetVertTile(true)

API TextureBase SetTexture 10

CLAMPTOWHITE - Fills everything outside the texture coordinate space with opaque white.
tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang", "CLAMPTOWHITE")
tex:SetSize(256, 64)
tex:SetHorizTile(true)

API TextureBase SetTexture 06

CLAMPTOBLACK - Fills everything outside the texture coordinate space with opaque black.
tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang", "CLAMPTOBLACK")
tex:SetSize(256, 64)
tex:SetHorizTile(true)

API TextureBase SetTexture 05

CLAMPTOBLACKADDITIVE - Additive clamping to black means every pixel that is outside the unit square containing the original texture is filled with transparent black pixels (R=G=B=A=0). The transparent pixels being black can matter in specific situations where the AlphaMode ignores the alpha channel.
tex:SetTexture("Interface/Buttons/YELLOWORANGE64", "CLAMPTOBLACKADDITIVE")
tex:SetSize(128, 64)
tex:SetHorizTile(true)
REPEAT - Sets the wrapMode to repeat horizontally.
tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang", "REPEAT")
tex:SetSize(256, 64)
tex:SetHorizTile(true)

API TextureBase SetTexture 02

Repeats horizontally and vertically

tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang", "REPEAT", "REPEAT")
tex:SetSize(128, 128)
tex:SetHorizTile(true)
tex:SetVertTile(true)

API TextureBase SetTexture 07

MIRROR - Sets the wrapMode to mirror vertically.
tex:SetTexture("Interface/ContainerFrame/UI-Icon-QuestBang", "MIRROR")
tex:SetSize(128, 64)
tex:SetHorizTile(true)

API TextureBase SetHorizTile 01

Patch changes[]

Dragonflight Patch 10.0.7 (2023-03-21): Added PNG texture format support.
Shadowlands Patch 9.0.1 (2020-10-13): New files located in the Interface/AddOns/ directory tree no longer require a client restart to take effect, only a /reload.
Battle for Azeroth Patch 8.0.1 (2018-07-17): Added filterMode argument.
Legion Patch 7.3.5 (2018-01-16): Changed horizWrap to apply horizontally and vertically, ignoring vertWrap. As of Dragonflight this seems to be no longer the case.
Legion Patch 7.0.3 (2016-07-19): Solid-color variant replaced with TextureBase:SetColorTexture.
Cataclysm Patch 4.0.3a (2010-11-23): Changed the return value to always return true; no longer indicating success.
WoW Icon update Patch 1.10.0 (2006-03-28): Added success return value.[1]

References[]

Advertisement