//copytexture public void SetTexture(string path, Texture _texture, OnCallBackTexRect 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++; Texture2D tex2D = m_tex2DList[imagedata.texIndex]; callback(tex2D, _usingRect[path].rect, path); } return; } GetImageData data = DynamicAtlasManager.Instance.AllocateGetImageData(); data.path = path; data.callback = callback; mGetImageTasks.Add(data); Texture2D tex = (Texture2D)_texture; OnRenderTexture(path, tex, null); }
internal void UpdateValues() { var data = GetImageData.RetrieveData(Pics[FolderIndex]); FilenameBox.Text = data[0]; FolderBox.Text = data[1]; FullPathBox.Text = data[2]; CreatedBox.Text = data[3]; ModifiedBox.Text = data[4]; SizePxBox.Text = data[5]; ResolutionBox.Text = data[6]; BitDepthBox.Text = data[7]; SizeMpBox.Text = data[8]; PrintSizeCmBox.Text = data[9]; PrintSizeInBox.Text = data[10]; AspectRatioBox.Text = data[11]; }
public FileContentResult ImageLoad(string path) { string fileName = this.HttpContext.Server.MapPath(path); byte[] imageData = GetImageData.GetIamge(fileName); return(this.File(imageData, "image/png")); }
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); }
public GetImageData AllocateGetImageData() { if (mGetImageDataStack.Count > 0) { GetImageData popData = mGetImageDataStack.Pop(); return(popData); } GetImageData data = new GetImageData(); return(data); }
void CallBackNull(GetImageData item, string path) { if (AtlasConfig.kUsingCopyTexture) { if (item.callback != null) { item.callback(null, new Rect(0, 0, 0, 0), path);//完成一个任务,就回调一个任务 } } else { if (item.BlitCallback != null) { item.BlitCallback(null, new Rect(0, 0, 0, 0), path);//完成一个任务,就回调一个任务 } } }
void OnGetImage() { if (mGetImageTasks.Count == 0) { return; } GetImageData imageData = mGetImageTasks[0]; ResourcesManager.Instance.LoadResAsync(imageData.path, (string newPath, Object obj) => { Texture2D data = null; if (obj != null) { data = (Texture2D)obj; } OnRenderTexture(newPath, data, imageData); OnGetImage(); }); }
//copytexture public void GetImage(string path, OnCallBackTexRect callback) { if (_usingRect.ContainsKey(path)) { if (callback != null) { SaveImageData imagedata = _usingRect[path]; imagedata.referenceCount++; Texture2D tex2D = m_tex2DList[imagedata.texIndex]; callback(tex2D, _usingRect[path].rect, path); } return; } GetImageData data = DynamicAtlasManager.Instance.AllocateGetImageData(); data.path = path; data.callback = callback; mGetImageTasks.Add(data); if (mGetImageTasks.Count > 1) { return; } OnGetImage(); }
public void ReleaseGetImageData(GetImageData data) { mGetImageDataStack.Add(data); }
void OnRenderTexture(string path, Texture2D data, GetImageData imageData) { if (data == null) { for (int i = mGetImageTasks.Count - 1; i >= 0; i--) { GetImageData item = mGetImageTasks[i]; if (item.path.Equals(path)) { if (item.callback != null) { item.callback(null, new Rect(0, 0, 0, 0), path); } if (AtlasConfig.kUsingCopyTexture) { if (item.callback != null) { item.callback(null, new Rect(0, 0, 0, 0), path);//完成一个任务,就回调一个任务 } } else { if (item.BlitCallback != null) { item.BlitCallback(null, new Rect(0, 0, 0, 0), path);//完成一个任务,就回调一个任务 } } DynamicAtlasManager.Instance.ReleaseGetImageData(item); mGetImageTasks.RemoveAt(i); } } return; } int index; IntegerRectangle useArea = InsertArea(data.width, data.height, out index); Rect uv = new Rect((useArea.x + offset) * mUVXDiv, (useArea.y + offset) * mUVYDiv, (useArea.width - mPadding - offset * 2) * mUVXDiv, (useArea.height - mPadding - offset * 2) * mUVYDiv); if (AtlasConfig.kUsingCopyTexture) { CopyTexture(useArea.x, useArea.y, index, data); } else { BlitTexture(useArea.x, useArea.y, index, data); } SaveImageData _SaveImageData = DynamicAtlasManager.Instance.AllocateSaveImageData(uv); _SaveImageData.texIndex = index; _SaveImageData.rectangle = useArea; _usingRect[path] = _SaveImageData; for (int i = mGetImageTasks.Count - 1; i >= 0; i--) { GetImageData item = mGetImageTasks[i]; if (item.path.Equals(path)) { _usingRect[path].referenceCount = _usingRect[path].referenceCount + 1; if (AtlasConfig.kUsingCopyTexture) { if (item.callback != null) { Texture2D dstTex = m_tex2DList[index]; item.callback(dstTex, uv, path);//完成一个任务,就回调一个任务 } } else { if (item.BlitCallback != null) { Material material = m_MaterialList[index]; item.BlitCallback(material, uv, path);//完成一个任务,就回调一个任务 } } DynamicAtlasManager.Instance.ReleaseGetImageData(item); mGetImageTasks.RemoveAt(i); } } }