コード例 #1
0
        public MyLightGlare(MyLight light)
        {
            m_parent       = light;
            m_occlusionBox = new BoundingBox();

            m_occlusionQuery   = MyOcclusionQueries.Get();
            m_measurementQuery = MyOcclusionQueries.Get();
        }
コード例 #2
0
        public void LoadContent()
        {
            System.Diagnostics.Debug.Assert(m_occlusionQuery == null);
            System.Diagnostics.Debug.Assert(m_measurementQuery == null);

            m_occlusionQuery   = MyOcclusionQueries.Get();
            m_measurementQuery = MyOcclusionQueries.Get();
        }
コード例 #3
0
        public void UnloadContent()
        {
            if (m_occlusionQuery != null)
            {
                //occlusion queries are managed automatically
                MyOcclusionQueries.Return(m_occlusionQuery);
                MyOcclusionQueries.Return(m_measurementQuery);

                m_occlusionQuery   = null;
                m_measurementQuery = null;
            }
        }
コード例 #4
0
        public static void UnloadContent()
        {
            if (m_spriteBatch != null)
            {
                m_spriteBatch.Dispose();
                m_spriteBatch = null;
            }

            // Create the occlusion query object. But only first time! Then just reuse it.
            for (int i = 0; i < m_occlusionQueries.Length; i++)
            {
                MyOcclusionQueries.Return(m_occlusionQueries[i]);
            }
            for (int i = 0; i < m_measurementOcclusionQueries.Length; i++)
            {
                MyOcclusionQueries.Return(m_measurementOcclusionQueries[i]);
            }
        }
コード例 #5
0
        //  IMPORTANT: This load content can be called only once in application - at the application start. Not for every game-play screen start.
        //  Reason is that OcclusionQuery will stop work if two or more instances are created, even if previous was Disposed. I don't know if
        //  it's error or feature... I will just follow above rule.
        public static void LoadContent()
        {
            MyMwcLog.WriteLine("MySunGlare.LoadContent() - START");
            MyMwcLog.IncreaseIndent();

            // Load the glow, ray and flare textures.
            m_glareSprite = MyTextureManager.GetTexture <MyTexture2D>("Textures\\SunGlare\\SunGlare");
            m_glowSprite  = MyTextureManager.GetTexture <MyTexture2D>("Textures\\SunGlare\\sun_glow_main");
            m_glowSprite2 = MyTextureManager.GetTexture <MyTexture2D>("Textures\\SunGlare\\sun_glow_ray");

            m_flares = new[] {
                new MyFlare(-0.5f, 0.7f, new Color(30, 40, 50), "Textures\\SunGlare\\flare1"),
                new MyFlare(0.3f, 0.4f, new Color(155, 165, 180), "Textures\\SunGlare\\flare1"),
                new MyFlare(1.2f, 1.0f, new Color(40, 50, 50), "Textures\\SunGlare\\flare1"),
                new MyFlare(1.5f, 1.5f, new Color(80, 90, 100), "Textures\\SunGlare\\flare1"),
                new MyFlare(-0.3f, 0.7f, new Color(140, 150, 160), "Textures\\SunGlare\\flare2"),
                new MyFlare(0.6f, 0.9f, new Color(85, 95, 100), "Textures\\SunGlare\\flare2"),
                new MyFlare(0.7f, 0.4f, new Color(130, 150, 170), "Textures\\SunGlare\\flare2"),
                new MyFlare(-0.7f, 0.7f, new Color(60, 60, 80), "Textures\\SunGlare\\flare3"),
                new MyFlare(0.0f, 0.6f, new Color(20, 25, 30), "Textures\\SunGlare\\flare3"),
                new MyFlare(2.0f, 1.4f, new Color(70, 85, 110), "Textures\\SunGlare\\flare3"),
            };

            // Create a SpriteBatch for drawing the glow and flare sprites.
            m_spriteBatch = new SpriteBatch(MyMinerGame.Static.GraphicsDevice, "SunGlare");

            // Create the occlusion query object. But only first time! Then just reuse it.
            for (int i = 0; i < m_occlusionQueries.Length; i++)
            {
                m_occlusionQueries[i] = MyOcclusionQueries.Get();
                m_occlusionStates[i]  = MyLightGlare.State.IssueMeasure;
            }
            for (int i = 0; i < m_measurementOcclusionQueries.Length; i++)
            {
                m_measurementOcclusionQueries[i] = MyOcclusionQueries.Get();
            }

            MyMwcLog.DecreaseIndent();
            MyMwcLog.WriteLine("MySunGlare.LoadContent() - END");
        }
コード例 #6
0
 public void Dispose()
 {
     MyOcclusionQueries.Return(m_occlusionQuery);
     MyOcclusionQueries.Return(m_measurementQuery);
 }