示例#1
0
        public void UpdateWorldMatrixChildren()
        {
            if (UpdateXform == false)
            {
                return;
            }

            if (DirtyFlags.HasFlag(DirtyFlags.MatrixIsDirty))
            {
                UpdateWorldMatrix();
            }

            foreach (LLJoint joint in Children)
            {
                joint.UpdateWorldMatrixChildren();
            }
        }
示例#2
0
 void SetDirty(DirtyFlags flags)
 {
     if (m_IsUsedInstance)
     {
         if (flags.HasFlag(DirtyFlags.Target))
         {
             EditorUtility.SetDirty(target);
         }
         if (flags.HasFlag(DirtyFlags.Shader))
         {
             m_NeedToRefreshShader = true;
         }
         if (flags.HasFlag(DirtyFlags.Noise))
         {
             m_NeedToReloadNoise = true;
         }
         if (flags.HasFlag(DirtyFlags.GlobalMesh))
         {
             GlobalMesh.Destroy();
         }
         if (flags.HasFlag(DirtyFlags.AllBeamGeom))
         {
             VolumetricLightBeam._EditorSetAllBeamGeomDirty();
         }
         if (flags.HasFlag(DirtyFlags.AllMeshes))
         {
             VolumetricLightBeam._EditorSetAllMeshesDirty();
         }
     }
 }
示例#3
0
        public void ReplayIfDirty(Vk api, CommandBuffer commandBuffer)
        {
            if (_dirty.HasFlag(DirtyFlags.DepthBias))
            {
                RecordDepthBias(api, commandBuffer);
            }

            if (_dirty.HasFlag(DirtyFlags.Scissor))
            {
                RecordScissor(api, commandBuffer);
            }

            if (_dirty.HasFlag(DirtyFlags.Stencil))
            {
                RecordStencilMasks(api, commandBuffer);
            }

            if (_dirty.HasFlag(DirtyFlags.Viewport))
            {
                RecordViewport(api, commandBuffer);
            }

            _dirty = DirtyFlags.None;
        }
示例#4
0
        public void UpdateAndBindDescriptorSets(CommandBufferScoped cbs, PipelineBindPoint pbp)
        {
            if ((_dirty & DirtyFlags.All) == 0)
            {
                return;
            }

            // System.Console.WriteLine("modified " + _dirty + " " + _modified + " on program " + _program.GetHashCode().ToString("X"));

            if (_dirty.HasFlag(DirtyFlags.Uniform))
            {
                UpdateAndBind(cbs, PipelineBase.UniformSetIndex, DirtyFlags.Uniform, pbp);
            }

            if (_dirty.HasFlag(DirtyFlags.Storage))
            {
                UpdateAndBind(cbs, PipelineBase.StorageSetIndex, DirtyFlags.Storage, pbp);
            }

            if (_dirty.HasFlag(DirtyFlags.Texture))
            {
                UpdateAndBind(cbs, PipelineBase.TextureSetIndex, DirtyFlags.Texture, pbp);
            }

            if (_dirty.HasFlag(DirtyFlags.Image))
            {
                UpdateAndBind(cbs, PipelineBase.ImageSetIndex, DirtyFlags.Image, pbp);
            }

            if (_dirty.HasFlag(DirtyFlags.BufferTexture))
            {
                UpdateAndBind(cbs, PipelineBase.BufferTextureSetIndex, DirtyFlags.BufferTexture, pbp);
            }

            if (_dirty.HasFlag(DirtyFlags.BufferImage))
            {
                UpdateAndBind(cbs, PipelineBase.BufferImageSetIndex, DirtyFlags.BufferImage, pbp);
            }

            _dirty = DirtyFlags.None;
        }