コード例 #1
0
 static void RenderTargetSetup_colorLoad(JSVCall vc)
 {
     if (vc.bGet)
     {
         UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
         var result = _this.colorLoad;
         var arrRet = result;
         for (int i = 0; arrRet != null && i < arrRet.Length; i++)
         {
             JSApi.setEnum((int)JSApi.SetType.SaveAndTempTrace, (int)arrRet[i]);
             JSApi.moveSaveID2Arr(i);
         }
         JSApi.setArrayS((int)JSApi.SetType.Rval, (arrRet != null ? arrRet.Length : 0), true);
     }
     else
     {
         UnityEngine.Rendering.RenderBufferLoadAction[] arg0 = JSDataExchangeMgr.GetJSArg <UnityEngine.Rendering.RenderBufferLoadAction[]>(() =>
         {
             int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
             int length  = JSApi.getArrayLength(jsObjID);
             var ret     = new UnityEngine.Rendering.RenderBufferLoadAction[length];
             for (var i = 0; i < length; i++)
             {
                 JSApi.getElement(jsObjID, i);
                 ret[i] = (UnityEngine.Rendering.RenderBufferLoadAction)JSApi.getEnum((int)JSApi.GetType.SaveAndRemove);
             }
             return(ret);
         });
         UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
         _this.colorLoad = arg0;
         JSMgr.changeJSObj(vc.jsObjID, _this);
     }
 }
コード例 #2
0
    static bool RenderTargetSetup_RenderTargetSetup2(JSVCall vc, int argc)
    {
        int _this = JSApi.getObject((int)JSApi.GetType.Arg);

        JSApi.attachFinalizerObject(_this);
        --argc;

        int len = argc;

        if (len == 8)
        {
            UnityEngine.RenderBuffer[] arg0 = JSDataExchangeMgr.GetJSArg <UnityEngine.RenderBuffer[]>(() =>
            {
                int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
                int length  = JSApi.getArrayLength(jsObjID);
                var ret     = new UnityEngine.RenderBuffer[length];
                for (var i = 0; i < length; i++)
                {
                    JSApi.getElement(jsObjID, i);
                    ret[i] = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.SaveAndRemove);
                }
                return(ret);
            });
            UnityEngine.RenderBuffer arg1 = (UnityEngine.RenderBuffer)JSMgr.datax.getObject((int)JSApi.GetType.Arg);
            System.Int32             arg2 = (System.Int32)JSApi.getInt32((int)JSApi.GetType.Arg);
            UnityEngine.CubemapFace  arg3 = (UnityEngine.CubemapFace)JSApi.getEnum((int)JSApi.GetType.Arg);
            UnityEngine.Rendering.RenderBufferLoadAction[] arg4 = JSDataExchangeMgr.GetJSArg <UnityEngine.Rendering.RenderBufferLoadAction[]>(() =>
            {
                int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
                int length  = JSApi.getArrayLength(jsObjID);
                var ret     = new UnityEngine.Rendering.RenderBufferLoadAction[length];
                for (var i = 0; i < length; i++)
                {
                    JSApi.getElement(jsObjID, i);
                    ret[i] = (UnityEngine.Rendering.RenderBufferLoadAction)JSApi.getEnum((int)JSApi.GetType.SaveAndRemove);
                }
                return(ret);
            });
            UnityEngine.Rendering.RenderBufferStoreAction[] arg5 = JSDataExchangeMgr.GetJSArg <UnityEngine.Rendering.RenderBufferStoreAction[]>(() =>
            {
                int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
                int length  = JSApi.getArrayLength(jsObjID);
                var ret     = new UnityEngine.Rendering.RenderBufferStoreAction[length];
                for (var i = 0; i < length; i++)
                {
                    JSApi.getElement(jsObjID, i);
                    ret[i] = (UnityEngine.Rendering.RenderBufferStoreAction)JSApi.getEnum((int)JSApi.GetType.SaveAndRemove);
                }
                return(ret);
            });
            UnityEngine.Rendering.RenderBufferLoadAction  arg6 = (UnityEngine.Rendering.RenderBufferLoadAction)JSApi.getEnum((int)JSApi.GetType.Arg);
            UnityEngine.Rendering.RenderBufferStoreAction arg7 = (UnityEngine.Rendering.RenderBufferStoreAction)JSApi.getEnum((int)JSApi.GetType.Arg);
            JSMgr.addJSCSRel(_this, new UnityEngine.RenderTargetSetup(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
        }

        return(true);
    }
コード例 #3
0
 static void RenderTargetSetup_depthLoad(JSVCall vc)
 {
     if (vc.bGet)
     {
         UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
         var result = _this.depthLoad;
         JSApi.setEnum((int)JSApi.SetType.Rval, (int)result);
     }
     else
     {
         UnityEngine.Rendering.RenderBufferLoadAction arg0 = (UnityEngine.Rendering.RenderBufferLoadAction)JSApi.getEnum((int)JSApi.GetType.Arg);
         UnityEngine.RenderTargetSetup _this = (UnityEngine.RenderTargetSetup)vc.csObj;
         _this.depthLoad = arg0;
         JSMgr.changeJSObj(vc.jsObjID, _this);
     }
 }
コード例 #4
0
        /// <summary>
        /// Blits a fullscreen triangle using a given material.
        /// </summary>
        /// <param name="cmd">The command buffer to use</param>
        /// <param name="source">The source render target</param>
        /// <param name="destination">The destination render target</param>
        /// <param name="propertySheet">The property sheet to use</param>
        /// <param name="pass">The pass from the material to use</param>
        /// <param name="loadAction">The load action for this blit</param>
        /// <param name="viewport">An optional viewport to consider for the blit</param>
        public static void BlitFullscreenTriangle(this CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination
                                                  , Material mat, int pass, MaterialPropertyBlock properties, LoadAction loadAction)
        {
            cmd.SetGlobalTexture(ShaderIDs.MainTex, source);
            bool clear = false;

#if UNITY_2018_2_OR_NEWER
            if (loadAction == LoadAction.Clear)
            {
                loadAction = LoadAction.DontCare;
                clear      = true;
            }
#endif
            cmd.SetRenderTargetWithLoadStoreAction(destination, loadAction, StoreAction.Store);

            if (clear)
            {
                cmd.ClearRenderTarget(true, true, Color.clear);
            }

            cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, mat, 0, pass, properties);
        }
コード例 #5
0
        /// <summary>
        /// Sets the current render target using specified <see cref="RenderBufferLoadAction"/>.
        /// </summary>
        /// <param name="cmd">The command buffer to set the render target on</param>
        /// <param name="rt">The render target to set</param>
        /// <param name="loadAction">The load action</param>
        /// <param name="storeAction">The store action</param>
        /// <remarks>
        /// <see cref="RenderBufferLoadAction"/> are only used on Unity 2018.2 or newer.
        /// </remarks>
        private static void SetRenderTargetWithLoadStoreAction(this CommandBuffer cmd
                                                               , RenderTargetIdentifier rt, LoadAction loadAction, StoreAction storeAction)
        {
#if UNITY_2018_2_OR_NEWER
            cmd.SetRenderTarget(rt, loadAction, storeAction);
#else
            cmd.SetRenderTarget(rt);
#endif
        }