Thread Tools Display Modes
10-26-16, 12:37 PM   #1
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 1,740
[7.1] Font drop shadow off by 1px on y-axis

With 7.1 all font drop shadows are off by 1 px on the y-axis.

If you offset the shadow on y-axis by -1 on live (7.1) the shadow is not visible.
That was not the case in 7.0. This effects every single font string that uses drop shadows.



I have to use this now
Lua Code:
  1. font:SetShadowOffset(1,-2)

Instead of
Lua Code:
  1. font:SetShadowOffset(1,-1)
__________________
| Simple is beautiful.
| WoWI AddOns | GitHub | Zork (WoW)

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)

Last edited by zork : 10-26-16 at 12:42 PM.
 
10-26-16, 02:33 PM   #2
Be3f.
A Theradrim Guardian
 
Be3f.'s Avatar
Join Date: Jan 2011
Posts: 65
Thanks for picking up on this, however, on my end, I have to set it to -3 to achieve a -1.
Default UI Scale 1920x1080.
__________________
-- Be3f.
 
10-26-16, 11:45 PM   #3
efrem07
A Kobold Labourer
Join Date: Oct 2016
Posts: 1
Where do you put that code ?
 
10-26-16, 11:46 PM   #4
Miiru
A Flamescale Wyrmkin
 
Miiru's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2008
Posts: 138
Originally Posted by Be3f. View Post
Thanks for picking up on this, however, on my end, I have to set it to -3 to achieve a -1.
Default UI Scale 1920x1080.
I can confirm this.
__________________
◘◘ Author of MiirGui Texture Pack - [Core] [Blue] [Grey] ◘◘
 
10-27-16, 01:22 AM   #5
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 1,740
Maybe the dropshadow is affected by any kind of scale/size now. But either way. If they have done this they forgot to adjust the drop shadow function properly!
__________________
| Simple is beautiful.
| WoWI AddOns | GitHub | Zork (WoW)

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)
 
10-28-16, 03:11 AM   #6
videnfost
A Kobold Labourer
Join Date: Oct 2016
Posts: 1
Is there any way to change the y-axis value of the shadow for the entire interface?
 
10-28-16, 03:46 AM   #7
Miiru
A Flamescale Wyrmkin
 
Miiru's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2008
Posts: 138
Originally Posted by videnfost View Post
Is there any way to change the y-axis value of the shadow for the entire interface?
You could try this (not tested)

