1
NGUI 3 Support / Re: Packed Font Shader With Outline help
« on: June 24, 2014, 04:37:29 AM »
Hi,
All codes below are base on NGUI v3.6.5
edit your UILabel & NGUIText & UILabelInspector like this:
I want you to support officially.
In UILabel.cs
1. ApplyShadow(...) modify like this:
2. comment (mFont == null || !mFont.packedFontShader) in OnFill() and UpdateNGUIText()
In NGUIText.cs
1, before "// Packed fonts come as alpha masks in each of the RGBA channels." add the code below:
In UILabelInspector.cs
1. comment like this.
All codes below are base on NGUI v3.6.5
edit your UILabel & NGUIText & UILabelInspector like this:
I want you to support officially.
In UILabel.cs
1. ApplyShadow(...) modify like this:
- if (mFont != null && mFont.packedFontShader)
- {
- Color32 packedCol = c * 0.49f;
- if (cols.buffer[i].r >= 130) { packedCol.r += 130; }
- else if (cols.buffer[i].g >= 130) { packedCol.g += 130; }
- else if (cols.buffer[i].b >= 130) { packedCol.b += 130; }
- else if (cols.buffer[i].a >= 130) { packedCol.a += 130; }
- col = packedCol;
- cols.buffer[i] = col;
- }
- else
- {
- if (uc.a == 255)
- {
- cols.buffer[i] = col;
- }
- else
- {
- Color fc = c;
- fc.a = (uc.a / 255f * c.a);
- cols.buffer[i] = (bitmapFont != null && bitmapFont.premultipliedAlphaShader) ? NGUITools.ApplyPMA(fc) : fc;
- }
- }
2. comment (mFont == null || !mFont.packedFontShader) in OnFill() and UpdateNGUIText()
In NGUIText.cs
1, before "// Packed fonts come as alpha masks in each of the RGBA channels." add the code below:
- if (gradient)
- {
- float min = sizePD + y0 / fontScale;
- float max = sizePD + y1 / fontScale;
- min /= sizePD;
- max /= sizePD;
- s_c0 = Color.Lerp(gb, gt, min);
- s_c1 = Color.Lerp(gb, gt, max);
- Color col_c0 = s_c0;
- Color col_c1 = s_c1;
- col_c0 *= 0.49f;
- col_c1 *= 0.49f;
- switch (glyph.channel)
- {
- case 1: col_c0.b += 0.51f; col_c1.b += 0.51f; break;
- case 2: col_c0.g += 0.51f; col_c1.g += 0.51f; break;
- case 4: col_c0.r += 0.51f; col_c1.r += 0.51f; break;
- case 8: col_c0.a += 0.51f; col_c1.a += 0.51f; break;
- }
- s_c0 = col_c0;
- s_c1 = col_c1;
- for (int j = 0, jmax = (bold ? 4 : 1); j < jmax; ++j)
- {
- cols.Add(s_c0);
- cols.Add(s_c1);
- cols.Add(s_c1);
- cols.Add(s_c0);
- }
- }
- else
- {
- Color col = uc;
- col *= 0.49f;
- switch (glyph.channel)
- {
- case 1: col.b += 0.51f; break;
- case 2: col.g += 0.51f; break;
- case 4: col.r += 0.51f; break;
- case 8: col.a += 0.51f; break;
- }
- Color32 c = col;
- for (int j = 0, jmax = (bold ? 16 : 4); j < jmax; ++j)
- cols.Add(c);
- }
In UILabelInspector.cs
1. comment like this.
- line 218 //EditorGUI.BeginDisabledGroup(mLabel.bitmapFont != null && mLabel.bitmapFont.packedFontShader);
- line 265 //EditorGUI.EndDisabledGroup();
