Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - maru83

Pages: [1]
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:
  1. if (mFont != null && mFont.packedFontShader)
  2. {
  3.         Color32 packedCol = c * 0.49f;
  4.         if              (cols.buffer[i].r >= 130) { packedCol.r += 130; }
  5.         else if (cols.buffer[i].g >= 130) { packedCol.g += 130; }
  6.         else if (cols.buffer[i].b >= 130) { packedCol.b += 130; }
  7.         else if (cols.buffer[i].a >= 130) { packedCol.a += 130; }
  8.         col = packedCol;
  9.         cols.buffer[i] = col;
  10. }
  11. else
  12. {
  13.         if (uc.a == 255)
  14.         {
  15.                 cols.buffer[i] = col;
  16.         }
  17.         else
  18.         {
  19.                 Color fc = c;
  20.                 fc.a = (uc.a / 255f * c.a);
  21.                 cols.buffer[i] = (bitmapFont != null && bitmapFont.premultipliedAlphaShader) ? NGUITools.ApplyPMA(fc) : fc;
  22.         }
  23. }
  24.  

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:
  1. if (gradient)
  2. {
  3.         float min = sizePD + y0 / fontScale;
  4.         float max = sizePD + y1 / fontScale;
  5.  
  6.         min /= sizePD;
  7.         max /= sizePD;
  8.  
  9.         s_c0 = Color.Lerp(gb, gt, min);
  10.         s_c1 = Color.Lerp(gb, gt, max);
  11.  
  12.         Color col_c0 = s_c0;
  13.         Color col_c1 = s_c1;
  14.  
  15.         col_c0 *= 0.49f;
  16.         col_c1 *= 0.49f;
  17.  
  18.         switch (glyph.channel)
  19.         {
  20.                 case 1: col_c0.b += 0.51f; col_c1.b += 0.51f; break;
  21.                 case 2: col_c0.g += 0.51f; col_c1.g += 0.51f; break;
  22.                 case 4: col_c0.r += 0.51f; col_c1.r += 0.51f; break;
  23.                 case 8: col_c0.a += 0.51f; col_c1.a += 0.51f; break;
  24.         }
  25.        
  26.         s_c0 = col_c0;
  27.         s_c1 = col_c1;
  28.         for (int j = 0, jmax = (bold ? 4 : 1); j < jmax; ++j)
  29.         {
  30.                 cols.Add(s_c0);
  31.                 cols.Add(s_c1);
  32.                 cols.Add(s_c1);
  33.                 cols.Add(s_c0);
  34.         }
  35. }
  36. else
  37. {
  38.         Color col = uc;
  39.  
  40.         col *= 0.49f;
  41.  
  42.         switch (glyph.channel)
  43.         {
  44.                 case 1: col.b += 0.51f; break;
  45.                 case 2: col.g += 0.51f; break;
  46.                 case 4: col.r += 0.51f; break;
  47.                 case 8: col.a += 0.51f; break;
  48.         }
  49.  
  50.         Color32 c = col;
  51.         for (int j = 0, jmax = (bold ? 16 : 4); j < jmax; ++j)
  52.                 cols.Add(c);
  53. }
  54.  

In UILabelInspector.cs

1. comment like this.
  1. line 218        //EditorGUI.BeginDisabledGroup(mLabel.bitmapFont != null && mLabel.bitmapFont.packedFontShader);
  2. line 265        //EditorGUI.EndDisabledGroup();
  3.  

Pages: [1]