Lua Code:
  1. local f = CreateFrame("Frame")
  2.         f:RegisterEvent("PLAYER_LOGIN")
  3.         f:SetScript("OnEvent", function()
  4.            
  5.         local function SetFont(obj)
  6.             local fontName, fontHeight = obj:GetFont() 
  7.             obj:SetFont(fontName,fontHeight)
  8.             obj:SetShadowOffset(1,-3)
  9.         end
  10.        
  11.             SetFont(ChatFontNormal)
  12.             SetFont(NumberFont_Shadow_Med)
  13.             SetFont(AchievementFont_Small)
  14.             SetFont(NumberFont_OutlineThick_Mono_Small)
  15.             SetFont(NumberFont_Outline_Huge)
  16.             SetFont(NumberFont_Outline_Large)
  17.             SetFont(NumberFont_Outline_Med)
  18.             SetFont(NumberFont_Shadow_Small)
  19.             SetFont(SystemFont_InverseShadow_Small)
  20.             SetFont(SystemFont_Large)
  21.             SetFont(SystemFont_Med1)
  22.             SetFont(SystemFont_Med2)
  23.             SetFont(SystemFont_Med3)
  24.             SetFont(SystemFont_OutlineThick_Huge2)
  25.             SetFont(SystemFont_OutlineThick_Huge4)
  26.             SetFont(SystemFont_OutlineThick_WTF)
  27.             SetFont(SystemFont_Outline_Small)
  28.             SetFont(SystemFont_Shadow_Huge1)
  29.             SetFont(SystemFont_Shadow_Huge3)
  30.             SetFont(SystemFont_Shadow_Large)
  31.             SetFont(SystemFont_Shadow_Med1)
  32.             SetFont(SystemFont_Shadow_Med3)
  33.             SetFont(SystemFont_Shadow_Outline_Huge2)
  34.             SetFont(SystemFont_Shadow_Small)
  35.             SetFont(SystemFont_Small)
  36.             SetFont(SystemFont_Tiny)
  37.             SetFont(ReputationDetailFont)
  38.             SetFont(ItemTextFontNormal)
  39.             SetFont(DialogButtonNormalText)
  40.             SetFont(InvoiceTextFontNormal)
  41.             SetFont(InvoiceTextFontSmall)
  42.             SetFont(MailTextFontNormal)
  43.             SetFont(GameFontHighlightSmall)
  44.             SetFont(GameFontNormalSmall)
  45.             SetFont(GameFontNormalSmall2)
  46.             SetFont(GameFontDisableSmall)
  47.             SetFont(GameFontNormalHuge)
  48.             SetFont(GameFontNormalLarge)
  49.             SetFont(GameFontHighlight)
  50.             SetFont(GameFontDisable)
  51.             SetFont(GameFontNormal)
  52.             SetFont(GameFontBlackMedium)
  53.             SetFont(GameFontHighlightMedium)
  54.             SetFont(SubSpellFont)
  55.             SetFont(NumberFontNormalSmall)
  56.             SetFont(NumberFontNormal)
  57.             SetFont(NumberFontNormalLarge)
  58.             SetFont(NumberFontNormalHuge)
  59.             SetFont(WorldMapTextFont)
  60.             SetFont(MovieSubtitleFont)
  61.             SetFont(AchievementPointsFont)
  62.             SetFont(AchievementPointsFontSmall)
  63.             SetFont(AchievementDateFont)
  64.             SetFont(AchievementCriteriaFont)
  65.             SetFont(AchievementDescriptionFont)
  66.             SetFont(FriendsFont_Large)
  67.             SetFont(FriendsFont_Normal)
  68.             SetFont(FriendsFont_Small)
  69.             SetFont(FriendsFont_UserText)
  70.             SetFont(GameTooltipHeaderText)
  71.             SetFont(GameTooltipText)
  72.             SetFont(GameTooltipTextSmall)
  73.             SetFont(ZoneTextString)
  74.             SetFont(SubZoneTextString)
  75.             SetFont(PVPInfoTextString)
  76.             SetFont(PVPArenaTextString)
  77.             SetFont(CombatTextFont)
  78.             SetFont(BackpackTokenFrameToken1Count)
  79.             SetFont(BackpackTokenFrameToken2Count)
  80.             SetFont(BackpackTokenFrameToken3Count)
  81.             SetFont(QuestFontHighlight)
  82.             SetFont(QuestFontNormalSmall)
  83.             SetFont(QuestTitleFont)
  84.             SetFont(QuestFont)
  85.             SetFont(QuestFont_Large)
  86.             SetFont(QuestTitleFontBlackShadow)
  87.             SetFont(QuestFont_Super_Huge)
  88.             SetFont(HelpFrameKnowledgebaseNavBarHomeButtonText)
  89.             SetFont(GameFont_Gigantic)
  90.             SetFont(CoreAbilityFont)
  91.             SetFont(DestinyFontHuge)
  92.             SetFont(DestinyFontLarge)
  93.             SetFont(InvoiceFont_Small)
  94.             SetFont(InvoiceFont_Med)
  95.             SetFont(MailFont_Large)
  96.             SetFont(QuestFont_Shadow_Small)
  97.             SetFont(QuestFont_Shadow_Huge)
  98.             SetFont(QuestFont_Huge)
  99.             SetFont(QuestFont_Enormous)
  100.             SetFont(SpellFont_Small)
  101.             SetFont(SystemFont_Huge1)
  102.             SetFont(SystemFont_OutlineThick_WTF)
  103.             SetFont(SystemFont_OutlineThick_Huge2)
  104.             SetFont(SystemFont_OutlineThick_Huge4)
  105.             SetFont(SystemFont_Outline)
  106.             SetFont(SystemFont_Shadow_Large_Outline)
  107.             SetFont(SystemFont_Shadow_Large2)
  108.             SetFont(SystemFont_Shadow_Med2)
  109.             SetFont(SystemFont_Shadow_Huge2)
  110.             SetFont(SystemFont_Small2)
  111.             SetFont(Tooltip_Med)
  112.             SetFont(Tooltip_Small)
  113.             -----
  114.             SetFont(GameFontNormalMed3)
  115.             SetFont(GameFontNormalHuge2)
  116.             SetFont(GameFontNormalLarge2)
  117.             SetFont(Game30Font)
  118.             SetFont(Game24Font)
  119.             SetFont(Game20Font)
  120.             SetFont(Game18Font)
  121.             SetFont(Fancy24Font) -- e.g. Weekly best @ ChallengesFrame
  122.             SetFont(Fancy16Font)           
  123.             SetFont(Fancy48Font)
  124.             SetFont(Fancy22Font) -- e.g. TalkingHeadFrame TitleFont
  125.             SetFont(Fancy32Font)
  126.             SetFont(SystemFont_LargeNamePlate)
  127.             SetFont(SystemFont_NamePlate)
  128.             SetFont(SystemFont_LargeNamePlateFixed)
  129.             SetFont(SystemFont_NamePlateFixed)
  130.             SetFont(WhiteNormalNumberFont) -- font shown at tradeskill skillbars
  131.             SetFont(PVPInfoTextFont)
  132.             SetFont(ChatFrame1EditBox)              -- chateditbox input text
  133.             SetFont(ChatFrame1EditBoxHeader)    -- chateditbox say/whisper/guild text
  134.             SetFont(GameTooltipHeader)          -- dungeon journal suggestion font
  135.             for i=1, NUM_CHAT_WINDOWS do   
  136.                     SetFont(_G["ChatFrame"..i])     --chat itself
  137.             end
  138.            
  139.         end)

