示例#1
0
 public void render(
     VertexBuffer vertices,
     IndexBuffer primitives,
     AppearanceBase appearance,
     Transform transform)
 {
     this.render(vertices, primitives, appearance, transform, -1, 1f);
 }
示例#2
0
 public void setAppearanceBase(int index, AppearanceBase appearance)
 {
     if (!this.verifyMutable() || !this.verifyIndex(index))
     {
         return;
     }
     this.m_appearances[index] = (object)appearance;
 }
示例#3
0
 public RenderNode CopyFrom(RenderNode rhs)
 {
     this.renderNode         = rhs.renderNode;
     this.compositeTransform = rhs.compositeTransform;
     this.m_layer            = rhs.m_layer;
     this.m_appearance       = rhs.m_appearance;
     this.m_indexBuffer      = rhs.m_indexBuffer;
     this.m_vertexBuffer     = rhs.m_vertexBuffer;
     this.m_blending         = rhs.m_blending;
     return(this);
 }
示例#4
0
 public RenderNode(RenderNode r)
 {
     this.renderNode         = r.renderNode;
     this.compositeTransform = r.compositeTransform;
     this.m_layer            = r.m_layer;
     this.m_blending         = r.m_blending;
     this.m_appearance       = r.m_appearance;
     this.m_indexBuffer      = r.m_indexBuffer;
     this.m_vertexBuffer     = r.m_vertexBuffer;
     this.m_isSkinning       = r.m_isSkinning;
 }
示例#5
0
 public virtual void render(
     VertexBuffer vertices,
     IndexBuffer primitives,
     AppearanceBase appearance,
     Transform transform,
     int scope,
     float alphaFactor)
 {
     if (!(this.m_cameraScope != 0 & scope != 0))
     {
         return;
     }
     this.m_renderer.pushModelTransform(transform);
     this.m_renderer.render(vertices, primitives, appearance, alphaFactor);
     this.m_renderer.popModelTransform();
 }
示例#6
0
        public void renderForceAppearanceLoad(Node node, Transform transform)
        {
            this.m_renderNodeList.Clear();
            this.m_transformListPosition = 0;
            this.compileRenderableNodeList(ref node, ref transform, this.m_cameraScope, 0);
            this.m_renderNodeList.Sort();
            int  cameraScope = this.m_cameraScope;
            int  count       = this.m_renderNodeList.Count;
            long num         = 0;

            for (int index = 0; index < count; ++index)
            {
                RenderNode renderNode1 = this.m_renderNodeList[index];
                Mesh       renderNode2 = (Mesh)renderNode1.renderNode;
                if (renderNode2 != null && (renderNode2.getScope() & cameraScope) != 0)
                {
                    AppearanceBase appearance = renderNode1.m_appearance;
                    if (appearance != null)
                    {
                        VertexBuffer vertexBuffer = renderNode1.m_vertexBuffer;
                        IndexBuffer  indexBuffer  = renderNode1.m_indexBuffer;
                        float        alphaFactor  = renderNode2.getAlphaFactor();
                        this.m_renderer.pushModelTransform(renderNode1.compositeTransform);
                        this.m_renderer.processApperance((Appearance)appearance);
                        if ((object)renderNode2.GetType() == (object)typeof(SkinnedMesh) || renderNode2.GetType().IsSubclassOf(typeof(SkinnedMesh)))
                        {
                            SkinnedMesh skinnedMesh = (SkinnedMesh)renderNode2;
                            this.m_renderer.render(vertexBuffer, skinnedMesh.getSkinIndices(), skinnedMesh.getSkinWeights(), skinnedMesh.getBoneTransforms(), indexBuffer, appearance, alphaFactor);
                            num += (long)indexBuffer.getPrimitiveCount();
                        }
                        else
                        {
                            this.m_renderer.render(vertexBuffer, indexBuffer, appearance, alphaFactor);
                            num += (long)indexBuffer.getPrimitiveCount();
                        }
                        this.m_renderer.popModelTransform();
                    }
                }
            }
            if (this.m_renderNodeList.Count > this.m_reservedCapacity)
            {
                this.m_reservedCapacity        = this.m_renderNodeList.Count;
                this.m_renderNodeList.Capacity = this.m_reservedCapacity;
            }
            this.m_renderNodeList.Clear();
            this.m_renderer.restoreToClamp();
        }
示例#7
0
        public RenderNode(Node n, int submeshIndex, ref Transform t, bool skinning)
        {
            this.renderNode         = (Node)null;
            this.compositeTransform = (Transform)null;
            this.m_layer            = 0;
            this.m_blending         = 68;
            this.m_appearance       = (AppearanceBase)null;
            this.m_indexBuffer      = (IndexBuffer)null;
            this.m_vertexBuffer     = (VertexBuffer)null;
            this.m_isSkinning       = skinning;
            if (n == null)
            {
                return;
            }
            Mesh mesh = (Mesh)n;

            if (mesh == null)
            {
                return;
            }
            AppearanceBase appearance  = (AppearanceBase)mesh.getAppearance(submeshIndex);
            IndexBuffer    indexBuffer = mesh.getIndexBuffer(submeshIndex);

            if (appearance == null || indexBuffer == null)
            {
                return;
            }
            this.renderNode         = n;
            this.compositeTransform = t;
            this.m_layer            = appearance.getLayer();
            this.m_appearance       = appearance;
            this.m_indexBuffer      = indexBuffer;
            this.m_vertexBuffer     = mesh.getVertexBuffer();
            CompositingMode compositingMode = appearance.getCompositingMode();

            if (compositingMode == null)
            {
                return;
            }
            this.m_blending = compositingMode.getBlending();
        }