hdgraphic: add more ui-scales

This commit is contained in:
shagu
2018-01-20 18:06:29 +01:00
parent cde834dfb1
commit a7f6869641
2 changed files with 114 additions and 79 deletions
+11 -2
View File
@@ -414,6 +414,15 @@ pfUI:RegisterModule("gui", function ()
table.insert(pfUI.gui.dropdowns.fonts, "Fonts\\FZXHLJW.TTF:FZXHLJW")
end
pfUI.gui.dropdowns.scaling = {
"0:" .. T["Off"],
"4:" .. T["Huge (PixelPerfect)"],
"5:" .. T["Large"],
"6:" .. T["Medium"],
"7:" .. T["Small"],
"8:" .. T["Tiny (PixelPerfect)"],
}
pfUI.gui.dropdowns.uf_animationspeed = {
"1:" .. T["Instant"],
"2:" .. T["Very Fast"],
@@ -551,8 +560,8 @@ pfUI:RegisterModule("gui", function ()
CreateConfig(nil, this, T["Unit Frame Text Font"], C.global, "font_unit", "dropdown", pfUI.gui.dropdowns.fonts)
CreateConfig(nil, this, T["Unit Frame Text Size"], C.global, "font_unit_size")
CreateConfig(nil, this, T["Scrolling Combat Text Font"], C.global, "font_combat", "dropdown", pfUI.gui.dropdowns.fonts)
CreateConfig(nil, this, T["Enable Native UI-Scale"], C.global, "pixelperfect", "checkbox")
CreateConfig(nil, this, T["Enable Maximum Graphic Details"], C.global, "hdgraphic", "checkbox")
CreateConfig(update["hdgraphic"], this, T["Enable UI-Scale"], C.global, "pixelperfect", "dropdown", pfUI.gui.dropdowns.scaling)
CreateConfig(update["hdgraphic"], this, T["Enable Maximum Graphic Details"], C.global, "hdgraphic", "checkbox")
CreateConfig(nil, this, T["Enable Offscreen Frame Positions"], C.global, "offscreen", "checkbox")
CreateConfig(nil, this, T["Enable Single Line UIErrors"], C.global, "errors_limit", "checkbox")
CreateConfig(nil, this, T["Disable All UIErrors"], C.global, "errors_hide", "checkbox")
+103 -77
View File
@@ -1,90 +1,116 @@
pfUI:RegisterModule("hdgraphic", function ()
-- pixel perfect
local function pixelperfect()
local conf = tonumber(C.global.pixelperfect)
if conf < 4 then
-- restore gamesettings
local scale = GetCVar("uiScale")
local use = GetCVar("useUiScale")
-- pixelperfect: native UIScale
if C.global.pixelperfect == "1" then
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_ENTERING_WORLD")
f:SetScript("OnEvent", function()
if use == 1 then
UIParent:SetScale(tonumber(use))
else
UIParent:SetScale(.9)
end
else
-- apply pixel dependent scaling
local resolution = GetCVar("gxResolution")
for screenwidth, screenheight in string.gfind(resolution, "(.+)x(.+)") do
local screenheight = tonumber(screenheight) < 2160 and tonumber(screenheight) or tonumber(screenheight) / 2
local scale = 768/screenheight
local screenheight = tonumber(screenheight) / 8
local scale = 768 / ( screenheight * conf )
UIParent:SetScale(scale)
UIParent:SetWidth(screenwidth)
UIParent:SetHeight(screenheight)
UIParent:SetPoint("CENTER",0,0)
end
end)
end
-- hdgraphic: use maximum graphic details
if C.global.hdgraphic == "1" then
ConsoleExec("anisotropic 16")
ConsoleExec("detailDoodadAlpha 100")
ConsoleExec("farclip 777")
ConsoleExec("frillDensity 256")
ConsoleExec("gxColorBits 24")
ConsoleExec("gxDepthBits 24")
ConsoleExec("gxMultisample 8")
ConsoleExec("gxMultisampleQuality 1.000000")
ConsoleExec("fullAlpha 1")
ConsoleExec("lod 0")
ConsoleExec("M2Faster 3")
ConsoleExec("Gamma 0.8")
ConsoleExec("lodDist 250")
ConsoleExec("mapObjLightLOD 2")
ConsoleExec("maxLOD 3")
ConsoleExec("nearClip 0.33")
ConsoleExec("particleDensity 1")
ConsoleExec("pixelShaders 1")
ConsoleExec("shadowLevel 0")
ConsoleExec("SmallCull 0.01")
ConsoleExec("trilinear 1")
ConsoleExec("SkyCloudLOD 1")
ConsoleExec("SkySunGlare 1")
ConsoleExec("specular 1")
ConsoleExec("textureLodDist 777")
ConsoleExec("texLodBias -1")
ConsoleExec("trilinear 1")
ConsoleExec("unitDrawDist 300")
ConsoleExec("weatherDensity 3")
ConsoleExec("waterParticulates 1")
ConsoleExec("waterRipples 1")
ConsoleExec("waterSpecular 1")
ConsoleExec("waterWaves 1")
ConsoleExec("ffxDeath 1")
ConsoleExec("ffx 1")
ConsoleExec("ffxRectangle 1")
ConsoleExec("ffxGlow 1")
ConsoleExec("spellEffectLevel 2")
ConsoleExec("occlusion 1")
ConsoleExec("footstepBias 0.125")
ConsoleExec("showfootprints 1")
ConsoleExec("horizonfarclip 777")
ConsoleExec("baseMip 0")
ConsoleExec("waterLOD 0")
ConsoleExec("mapObjOverbright 1")
ConsoleExec("MaxLights 4")
ConsoleExec("DistCull 888")
ConsoleExec("mapShadows 1")
ConsoleExec("doodadAnim 1")
ConsoleExec("showShadow 1")
ConsoleExec("showLowDetail 0")
ConsoleExec("showSimpleDoodads 0")
ConsoleExec("gxTripleBuffer 1")
ConsoleExec("M2UsePixelShaders 1")
ConsoleExec("M2UseZFill 1")
ConsoleExec("M2UseClipPlanes 1")
ConsoleExec("M2UseThreads 1")
ConsoleExec("M2UseShaders 1")
ConsoleExec("M2BatchDoodads 1")
ConsoleExec("bspcache 1")
local cur, max = GetCurrentResolution(), table.getn({GetScreenResolutions()})
if cur ~= max then
SetScreenResolution(max)
ConsoleExec("gxrestart")
ReloadUI()
end
end
-- best graphic
local function bestgraphic()
if C.global.hdgraphic == "1" then
ConsoleExec("anisotropic 16")
ConsoleExec("detailDoodadAlpha 100")
ConsoleExec("farclip 777")
ConsoleExec("frillDensity 256")
ConsoleExec("gxColorBits 24")
ConsoleExec("gxDepthBits 24")
ConsoleExec("gxMultisample 8")
ConsoleExec("gxMultisampleQuality 1.000000")
ConsoleExec("fullAlpha 1")
ConsoleExec("lod 0")
ConsoleExec("M2Faster 3")
ConsoleExec("Gamma 0.8")
ConsoleExec("lodDist 250")
ConsoleExec("mapObjLightLOD 2")
ConsoleExec("maxLOD 3")
ConsoleExec("nearClip 0.33")
ConsoleExec("particleDensity 1")
ConsoleExec("pixelShaders 1")
ConsoleExec("shadowLevel 0")
ConsoleExec("SmallCull 0.01")
ConsoleExec("trilinear 1")
ConsoleExec("SkyCloudLOD 1")
ConsoleExec("SkySunGlare 1")
ConsoleExec("specular 1")
ConsoleExec("textureLodDist 777")
ConsoleExec("texLodBias -1")
ConsoleExec("trilinear 1")
ConsoleExec("unitDrawDist 300")
ConsoleExec("weatherDensity 3")
ConsoleExec("waterParticulates 1")
ConsoleExec("waterRipples 1")
ConsoleExec("waterSpecular 1")
ConsoleExec("waterWaves 1")
ConsoleExec("ffxDeath 1")
ConsoleExec("ffx 1")
ConsoleExec("ffxRectangle 1")
ConsoleExec("ffxGlow 1")
ConsoleExec("spellEffectLevel 2")
ConsoleExec("occlusion 1")
ConsoleExec("footstepBias 0.125")
ConsoleExec("showfootprints 1")
ConsoleExec("horizonfarclip 777")
ConsoleExec("baseMip 0")
ConsoleExec("waterLOD 0")
ConsoleExec("mapObjOverbright 1")
ConsoleExec("MaxLights 4")
ConsoleExec("DistCull 888")
ConsoleExec("mapShadows 1")
ConsoleExec("doodadAnim 1")
ConsoleExec("showShadow 1")
ConsoleExec("showLowDetail 0")
ConsoleExec("showSimpleDoodads 0")
ConsoleExec("gxTripleBuffer 1")
ConsoleExec("M2UsePixelShaders 1")
ConsoleExec("M2UseZFill 1")
ConsoleExec("M2UseClipPlanes 1")
ConsoleExec("M2UseThreads 1")
ConsoleExec("M2UseShaders 1")
ConsoleExec("M2BatchDoodads 1")
ConsoleExec("bspcache 1")
local cur, max = GetCurrentResolution(), table.getn({GetScreenResolutions()})
if cur ~= max then
SetScreenResolution(max)
ConsoleExec("gxrestart")
ReloadUI()
end
end
end
-- pixelperfect: native UIScale listener
if tonumber(C.global.pixelperfect) > 0 then
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_ENTERING_WORLD")
f:SetScript("OnEvent", pixelperfect)
end
pfUI.hdgraphic = {}
function pfUI.hdgraphic:UpdateConfig()
bestgraphic()
pixelperfect()
end
pfUI.hdgraphic:UpdateConfig()
end)