You can make an addon out of the code with http://addon.bool.no/. There may be some fonts missing though
__________________
◘◘ Author of MiirGui Texture Pack - [Core] [Blue] [Grey] ◘◘
 
10-28-16, 03:56 PM   #8
Voyager
A Fallenroot Satyr
AddOn Author - Click to view addons
Join Date: Dec 2009
Posts: 22
Originally Posted by Miiru View Post
You could try this (not tested)

Lua Code:
  1. ....

You can make an addon out of the code with http://addon.bool.no/. There may be some fonts missing though
Thanks for that. Modified it a bit and tested it, setting the font itself seemed unnecessary.

Lua Code:
  1. local function FixFontShadow(obj)
  2.     local x, y = obj:GetShadowOffset()
  3.     if y > -2 and y < 0 then
  4.         obj:SetShadowOffset(x, -2)
  5.     end
  6. end
  7. local f = CreateFrame("Frame")
  8. f:RegisterEvent("PLAYER_LOGIN")
  9. f:SetScript("OnEvent", function()
  10.     f:UnregisterEvent("PLAYER_LOGIN")
  11.  
  12.     FixFontShadow(ChatFontNormal)
  13.     FixFontShadow(NumberFont_Shadow_Med)
  14.     FixFontShadow(AchievementFont_Small)
  15.     FixFontShadow(NumberFont_OutlineThick_Mono_Small)
  16.     FixFontShadow(NumberFont_Outline_Huge)
  17.     FixFontShadow(NumberFont_Outline_Large)
  18.     FixFontShadow(NumberFont_Outline_Med)
  19.     FixFontShadow(NumberFont_Shadow_Small)
  20.     FixFontShadow(SystemFont_InverseShadow_Small)
  21.     FixFontShadow(SystemFont_Large)
  22.     FixFontShadow(SystemFont_Med1)
  23.     FixFontShadow(SystemFont_Med2)
  24.     FixFontShadow(SystemFont_Med3)
  25.     FixFontShadow(SystemFont_OutlineThick_Huge2)
  26.     FixFontShadow(SystemFont_OutlineThick_Huge4)
  27.     FixFontShadow(SystemFont_OutlineThick_WTF)
  28.     FixFontShadow(SystemFont_Outline_Small)
  29.     FixFontShadow(SystemFont_Shadow_Huge1)
  30.     FixFontShadow(SystemFont_Shadow_Huge3)
  31.     FixFontShadow(SystemFont_Shadow_Large)
  32.     FixFontShadow(SystemFont_Shadow_Med1)
  33.     FixFontShadow(SystemFont_Shadow_Med3)
  34.     FixFontShadow(SystemFont_Shadow_Outline_Huge2)
  35.     FixFontShadow(SystemFont_Shadow_Small)
  36.     FixFontShadow(SystemFont_Small)
  37.     FixFontShadow(SystemFont_Tiny)
  38.     FixFontShadow(ReputationDetailFont)
  39.     FixFontShadow(ItemTextFontNormal)
  40.     FixFontShadow(DialogButtonNormalText)
  41.     FixFontShadow(InvoiceTextFontNormal)
  42.     FixFontShadow(InvoiceTextFontSmall)
  43.     FixFontShadow(MailTextFontNormal)
  44.     FixFontShadow(GameFontHighlightSmall)
  45.     FixFontShadow(GameFontNormalSmall)
  46.     FixFontShadow(GameFontNormalSmall2)
  47.     FixFontShadow(GameFontDisableSmall)
  48.     FixFontShadow(GameFontNormalHuge)
  49.     FixFontShadow(GameFontNormalLarge)
  50.     FixFontShadow(GameFontHighlight)
  51.     FixFontShadow(GameFontDisable)
  52.     FixFontShadow(GameFontNormal)
  53.     FixFontShadow(GameFontBlackMedium)
  54.     FixFontShadow(GameFontHighlightMedium)
  55.     FixFontShadow(SubSpellFont)
  56.     FixFontShadow(NumberFontNormalSmall)
  57.     FixFontShadow(NumberFontNormal)
  58.     FixFontShadow(NumberFontNormalLarge)
  59.     FixFontShadow(NumberFontNormalHuge)
  60.     FixFontShadow(WorldMapTextFont)
  61.     FixFontShadow(MovieSubtitleFont)
  62.     FixFontShadow(AchievementPointsFont)
  63.     FixFontShadow(AchievementPointsFontSmall)
  64.     FixFontShadow(AchievementDateFont)
  65.     FixFontShadow(AchievementCriteriaFont)
  66.     FixFontShadow(AchievementDescriptionFont)
  67.     FixFontShadow(FriendsFont_Large)
  68.     FixFontShadow(FriendsFont_Normal)
  69.     FixFontShadow(FriendsFont_Small)
  70.     FixFontShadow(FriendsFont_UserText)
  71.     FixFontShadow(GameTooltipHeaderText)
  72.     FixFontShadow(GameTooltipText)
  73.     FixFontShadow(GameTooltipTextSmall)
  74.     FixFontShadow(ZoneTextString)
  75.     FixFontShadow(SubZoneTextString)
  76.     FixFontShadow(PVPInfoTextString)
  77.     FixFontShadow(PVPArenaTextString)
  78.     FixFontShadow(CombatTextFont)
  79.     FixFontShadow(BackpackTokenFrameToken1Count)
  80.     FixFontShadow(BackpackTokenFrameToken2Count)
  81.     FixFontShadow(BackpackTokenFrameToken3Count)
  82.     FixFontShadow(QuestFontHighlight)
  83.     FixFontShadow(QuestFontNormalSmall)
  84.     FixFontShadow(QuestTitleFont)
  85.     FixFontShadow(QuestFont)
  86.     FixFontShadow(QuestFont_Large)
  87.     FixFontShadow(QuestTitleFontBlackShadow)
  88.     FixFontShadow(QuestFont_Super_Huge)
  89.     FixFontShadow(HelpFrameKnowledgebaseNavBarHomeButtonText)
  90.     FixFontShadow(GameFont_Gigantic)
  91.     FixFontShadow(CoreAbilityFont)
  92.     FixFontShadow(DestinyFontHuge)
  93.     FixFontShadow(DestinyFontLarge)
  94.     FixFontShadow(InvoiceFont_Small)
  95.     FixFontShadow(InvoiceFont_Med)
  96.     FixFontShadow(MailFont_Large)
  97.     FixFontShadow(QuestFont_Shadow_Small)
  98.     FixFontShadow(QuestFont_Shadow_Huge)
  99.     FixFontShadow(QuestFont_Huge)
  100.     FixFontShadow(QuestFont_Enormous)
  101.     FixFontShadow(SpellFont_Small)
  102.     FixFontShadow(SystemFont_Huge1)
  103.     FixFontShadow(SystemFont_OutlineThick_WTF)
  104.     FixFontShadow(SystemFont_OutlineThick_Huge2)
  105.     FixFontShadow(SystemFont_OutlineThick_Huge4)
  106.     FixFontShadow(SystemFont_Outline)
  107.     FixFontShadow(SystemFont_Shadow_Large_Outline)
  108.     FixFontShadow(SystemFont_Shadow_Large2)
  109.     FixFontShadow(SystemFont_Shadow_Med2)
  110.     FixFontShadow(SystemFont_Shadow_Huge2)
  111.     FixFontShadow(SystemFont_Small2)
  112.     FixFontShadow(Tooltip_Med)
  113.     FixFontShadow(Tooltip_Small)
  114.     -----
  115.     FixFontShadow(GameFontNormalMed3)
  116.     FixFontShadow(GameFontNormalHuge2)
  117.     FixFontShadow(GameFontNormalLarge2)
  118.     FixFontShadow(Game30Font)
  119.     FixFontShadow(Game24Font)
  120.     FixFontShadow(Game20Font)
  121.     FixFontShadow(Game18Font)
  122.     FixFontShadow(Fancy24Font) -- e.g. Weekly best @ ChallengesFrame
  123.     FixFontShadow(Fancy16Font)         
  124.     FixFontShadow(Fancy48Font)
  125.     FixFontShadow(Fancy22Font) -- e.g. TalkingHeadFrame TitleFont
  126.     FixFontShadow(Fancy32Font)
  127.     FixFontShadow(SystemFont_LargeNamePlate)
  128.     FixFontShadow(SystemFont_NamePlate)
  129.     FixFontShadow(SystemFont_LargeNamePlateFixed)
  130.     FixFontShadow(SystemFont_NamePlateFixed)
  131.     FixFontShadow(WhiteNormalNumberFont)    -- font shown at tradeskill skillbars
  132.     FixFontShadow(PVPInfoTextFont)
  133.     FixFontShadow(ChatFrame1EditBox)    -- chateditbox input text
  134.     FixFontShadow(ChatFrame1EditBoxHeader)  -- chateditbox say/whisper/guild text
  135.     FixFontShadow(GameTooltipHeader)    -- dungeon journal suggestion font
  136.  
  137.     f:SetScript("OnEvent", nil) -- not sure if this helps saving memory
  138.     f = nil -- not sure if this helps saving memory
  139. end)
  140.  
  141. -- some addon fontstrings need this
  142. local proto = getmetatable(f:CreateFontString()).__index
  143. hooksecurefunc(proto, "SetShadowOffset", function(self, x, y)
  144.     if y > -2 and y < 0 then
  145.         self:SetShadowOffset(x, -2)
  146.     end
  147. end)
  148. hooksecurefunc(proto, "SetFontObject", function(self, ...)
  149.     self:SetShadowOffset(self:GetShadowOffset())
  150. end)

