protected override void DeferRenderable(RenderNode renderable)
        {
            // Only accepts models right now for this renderer
            Type type = renderable.GetType();

            if ((type == typeof(SpriteNode)) || (type.IsSubclassOf(typeof(SpriteNode))))
            {
                SpriteNode spriteNode = (renderable as SpriteNode);

                if (spriteNode != null)
                {
                    // Add to sprite pool
                    m_Sprites.Add(spriteNode);
                }
            }
        }
示例#2
0
 public TerrainLoadedEvent(RenderNode terrain)
 {
     m_Terrain = terrain;
 }
        protected override void DeferRenderable(RenderNode renderable)
        {
            // Only accepts models right now for this renderer
            Type type = renderable.GetType();

            if ( renderable.InheritsFrom<ModelNode>() )
            {
                ModelNode modelNode = (renderable as ModelNode);
                Mesh mesh = modelNode.Mesh;

                if (mesh != null)
                {
                    // Setup mesh
                    SetupMesh(mesh);

                    // Add Mesh
                    m_Meshes.Add(mesh);

                    if (mesh.SubMeshes.Count > 0)
                    {
                        // FOR NOW ADD ALL SUB MESHES TO THE RENDER LIST ( NOT OPTIMISED YET )
                        for (int i = 0; i < mesh.SubMeshes.Count; i++)
                        {
                            SubMesh subMesh = mesh.SubMeshes[i];

                            //if (camera.Frustum.Intersects(subMesh.GlobalBoundingBox))
                            //{
                            m_VisibleMeshes[(int)subMesh.RenderQueue].Add(subMesh);
                            //}
                        }
                    }
                    else
                    {
                        // Otherwise just add the mesh as there are no sub meshses
                        m_VisibleMeshes[(int)mesh.RenderQueue].Add(mesh);
                    }
                }
            }
        }
示例#4
0
        public bool RemoveRenderNode(RenderNode renderNode)
        {
            bool toRet = false;

            if (m_RenderNodes.Contains(renderNode))
            {
                m_RenderNodes.Remove(renderNode);
                toRet = true;
            }

            return toRet;
        }
示例#5
0
        public bool Contains(RenderNode renderNode)
        {
            bool toRet = false;

            if (m_RenderNodes.Count > 0)
            {
                if (m_RenderNodes.Contains(renderNode))
                    toRet = true;
            }

            return toRet;
        }
示例#6
0
 protected virtual void DeferRenderable(RenderNode renderable)
 {
     if (!m_RenderNodes.Contains(renderable))
         m_RenderNodes.Add(renderable);
 }