コード例 #1
0
ファイル: Sky.cs プロジェクト: MattVitelli/Nosferatu
 public override void OnRender(RenderView view)
 {
     if (view.GetRenderType() == RenderViewType.SHADOWS)
         return;
     SkyElementManager s = (SkyElementManager)view.GetRenderElementManager(RenderPass.Sky);
     if (s != null)
         s.Elements.Add(renderElement);
     base.OnRender(view);
 }
コード例 #2
0
ファイル: Decal.cs プロジェクト: MattVitelli/IslandAdventure
 public override void OnRender(RenderView view)
 {
     base.OnRender(view);
     if (view.GetRenderType() == RenderViewType.MAIN)
     {
         if (view.GetFrustum().Contains(bounds) != ContainmentType.Disjoint)
         {
             MainRenderView renderView = (MainRenderView)view;
             renderView.AddDecalElement(material, transform);
         }
     }
 }
コード例 #3
0
ファイル: Scene.cs プロジェクト: MattVitelli/Nosferatu
 public void AddRenderView(RenderView view)
 {
     RenderViews[(int)view.GetRenderType()].Add(view);
 }
コード例 #4
0
ファイル: Weapon.cs プロジェクト: MattVitelli/Nosferatu
 public void OnRender(RenderView view)
 {
     fpsModel.OnRender(view, false);
     if (view.GetRenderType() == RenderViewType.MAIN && !datablock.IsMelee)
     {
         GUIElementManager elemManager = GFX.Inst.GetGUI();
         int ammoRatio = (int)((float)ReserveAmmo / (float)AmmoPerClip);
         GUITextElement elem = new GUITextElement(new Vector2(0.85f, -0.85f), ammo.ToString() + "/"+ammoRatio);
         elemManager.AddElement(elem);
     }
 }
コード例 #5
0
ファイル: Scene.cs プロジェクト: MattVitelli/IslandAdventure
 public void AddRenderView(RenderView view)
 {
     RenderViews.Enqueue(view, (int)view.GetRenderType());
 }
コード例 #6
0
ファイル: Scene.cs プロジェクト: MattVitelli/Nosferatu
 public void RemoveRenderView(RenderView view)
 {
     int index = RenderViews[(int)view.GetRenderType()].IndexOf(view);
     if (index >= 0)
         RenderViews[(int)view.GetRenderType()].RemoveAt(index);
 }
コード例 #7
0
ファイル: Scene.cs プロジェクト: MattVitelli/IslandAdventure
 public void RemoveRenderView(RenderView view)
 {
     RenderViews.RemoveAt((int)view.GetRenderType(), view);
 }
コード例 #8
0
ファイル: Actor.cs プロジェクト: nhippenmeyer/CS248
        public override void OnRender(RenderView view)
        {
            if (view.GetRenderType() == RenderViewType.MAIN)
            {
                DrawLives();
                DrawHealthBar();
                DrawGemProgressBar();

                if (hitFlashTimer >= MAX_FLASH_TIMER) hitFlashTimer = 0;
                else if (hitFlashTimer > 0)
                {
                    hitFlashTimer++;
                    DrawHitFlash();
                }
                if (deathFadeTimer > 0)
                {
                    deathFadeTimer++;
                    DrawDeathFade();
                }
                if (lives < 0)
                {
                    Vector2 max = new Vector2(1, 1);
                    Vector2 min = new Vector2(-1, -1);
                    Gaia.Resources.TextureResource image = Resources.ResourceManager.Inst.GetTexture("Textures/Details/GameOver.png");
                    GUIElement element = new GUIElement(min, max, image);
                    GFX.Inst.GetGUI().AddElement(element);
                }
                if (numGemsCollected >= scene.NUM_GEMS_Required)
                {
                    Vector2 max = new Vector2(1, 1);
                    Vector2 min = new Vector2(-1, -1);
                    Gaia.Resources.TextureResource image = Resources.ResourceManager.Inst.GetTexture("Textures/Details/Congrats.png");
                    GUIElement element = new GUIElement(min, max, image);
                    GFX.Inst.GetGUI().AddElement(element);
                }
            }
            base.OnRender(view);
        }