Last edited by Voyager : 10-28-16 at 08:15 PM. Reason: Added code to fix some custom addon fonts that were ignored
 
10-29-16, 07:49 AM   #9
eiszeit
A Chromatic Dragonspawn
 
eiszeit's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2007
Posts: 154
Hm, on my resolution and display I had to set it to -3 instead of -2.
__________________
Lyn • I'm a mess of unfinished thoughts
 
10-30-16, 08:13 AM   #10
Tonyleila
A Molten Giant
 
Tonyleila's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 758
So.. Is this maybe a task for BlizzBugsSuck?
__________________
Author of: LeilaUI and Aurora: Missing Textures
__________________
 
10-30-16, 10:23 AM   #11
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,290
This bug is depends on a lot of things, mostly when the font's parent itself is not positioned on an even value, or the font itself has a fracture in it's position, but also custom ui parent scale or resolution aspect ratio has to do with this too and of the font's parent scale itself too.
 
10-31-16, 09:04 AM   #12
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,617
Originally Posted by Tonyleila View Post
So.. Is this maybe a task for BlizzBugsSuck?
No, definitely not. The amount of code required to go through all the font objects in the game and modify them would about double the size of BBS, and still wouldn't fix the problem in all cases -- occasionally Blizz creates font strings that don't inherit from a font object, and addons frequently create font strings that don't inherit from a font object. Plus, while it can be sort-of-fixed in the UI, it's not actually a UI bug; it's a graphics engine bug.

