Exemplo n.º 1
0
    //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);
    }
Exemplo n.º 2
0
    //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);
    }
Exemplo n.º 3
0
    //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);
    }
Exemplo n.º 4
0
    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);
            };
        }
    }
Exemplo n.º 5
0
    //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();
    }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
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);
    }