fna-workbench

fna-workbench Git Source Tree


Root/src/Graphics/OcclusionQuery.cs

#region License
/* FNA - XNA4 Reimplementation for Desktop Platforms
 * Copyright 2009-2016 Ethan Lee and the MonoGame Team
 *
 * Released under the Microsoft Public License.
 * See LICENSE for details.
 */
#endregion
 
#region Using Statements
using System;
#endregion
 
namespace Microsoft.Xna.Framework.Graphics
{
    public class OcclusionQuery : GraphicsResource
    {
        #region Public Properties
 
        public bool IsComplete
        {
            get
            {
                return GraphicsDevice.GLDevice.QueryComplete(query);
            }
        }
 
        public int PixelCount
        {
            get
            {
                return GraphicsDevice.GLDevice.QueryPixelCount(query);
            }
        }
 
        #endregion
 
        #region Private OpenGL Variables
 
        private IGLQuery query;
 
        #endregion
 
        #region Public Constructor
 
        public OcclusionQuery(GraphicsDevice graphicsDevice)
        {
            GraphicsDevice = graphicsDevice;
            query = GraphicsDevice.GLDevice.CreateQuery();
        }
 
        #endregion
 
        #region Protected Dispose Method
 
        protected override void Dispose(bool disposing)
        {
            if (!IsDisposed)
            {
                GraphicsDevice.GLDevice.AddDisposeQuery(query);
            }
            base.Dispose(disposing);
        }
 
        #endregion
 
        #region Public Begin/End Methods
 
        public void Begin()
        {
            GraphicsDevice.GLDevice.QueryBegin(query);
        }
 
        public void End()
        {
            GraphicsDevice.GLDevice.QueryEnd(query);
        }
 
        #endregion
    }
}

Archive Download this file

Branches

Number of commits:
Page rendered in 0.08785s using 11 queries.