コード例 #1
0
 public void Unregister()
 {
     Registration.RegistrationCount--;
     if (Registration.RegistrationCount <= 0)
     {
         Registration.RegistrationCount = 0;
         FXRenderTextureManager.Unregister(this);
     }
 }
コード例 #2
0
    public static void Update()
    {
        var size = GetRenderSize();

        if (lastScreenWidth != size.x || lastScreenHeight != size.y)
        {
            lastScreenWidth  = size.x;
            lastScreenHeight = size.y;
            FXRenderTextureManager.SetDirty();
        }
        FXRenderTextureManager.PackTextures();
    }
コード例 #3
0
    public void Register()
    {
        Registration.RegistrationCount++;
        if (Registration.RegistrationCount == 1)
        {
            FXRenderTextureManager.Register(this);
        }

#if UNITY_EDITOR
        System.Type T = System.Type.GetType("UnityEditor.GameView,UnityEditor");
        System.Reflection.MethodInfo repaintAll = T.GetMethod("RepaintAll", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
        repaintAll.Invoke(null, null);
#endif
    }
コード例 #4
0
    void OnPostRender()
    {
        if (!enabled)
        {
            return;
        }

        if (!dummyTexture)
        {
            dummyTexture           = new Texture2D(1, 1);
            dummyTexture.hideFlags = HideFlags.HideAndDontSave;
        }

        EnsureRenderTexture();
        FXRenderTextureManager.Update();

        CaptureScreen();
    }
コード例 #5
0
    public Vector2 CalculateSize(Vector2 chartSize)
    {
        var size = chartSize;

        if (SizeMode == FXRenderTexture.FXRenderTextureSizeMode.Factor)
        {
            size *= SizeFactor;
        }
        else if (SizeMode == FXRenderTexture.FXRenderTextureSizeMode.MaxSize)
        {
            size = Vector2.Min(size, MaximumSize);
        }
        else
        {
            size = FXRenderTextureManager.GetRenderSize();
        }
        size = Vector2.Max(Vector2.one, size);

        return(new Vector2((int)size.x, (int)size.y));
    }
コード例 #6
0
    public void OnPreRender()
    {
        if (!enabled)
        {
            return;
        }

        if (renderCamera == null)
        {
            CreateRenderObjects();
        }

        FXRenderTextureManager.Update();

        var fxTextures = this.gameObject.GetComponents <FXTexture>().Where(f => f.enabled && f.RenderTexture).ToArray();

        if (fxTextures.Length == 0)
        {
            return;
        }

        RenderToTextures(fxTextures);
    }