(Anecdotally, while I read this thread days ago, I didn't even notice the bug while doing a bit of addon work over the last few hours. After seeing this thread again, I launched the game again, and the bug is indeed present. If I didn't notice it, chances are the average user wouldn't even notice it if you specifically asked them to look for it. )
__________________
Retired author of too many addons.
Message me if you're interested in taking over one of my addons.
Don’t message me about addon bugs or programming questions.
 
10-31-16, 10:56 AM   #13
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 1,740
I only noticed it because my chat looked odd and unreadable.
__________________
| Simple is beautiful.
| WoWI AddOns | GitHub | Zork (WoW)

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)
 
11-03-16, 08:26 PM   #14
sezz
A Chromatic Dragonspawn
AddOn Author - Click to view addons
Join Date: Apr 2008
Posts: 158
Fixed
 
11-04-16, 02:42 AM   #15
Aftermathhqt
A Molten Giant
 
Aftermathhqt's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2009
Posts: 784
Hotfixed today
 
11-07-16, 05:10 AM   #16
Translitdk
A Kobold Labourer
Join Date: Nov 2016
Posts: 1
After this hotfix my floating combat text outlines moved very far.
http://image.prntscr.com/image/49b57...49c6513bec.png

Is there way to move it byhand like you did?
 
11-07-16, 09:49 AM   #17
Aftermathhqt
A Molten Giant
 
Aftermathhqt's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2009
Posts: 784
Originally Posted by Translitdk View Post
After this hotfix my floating combat text outlines moved very far.
http://image.prntscr.com/image/49b57...49c6513bec.png

Is there way to move it byhand like you did?
I noticed this too it's annoying
 
11-11-16, 03:36 PM   #18
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,290
From the recent Q&A:

The way the anchoring system works causes floating point errors all over, so there are lots of textures in the UI that are half of a pixel off. The UI designers manually tweak things in the XML to get it looking crisp again.
 
 

WoWInterface » Site Forums » Archived Beta Forums » Legion Beta archived threads » [7.1] Font drop shadow off by 1px on y-axis

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off