Example #1
0
    //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);
    }
Example #2
0
        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"));
        }
Example #4
0
    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);
    }
Example #6
0
 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);//完成一个任务,就回调一个任务
         }
     }
 }
Example #7
0
    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();
        });
    }
Example #8
0
    //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);
 }
Example #10
0
    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);
            }
        }
    }