Skip to content

Commit b5bc004

Browse files
author
Unity Technologies
committed
Unity 2017.1.2p3 C# reference source code
1 parent 451ec82 commit b5bc004

File tree

14 files changed

+170
-22
lines changed

14 files changed

+170
-22
lines changed

Editor/Mono/2D/Common/TexturePlatformSettingsFormatHelper.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public void AcquireTextureFormatValuesAndStrings(BuildTarget buildTarget, out in
4141
formatValues = TextureImportPlatformSettings.kTextureFormatsValueWiiU;
4242
formatStrings = TextureImporterInspector.s_TextureFormatStringsWiiU;
4343
}
44+
else if (buildTarget == BuildTarget.PSP2)
45+
{
46+
formatValues = TextureImportPlatformSettings.kTextureFormatsValuePSP2;
47+
formatStrings = TextureImporterInspector.s_TextureFormatStringsPSP2;
48+
}
4449
else
4550
{
4651
formatValues = TextureImportPlatformSettings.kTextureFormatsValueDefault;

Editor/Mono/2D/SpriteAtlas/SpriteAtlasInspector.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ class Styles
6464
public readonly GUIContent disabledPackLabel = EditorGUIUtility.TextContent("Sprite Atlas packing is disabled. Enable it in Edit > Project Settings > Editor.");
6565
public readonly GUIContent packableListLabel = EditorGUIUtility.TextContent("Objects for Packing|Only accept Folder, Sprite Sheet(Texture) and Sprite.");
6666

67+
public readonly GUIContent notPowerOfTwoWarning = EditorGUIUtility.TextContent("This scale will produce a Sprite Atlas variant with a packed texture that is NPOT (non - power of two). This may cause visual artifacts in certain compression/texture formats.");
68+
6769
public readonly GUIContent smallZoom = EditorGUIUtility.IconContent("PreTextureMipMapLow");
6870
public readonly GUIContent largeZoom = EditorGUIUtility.IconContent("PreTextureMipMapHigh");
6971
public readonly GUIContent alphaIcon = EditorGUIUtility.IconContent("PreTextureAlpha");
@@ -188,7 +190,6 @@ void OnEnable()
188190
m_EnableRotation = serializedObject.FindProperty("m_EditorData.packingParameters.enableRotation");
189191
m_Padding = serializedObject.FindProperty("m_EditorData.packingParameters.padding");
190192

191-
m_Hash = serializedObject.FindProperty("m_EditorData.hashString").stringValue;
192193
m_MasterAtlas = serializedObject.FindProperty("m_MasterAtlas");
193194
m_BindAsDefault = serializedObject.FindProperty("m_EditorData.bindAsDefault");
194195
m_VariantMultiplier = serializedObject.FindProperty("m_EditorData.variantMultiplier");
@@ -383,6 +384,10 @@ private void HandleVariantSettingUI()
383384
{
384385
EditorGUILayout.LabelField(s_Styles.variantSettingLabel, EditorStyles.boldLabel);
385386
EditorGUILayout.PropertyField(m_VariantMultiplier, s_Styles.variantMultiplierLabel);
387+
388+
// Test if the multiplier scale a power of two size (1024) into another power of 2 size.
389+
if (!Mathf.IsPowerOfTwo((int)(m_VariantMultiplier.floatValue * 1024)))
390+
EditorGUILayout.HelpBox(s_Styles.notPowerOfTwoWarning.text, MessageType.Warning, true);
386391
}
387392

388393
private void HandleBoolToIntPropertyField(SerializedProperty prop, GUIContent content)

Editor/Mono/ImportSettings/TextureImportPlatformSettings.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ public bool SupportsFormat(TextureImporterFormat format, TextureImporter importe
163163
case BuildTarget.WiiU:
164164
testValues = kTextureFormatsValueWiiU;
165165
break;
166+
case BuildTarget.PSP2:
167+
testValues = kTextureFormatsValuePSP2;
168+
break;
166169
// on gles mobile targets we use rgb normal maps, so we can use whatever format we want
167170
case BuildTarget.iOS:
168171
case BuildTarget.tvOS:
@@ -300,6 +303,18 @@ public void Apply()
300303
(int)TextureImporterFormat.RGBA16, // R4G4B4A4
301304
};
302305

306+
public static readonly int[] kTextureFormatsValuePSP2 =
307+
{
308+
(int)TextureImporterFormat.DXT1,
309+
(int)TextureImporterFormat.DXT5,
310+
(int)TextureImporterFormat.RGB16,
311+
(int)TextureImporterFormat.RGB24,
312+
(int)TextureImporterFormat.RGBA16,
313+
(int)TextureImporterFormat.RGBA32,
314+
(int)TextureImporterFormat.Alpha8,
315+
(int)TextureImporterFormat.RGBAHalf,
316+
};
317+
303318
public static readonly int[] kTextureFormatsValueApplePVR =
304319
{
305320
(int)TextureImporterFormat.PVRTC_RGB2,

Editor/Mono/ImportSettings/TextureImporterInspector.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ internal static int[] NormalFormatsValueAll
350350

351351
internal static string[] s_TextureFormatStringsAll;
352352
internal static string[] s_TextureFormatStringsWiiU;
353+
internal static string[] s_TextureFormatStringsPSP2;
353354
internal static string[] s_TextureFormatStringsWebGL;
354355
internal static string[] s_TextureFormatStringsApplePVR;
355356
internal static string[] s_TextureFormatStringsAndroid;
@@ -1463,6 +1464,8 @@ internal static void InitializeTextureFormatStrings()
14631464
s_TextureFormatStringsWebGL = TextureImporterInspector.BuildTextureStrings(TextureImportPlatformSettings.kTextureFormatsValueWebGL);
14641465
if (s_TextureFormatStringsWiiU == null)
14651466
s_TextureFormatStringsWiiU = TextureImporterInspector.BuildTextureStrings(TextureImportPlatformSettings.kTextureFormatsValueWiiU);
1467+
if (s_TextureFormatStringsPSP2 == null)
1468+
s_TextureFormatStringsPSP2 = TextureImporterInspector.BuildTextureStrings(TextureImportPlatformSettings.kTextureFormatsValuePSP2);
14661469
if (s_TextureFormatStringsDefault == null)
14671470
s_TextureFormatStringsDefault = TextureImporterInspector.BuildTextureStrings(TextureImportPlatformSettings.kTextureFormatsValueDefault);
14681471
if (s_NormalFormatStringsDefault == null)

Editor/Mono/Inspector/InspectorWindow.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -646,9 +646,11 @@ private void DrawPreviewAndLabels()
646646
if (editorsWithPreviews.Length > 1)
647647
{
648648
Vector2 foldoutSize = styles.preDropDown.CalcSize(title);
649-
Rect foldoutRect = new Rect(dragRect.x, dragRect.y, foldoutSize.x, foldoutSize.y);
650-
dragRect.xMin += foldoutSize.x;
651-
dragIconRect.xMin += foldoutSize.x;
649+
float maxFoldoutWidth = (dragIconRect.xMax - dragRect.xMin) - dragPadding - minDragWidth;
650+
float foldoutWidth = Mathf.Min(maxFoldoutWidth, foldoutSize.x);
651+
Rect foldoutRect = new Rect(dragRect.x, dragRect.y, foldoutWidth, foldoutSize.y);
652+
dragRect.xMin += foldoutWidth;
653+
dragIconRect.xMin += foldoutWidth;
652654

653655
GUIContent[] panelOptions = new GUIContent[editorsWithPreviews.Length];
654656
int selectedPreview = -1;

Editor/Mono/Modules/DefaultTextureImportSettingsExtension.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,11 @@ public virtual void ShowImportSettings(Editor baseEditor, TextureImportPlatformS
148148
formatValues = TextureImportPlatformSettings.kTextureFormatsValueWiiU;
149149
formatStrings = TextureImporterInspector.s_TextureFormatStringsWiiU;
150150
}
151+
else if (platformSettings.m_Target == BuildTarget.PSP2)
152+
{
153+
formatValues = TextureImportPlatformSettings.kTextureFormatsValuePSP2;
154+
formatStrings = TextureImporterInspector.s_TextureFormatStringsPSP2;
155+
}
151156
else
152157
{
153158
formatValues = TextureImportPlatformSettings.kTextureFormatsValueDefault;

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Unity 2017.1.2p2 C# reference source code
1+
## Unity 2017.1.2p3 C# reference source code
22

33
The C# part of the Unity engine and editor source code.
44
May be used for reference purposes only.

Runtime/WebRequest/Managed/WebRequestExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public static UnityWebRequest Post(string uri, string postData)
133133
byte[] payload = null;
134134
if (!string.IsNullOrEmpty(postData))
135135
{
136-
string urlencoded = WWWTranscoder.URLEncode(postData, System.Text.Encoding.UTF8);
136+
string urlencoded = WWWTranscoder.DataEncode(postData, System.Text.Encoding.UTF8);
137137
payload = System.Text.Encoding.UTF8.GetBytes(urlencoded);
138138
}
139139

@@ -293,7 +293,7 @@ public static byte[] SerializeSimpleForm(Dictionary<string, string> formFields)
293293
foreach (KeyValuePair<string, string> pair in formFields)
294294
{
295295
if (queryString.Length > 0) { queryString += "&"; }
296-
queryString += System.Uri.EscapeDataString(pair.Key) + "=" + System.Uri.EscapeDataString(pair.Value);
296+
queryString += WWWTranscoder.DataEncode(pair.Key) + "=" + WWWTranscoder.DataEncode(pair.Value);
297297
}
298298
return System.Text.Encoding.UTF8.GetBytes(queryString);
299299
}

Runtime/WebRequest/Managed/WebRequestUtils.cs

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,9 @@ public byte[] data
212212
{
213213
for (int i = 0; i < formData.Count; i++)
214214
{
215-
byte[] name = WWWTranscoder.URLEncode(System.Text.Encoding.UTF8.GetBytes((string)fieldNames[i]));
215+
byte[] name = WWWTranscoder.DataEncode(System.Text.Encoding.UTF8.GetBytes((string)fieldNames[i]));
216216
byte[] formBytes = (byte[])formData[i];
217-
byte[] value = WWWTranscoder.URLEncode(formBytes);
217+
byte[] value = WWWTranscoder.DataEncode(formBytes);
218218

219219
if (i > 0) memStream.Write(ampersand, 0, (int)ampersand.Length);
220220
memStream.Write(name, 0, (int)name.Length);
@@ -234,10 +234,11 @@ internal class WWWTranscoder
234234
private static byte[] ucHexChars = WWWForm.DefaultEncoding.GetBytes("0123456789ABCDEF");
235235
private static byte[] lcHexChars = WWWForm.DefaultEncoding.GetBytes("0123456789abcdef");
236236
private static byte urlEscapeChar = (byte)'%';
237-
private static byte urlSpace = (byte)'+';
237+
private static byte[] urlSpace = new byte[] { (byte)'+' };
238+
private static byte[] dataSpace = WWWForm.DefaultEncoding.GetBytes("%20");
238239
private static byte[] urlForbidden = WWWForm.DefaultEncoding.GetBytes("@&;:<>=?\"'/\\!#%+$,{}|^[]`");
239240
private static byte qpEscapeChar = (byte)'=';
240-
private static byte qpSpace = (byte)'_';
241+
private static byte[] qpSpace = new byte[] { (byte)'_' };
241242
private static byte[] qpForbidden = WWWForm.DefaultEncoding.GetBytes("&;=?\"'%+_");
242243

243244
private static byte Hex2Byte(byte[] b, int offset)
@@ -290,6 +291,22 @@ public static byte[] URLEncode(byte[] toEncode)
290291
return Encode(toEncode, urlEscapeChar, urlSpace, urlForbidden, false);
291292
}
292293

294+
public static string DataEncode(string toEncode)
295+
{
296+
return DataEncode(toEncode, Encoding.UTF8);
297+
}
298+
299+
public static string DataEncode(string toEncode, Encoding e)
300+
{
301+
byte[] data = Encode(e.GetBytes(toEncode), urlEscapeChar, dataSpace, urlForbidden, false);
302+
return WWWForm.DefaultEncoding.GetString(data, 0, data.Length);
303+
}
304+
305+
public static byte[] DataEncode(byte[] toEncode)
306+
{
307+
return Encode(toEncode, urlEscapeChar, dataSpace, urlForbidden, false);
308+
}
309+
293310
public static string QPEncode(string toEncode)
294311
{
295312
return QPEncode(toEncode, Encoding.UTF8);
@@ -306,7 +323,7 @@ public static byte[] QPEncode(byte[] toEncode)
306323
return Encode(toEncode, qpEscapeChar, qpSpace, qpForbidden, true);
307324
}
308325

309-
public static byte[] Encode(byte[] input, byte escapeChar, byte space, byte[] forbidden, bool uppercase)
326+
public static byte[] Encode(byte[] input, byte escapeChar, byte[] space, byte[] forbidden, bool uppercase)
310327
{
311328
using (MemoryStream memStream = new MemoryStream(input.Length * 2))
312329
{
@@ -315,7 +332,7 @@ public static byte[] Encode(byte[] input, byte escapeChar, byte space, byte[] fo
315332
{
316333
if (input[i] == 32)
317334
{
318-
memStream.WriteByte(space);
335+
memStream.Write(space, 0, space.Length);
319336
}
320337
else if (input[i] < 32 || input[i] > 126 || ByteArrayContains(forbidden, input[i]))
321338
{
@@ -361,6 +378,22 @@ public static byte[] URLDecode(byte[] toEncode)
361378
return Decode(toEncode, urlEscapeChar, urlSpace);
362379
}
363380

381+
public static string DataDecode(string toDecode)
382+
{
383+
return DataDecode(toDecode, Encoding.UTF8);
384+
}
385+
386+
public static string DataDecode(string toDecode, Encoding e)
387+
{
388+
byte[] data = Decode(WWWForm.DefaultEncoding.GetBytes(toDecode), urlEscapeChar, dataSpace);
389+
return e.GetString(data, 0, data.Length);
390+
}
391+
392+
public static byte[] DataDecode(byte[] toDecode)
393+
{
394+
return Decode(toDecode, urlEscapeChar, dataSpace);
395+
}
396+
364397
public static string QPDecode(string toEncode)
365398
{
366399
return QPDecode(toEncode, Encoding.UTF8);
@@ -377,15 +410,26 @@ public static byte[] QPDecode(byte[] toEncode)
377410
return Decode(toEncode, qpEscapeChar, qpSpace);
378411
}
379412

380-
public static byte[] Decode(byte[] input, byte escapeChar, byte space)
413+
private static bool ByteSubArrayEquals(byte[] array, int index, byte[] comperand)
414+
{
415+
if (array.Length - index < comperand.Length)
416+
return false;
417+
for (int i = 0; i < comperand.Length; ++i)
418+
if (array[index + i] != comperand[i])
419+
return false;
420+
return true;
421+
}
422+
423+
public static byte[] Decode(byte[] input, byte escapeChar, byte[] space)
381424
{
382425
using (MemoryStream memStream = new MemoryStream(input.Length))
383426
{
384427
// decode
385428
for (int i = 0; i < input.Length; i++)
386429
{
387-
if (input[i] == space)
430+
if (ByteSubArrayEquals(input, i, space))
388431
{
432+
i += space.Length - 1;
389433
memStream.WriteByte((byte)32);
390434
}
391435
else if (input[i] == escapeChar && i + 2 < input.Length)

Runtime/WebRequestWWW/UWRWWW.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public Dictionary<string, string> responseHeaders
152152
get
153153
{
154154
if (!isDone || _uwr.isNetworkError)
155-
return null;
155+
return new Dictionary<string, string>();
156156
if (_responseHeaders == null)
157157
{
158158
_responseHeaders = _uwr.GetResponseHeaders();

0 commit comments

Comments
 (0)