Example #1
0
        public new static BaseShader Alloc(int type)
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.BaseShader_Alloc(type);
            BaseShader            ret  = (cPtr == global::System.IntPtr.Zero) ? null : new BaseShader(cPtr, false);

            return(ret);
        }
Example #2
0
        public new BaseShader GetDownLast()
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.BaseShader_GetDownLast(swigCPtr);
            BaseShader            ret  = (cPtr == global::System.IntPtr.Zero) ? null : new BaseShader(cPtr, false);

            return(ret);
        }
Example #3
0
        public void Render(BaseShader shader, Vector4[] frustum)
        {
            if (!Frustum.CubeInFrustum(frustum, worldPosition, worldSize))
            {
                return;
            }

            if (IsLeafNode)
            {
                GL.UniformMatrix4(shader.LocalMatrix, false, ref localTransform);
                GL.Uniform2(shader.Position, Position);
                GL.Uniform1(shader.Lod, Lod);
                GL.Uniform2(shader.Index, Index);
                GL.Uniform1(shader.Size, size);
                GL.DrawArrays(PrimitiveType.Patches, 0, 16);
                return;
            }

            foreach (var node in Children)
            {
                if (node != null)
                {
                    node.Render(shader, frustum);
                }
            }
        }
Example #4
0
 public void Render(Vector4[] frustumPlanes, BaseShader shader)
 {
     foreach (var node in Nodes)
     {
         node.Render(shader, frustumPlanes);
     }
 }
Example #5
0
        public BaseShader GetShader()
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.BaseChannel_GetShader(swigCPtr);
            BaseShader            ret  = (cPtr == global::System.IntPtr.Zero) ? null : new BaseShader(cPtr, false);

            return(ret);
        }
Example #6
0
        public BaseShader GetSubsurfaceShader(SWIGTYPE_p_Float bestmpl)
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.BaseShader_GetSubsurfaceShader(swigCPtr, SWIGTYPE_p_Float.getCPtr(bestmpl));
            BaseShader            ret  = (cPtr == global::System.IntPtr.Zero) ? null : new BaseShader(cPtr, false);

            if (C4dApiPINVOKE.SWIGPendingException.Pending)
            {
                throw C4dApiPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
Example #7
0
        private void RenderLines(ID3D11DeviceContext InDeviceContext, Camera InCamera)
        {
            VertexBufferView BufferView = new VertexBufferView(VertexBuffer, Unsafe.SizeOf <VertexLayouts.BasicLayout.Vertex>(), 0);

            InDeviceContext.IASetVertexBuffers(0, BufferView);
            InDeviceContext.IASetIndexBuffer(IndexBuffer, Vortice.DXGI.Format.R16_UInt, 0);
            InDeviceContext.IASetPrimitiveTopology(PrimitiveTopology.LineStrip);

            BaseShader Shader = RenderStorageSingleton.Instance.ShaderManager.shaders[1];

            Shader.SetSceneVariables(InDeviceContext, Matrix4x4.Identity, InCamera);
            Shader.Render(InDeviceContext, PrimitiveTopology.LineList, SizeToRender, 0);
        }
Example #8
0
 public void RemoveLight(SSLight light)
 {
     if (!m_lights.Contains(light))
     {
         throw new Exception("Light not found.");
     }
     m_lights.Remove(light);
     if (BaseShader != null)
     {
         BaseShader.Activate();
         BaseShader.SetupShadowMap(m_lights);
         BaseShader.Deactivate();
     }
 }
Example #9
0
 public void AddLight(SSLight light)
 {
     if (m_lights.Contains(light))
     {
         return;
     }
     m_lights.Add(light);
     if (BaseShader != null)
     {
         BaseShader.Activate();
         BaseShader.SetupShadowMap(m_lights);
         BaseShader.Deactivate();
     }
 }
Example #10
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(BaseShader obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
Example #11
0
        public bool Compare(BaseShader dst)
        {
            bool ret = C4dApiPINVOKE.BaseShader_Compare(swigCPtr, BaseShader.getCPtr(dst));

            return(ret);
        }
Example #12
0
 /// <summary>
 /// 初始化shader
 /// </summary>
 private void InitShader()
 {
     srShader = new BaseShader(L2WMat, MVPMat);
 }
Example #13
0
 public void InsertShader(BaseShader shader)
 {
     C4dApiPINVOKE.BaseList2D_InsertShader__SWIG_1(swigCPtr, BaseShader.getCPtr(shader));
 }