示例#1
0
 public void QueryEnd(IGLQuery query)
 {
     ForceToMainThread(() =>
     {
         GLDevice.QueryEnd(query);
     });             // End ForceToMainThread
 }
示例#2
0
        public int QueryPixelCount(IGLQuery query)
        {
            int result = 0;

            ForceToMainThread(() =>
            {
                result = GLDevice.QueryPixelCount(query);
            });             // End ForceToMainThread
            return(result);
        }
示例#3
0
        public bool QueryComplete(IGLQuery query)
        {
            bool result = false;

            ForceToMainThread(() =>
            {
                result = GLDevice.QueryComplete(query);
            });             // End ForceToMainThread
            return(result);
        }
示例#4
0
        public IGLQuery CreateQuery()
        {
            IGLQuery result = null;

            ForceToMainThread(() =>
            {
                result = GLDevice.CreateQuery();
            });             // End ForceToMainThread
            return(result);
        }
示例#5
0
 public OcclusionQuery(GraphicsDevice graphicsDevice)
 {
     GraphicsDevice = graphicsDevice;
     query          = GraphicsDevice.GLDevice.CreateQuery();
 }
示例#6
0
		public int QueryPixelCount(IGLQuery query)
		{
			uint result;
			glGetQueryObjectuiv(
				(query as OpenGLQuery).Handle,
				GLenum.GL_QUERY_RESULT,
				out result
			);
			return (int) result;
		}
示例#7
0
		public bool QueryComplete(IGLQuery query)
		{
			uint result;
			glGetQueryObjectuiv(
				(query as OpenGLQuery).Handle,
				GLenum.GL_QUERY_RESULT_AVAILABLE,
				out result
			);
			return result != 0;
		}
示例#8
0
		public void QueryEnd(IGLQuery query)
		{
			// May need to check active queries...?
			glEndQuery(
				GLenum.GL_SAMPLES_PASSED
			);
		}
示例#9
0
		public void QueryBegin(IGLQuery query)
		{
			glBeginQuery(
				GLenum.GL_SAMPLES_PASSED,
				(query as OpenGLQuery).Handle
			);
		}
示例#10
0
		private void DeleteQuery(IGLQuery query)
		{
			uint handle = (query as OpenGLQuery).Handle;
			glDeleteQueries(
				1,
				ref handle
			);
		}
示例#11
0
		public void AddDisposeQuery(IGLQuery query)
		{
			if (IsOnMainThread())
			{
				DeleteQuery(query);
			}
			else
			{
				GCQueries.Enqueue(query);
			}
		}
示例#12
0
 public void AddDisposeQuery(IGLQuery query)
 {
     GCQueries.Enqueue(query);
 }
示例#13
0
		public OcclusionQuery(GraphicsDevice graphicsDevice)
		{
			GraphicsDevice = graphicsDevice;
			query = GraphicsDevice.GLDevice.CreateQuery();
		}