queryobj.h revision b8e80941
1/* 2 * Mesa 3-D graphics library 3 * 4 * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included 14 * in all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 * OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25 26#ifndef QUERYOBJ_H 27#define QUERYOBJ_H 28 29 30#include "main/mtypes.h" 31#include "main/hash.h" 32 33 34static inline struct gl_query_object * 35_mesa_lookup_query_object(struct gl_context *ctx, GLuint id) 36{ 37 return (struct gl_query_object *) 38 _mesa_HashLookupLocked(ctx->Query.QueryObjects, id); 39} 40 41 42extern void 43_mesa_init_query_object_functions(struct dd_function_table *driver); 44 45extern void 46_mesa_init_queryobj(struct gl_context *ctx); 47 48extern void 49_mesa_free_queryobj_data(struct gl_context *ctx); 50 51void GLAPIENTRY 52_mesa_GenQueries(GLsizei n, GLuint *ids); 53void GLAPIENTRY 54_mesa_CreateQueries(GLenum target, GLsizei n, GLuint *ids); 55void GLAPIENTRY 56_mesa_DeleteQueries(GLsizei n, const GLuint *ids); 57GLboolean GLAPIENTRY 58_mesa_IsQuery(GLuint id); 59void GLAPIENTRY 60_mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id); 61void GLAPIENTRY 62_mesa_EndQueryIndexed(GLenum target, GLuint index); 63void GLAPIENTRY 64_mesa_BeginQuery(GLenum target, GLuint id); 65void GLAPIENTRY 66_mesa_EndQuery(GLenum target); 67void GLAPIENTRY 68_mesa_QueryCounter(GLuint id, GLenum target); 69void GLAPIENTRY 70_mesa_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, 71 GLint *params); 72void GLAPIENTRY 73_mesa_GetQueryiv(GLenum target, GLenum pname, GLint *params); 74void GLAPIENTRY 75_mesa_GetQueryObjectiv(GLuint id, GLenum pname, GLint *params); 76void GLAPIENTRY 77_mesa_GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params); 78void GLAPIENTRY 79_mesa_GetQueryObjecti64v(GLuint id, GLenum pname, GLint64EXT *params); 80void GLAPIENTRY 81_mesa_GetQueryObjectui64v(GLuint id, GLenum pname, GLuint64EXT *params); 82void GLAPIENTRY 83_mesa_GetQueryBufferObjectiv(GLuint id, GLuint buffer, GLenum pname, 84 GLintptr offset); 85void GLAPIENTRY 86_mesa_GetQueryBufferObjectuiv(GLuint id, GLuint buffer, GLenum pname, 87 GLintptr offset); 88void GLAPIENTRY 89_mesa_GetQueryBufferObjecti64v(GLuint id, GLuint buffer, GLenum pname, 90 GLintptr offset); 91void GLAPIENTRY 92_mesa_GetQueryBufferObjectui64v(GLuint id, GLuint buffer, GLenum pname, 93 GLintptr offset); 94 95#endif /* QUERYOBJ_H */ 96