Models using SetTransform appear differently depending on game aspect ratio
sample code:
Code:
local Redraw = function(self)
if not self.model_path then return end
if type(self.model_path) == "number" then
self:SetDisplayInfo(self.model_path)
else
self:SetModel(self.model_path)
end
self:SetTransform(unpack(self.transformations))
end
local ResetTransformations = function(self)
self:ClearTransform()
end
local MakeModelRegion = function(self,w,h,model_path, ...)
local pmf = CreateFrame("PlayerModel", nil, self )
pmf:SetSize(w,h)
pmf.transformations = { ... }
pmf.model_path = model_path
-- before 8.0 this was a required workaround for a bug
-- that made models disappear after opening fullscreen map or entering cutscene
pmf:SetScript("OnHide", ResetTransformations)
pmf:SetScript("OnShow", Redraw)
pmf.Redraw = Redraw
pmf.ResetTransformations = ResetTransformations
pmf:Redraw()
return pmf
end
local f = MakeModelRegion(UIParent, 100, 100, "spells/blessingoffreedom_state.m2", 0.0255,0.0255,0, rad(90), rad(270), rad(270), 0.006)
f:SetPoint("CENTER")
f:SetBackdrop({
bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 0,
insets = {left = -2, right = -2, top = -2, bottom = -2},
})
f:SetBackdropColor(0,0,0,0.5)
local rect = f:CreateTexture(nil, "BACKGROUND", nil, -2)
rect:SetTexture("Interface\\BUTTONS\\WHITE8X8")
rect:SetVertexColor(0,0,0)
rect:SetSize(40, 40)
rect:SetPoint("CENTER")
local vline = f:CreateLine(nil, "BACKGROUND")
vline:SetTexture("Interface\\BUTTONS\\WHITE8X8")
vline:SetStartPoint("TOP", f, 0,0)
vline:SetEndPoint("BOTTOM", f, 0,0)
vline:SetThickness(1)
vline:SetVertexColor(1,1,1)
local hline = f:CreateLine(nil, "BACKGROUND")
hline:SetTexture("Interface\\BUTTONS\\WHITE8X8")
hline:SetStartPoint("LEFT", f, 0,0)
hline:SetEndPoint("RIGHT", f, 0,0)
hline:SetThickness(1)
hline:SetVertexColor(1,1,1)
TransformTestModel = f
TransformTestModel:Redraw()
-- TransformTestModel:SetScale(2)
-- frame scales, model doesnt, but if you manually multiply
-- offsets and model scale by frame scale it'll catch up
with these values effect will be centered on 16:9 (1920x1080).
But if you switch to 4:3 or 16:10 it'll shift and become smaller relative to black square (or larger for bigger resolutions)