//bilt public void SetTexture(string path, Texture _texture, OnCallBackMetRect callback) { if (_texture == null || _texture.width > mWidth || _texture.height > mHeight)//不符合规格 { if (callback != null) { callback(null, new Rect(0, 0, 0, 0), path);//完成一个任务,就回调一个任务 } Debug.Log("Texture Does not meet the standard:" + path); return; } if (_usingRect.ContainsKey(path)) { if (callback != null) { SaveImageData imagedata = _usingRect[path]; imagedata.referenceCount++; Material material = m_MaterialList[imagedata.texIndex]; callback(material, _usingRect[path].rect, path); } return; } GetImageData data = DynamicAtlasManager.Instance.AllocateGetImageData(); data.path = path; data.BlitCallback = callback; mGetImageTasks.Add(data); Texture2D tex = (Texture2D)_texture; OnRenderTexture(path, tex, null); }
//bilt public void SetTexture(string path, Texture _texture, OnCallBackMetRect callback) { if (_texture == null || _texture.width > mWidth || _texture.height > mHeight)//不符合规格 { if (callback != null) { callback(null, new Rect(0, 0, 0, 0), path);//完成一个任务,就回调一个任务 } Debug.Log("Texture Does not meet the standard:" + path); return; } if (_usingRect.ContainsKey(path)) { if (callback != null) { SaveImageData imagedata = _usingRect[path]; imagedata.referenceCount++; Material material = m_MaterialList[imagedata.texIndex]; callback(material, _usingRect[path].rect, path); } return; } Texture2D tex = (Texture2D)_texture; OnLoadRenderTexture(path, tex, null, callback); }
//bilt public void GetImage(string path, OnCallBackMetRect callback) { if (_usingRect.ContainsKey(path)) { if (callback != null) { SaveImageData imagedata = _usingRect[path]; imagedata.referenceCount++; Material material = m_MaterialList[imagedata.texIndex]; callback(material, _usingRect[path].rect, path); } return; } LoadImageAsync(path, null, callback); }
void LoadImageAsync(string path, OnCallBackTexRect callback = null, OnCallBackMetRect BlitCallback = null) { GetImageData data; if (mGetImageTaskDic.TryGetValue(path, out data)) { data.callback += callback; data.BlitCallback += BlitCallback; } else { data = AllocateGetImageData(path, callback, null); var ao = Addressables.LoadAssetAsync <Texture2D>(data.path); ao.Completed += handle => { Texture2D texture2D = handle.Result as Texture2D; OnRenderTexture(path, texture2D); Addressables.Release(handle); }; } }
//bilt public void GetImage(string path, OnCallBackMetRect callback) { if (_usingRect.ContainsKey(path)) { if (callback != null) { SaveImageData imagedata = _usingRect[path]; imagedata.referenceCount++; Material material = m_MaterialList[imagedata.texIndex]; callback(material, _usingRect[path].rect, path); } return; } GetImageData data = DynamicAtlasManager.Instance.AllocateGetImageData(); data.path = path; data.BlitCallback = callback; mGetImageTasks.Add(data); if (mGetImageTasks.Count > 1) { return; } OnGetImage(); }
void OnLoadRenderTexture(string path, Texture2D tex, OnCallBackTexRect callback = null, OnCallBackMetRect BlitCallback = null) { GetImageData data; if (mGetImageTaskDic.TryGetValue(path, out data)) { data.callback += callback; data.BlitCallback += BlitCallback; } else { AllocateGetImageData(path, callback, null); } OnRenderTexture(path, tex); }
private GetImageData AllocateGetImageData(string path, OnCallBackTexRect callback = null, OnCallBackMetRect BlitCallback = null) { GetImageData data = DynamicAtlasManager.Instance.AllocateGetImageData(); data.path = path; data.callback = callback; data.BlitCallback = BlitCallback; mGetImageTaskDic.Add(path, data); return(data); }