コード例 #9
0
ファイル: Light.cs プロジェクト: MattVitelli/Nosferatu
        public override void OnRender(RenderView view)
        {
            if(view.GetRenderType() == RenderViewType.SHADOWS)
                return;

            bool canRender = (view.GetFrustum().Contains(Transformation.GetBounds()) != ContainmentType.Disjoint);
            canRender |= (type == LightType.Directional || type == LightType.Ambient);

            if (canRender)
            {
                LightElementManager lightMgr = (LightElementManager)view.GetRenderElementManager(RenderPass.Light);
                if (lightMgr != null)
                {
                    switch (type)
                    {
                        case LightType.Ambient:
                            lightMgr.AmbientLights.Add(this);
                            break;
                        case LightType.Directional:
                            if (castsShadows)
                                lightMgr.DirectionalShadowLights.Add(this);
                            else
                                lightMgr.DirectionalLights.Add(this);
                            break;
                        case LightType.Point:
                            lightMgr.PointLights.Add(this);
                            break;
                        case LightType.Spot:
                            lightMgr.SpotLights.Add(this);
                            break;
                    }
                }
            }
            base.OnRender(view);
        }
コード例 #10
0
        void RecursivelyRender(KDNode<ForestElement> node, RenderView view)
        {
            if (node == null || view.GetFrustum().Contains(node.bounds) == ContainmentType.Disjoint)
                return;

            if (node.element != null && (view.GetFrustum().Contains(node.element.Bounds) != ContainmentType.Disjoint))
            {
                if (view.GetRenderType() == RenderViewType.MAIN && useImposters)
                {
                    float distToCamera = Vector3.DistanceSquared(node.element.Transform.GetPosition(), view.GetPosition());
                    node.element.RenderImposters = (distToCamera >= GFXShaderConstants.IMPOSTERDISTANCESQUARED) ? ImposterState.Enabled : ImposterState.Disabled;
                    if (node.element.RenderImposters == ImposterState.Enabled && distToCamera <= GFXShaderConstants.IMPOSTER_DISTANCE_FALLOFF)
                    {
                        node.element.RenderImposters = ImposterState.Both;
                    }
                    if (distToCamera > GFXShaderConstants.GRASS_FADE_SQUARED)
                        node.element.RenderImposters = ImposterState.None;
                }

                    if (useImposters)
                    {
                        if (node.element.RenderImposters != ImposterState.None)
                        {
                            if (node.element.RenderImposters == ImposterState.Enabled || node.element.RenderImposters == ImposterState.Both)
                                node.element.Mesh.RenderImposters(node.element.Transform.GetTransform(), view, false);
                            if (node.element.RenderImposters == ImposterState.Disabled || node.element.RenderImposters == ImposterState.Both)
                                node.element.Mesh.Render(node.element.Transform.GetTransform(), view, false);
                        }
                    }
                    else
                        node.element.Mesh.Render(node.element.Transform.GetTransform(), view, false);

                    nodesRendered++;
            }
            RecursivelyRender(node.leftChild, view);
            RecursivelyRender(node.rightChild, view);
        }
コード例 #11
0
        public override void OnRender(RenderView view)
        {
            nodesRendered = 0;
            if (isEnabled && view.GetRenderType() != RenderViewType.REFLECTIONS)
                RecursivelyRender(visibleMeshes.GetRoot(), view);
            /*
            if (view.GetRenderType() == RenderViewType.MAIN && visibleMeshes.GetRoot().bounds.Contains(view.GetPosition()) != ContainmentType.Disjoint && entityCount != 3000)
            {
                Gaia.Rendering.GUIElementManager guiMgr = Gaia.Rendering.GFX.Inst.GetGUI();
                guiMgr.AddElement( new Gaia.Rendering.GUITextElement(new Vector2(0, 0.9f), "Nodes rendered: " + nodesRendered + "/" + entityCount));
            }

            if (view.GetRenderType() == RenderViewType.MAIN && visibleMeshes.GetRoot().bounds.Contains(view.GetPosition()) != ContainmentType.Disjoint)
            {
                RecursivelyRenderDebug(visibleMeshes.GetRoot(), view, 0, false);
            }
            */
            base.OnRender(view);
        }