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 34 static 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_HashLookup(ctx->Query.QueryObjects, id); 39 } 40 41 42 extern void 43 _mesa_init_query_object_functions(struct dd_function_table *driver); 44 45 extern void 46 _mesa_init_queryobj(struct gl_context *ctx); 47 48 extern void 49 _mesa_free_queryobj_data(struct gl_context *ctx); 50 51 void GLAPIENTRY 52 _mesa_GenQueries(GLsizei n, GLuint *ids); 53 void GLAPIENTRY 54 _mesa_CreateQueries(GLenum target, GLsizei n, GLuint *ids); 55 void GLAPIENTRY 56 _mesa_DeleteQueries(GLsizei n, const GLuint *ids); 57 GLboolean GLAPIENTRY 58 _mesa_IsQuery(GLuint id); 59 void GLAPIENTRY 60 _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id); 61 void GLAPIENTRY 62 _mesa_EndQueryIndexed(GLenum target, GLuint index); 63 void GLAPIENTRY 64 _mesa_BeginQuery(GLenum target, GLuint id); 65 void GLAPIENTRY 66 _mesa_EndQuery(GLenum target); 67 void GLAPIENTRY 68 _mesa_QueryCounter(GLuint id, GLenum target); 69 void GLAPIENTRY 70 _mesa_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, 71 GLint *params); 72 void GLAPIENTRY 73 _mesa_GetQueryiv(GLenum target, GLenum pname, GLint *params); 74 void GLAPIENTRY 75 _mesa_GetQueryObjectiv(GLuint id, GLenum pname, GLint *params); 76 void GLAPIENTRY 77 _mesa_GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params); 78 void GLAPIENTRY 79 _mesa_GetQueryObjecti64v(GLuint id, GLenum pname, GLint64EXT *params); 80 void GLAPIENTRY 81 _mesa_GetQueryObjectui64v(GLuint id, GLenum pname, GLuint64EXT *params); 82 void GLAPIENTRY 83 _mesa_GetQueryBufferObjectiv(GLuint id, GLuint buffer, GLenum pname, 84 GLintptr offset); 85 void GLAPIENTRY 86 _mesa_GetQueryBufferObjectuiv(GLuint id, GLuint buffer, GLenum pname, 87 GLintptr offset); 88 void GLAPIENTRY 89 _mesa_GetQueryBufferObjecti64v(GLuint id, GLuint buffer, GLenum pname, 90 GLintptr offset); 91 void GLAPIENTRY 92 _mesa_GetQueryBufferObjectui64v(GLuint id, GLuint buffer, GLenum pname, 93 GLintptr offset); 94 95 #endif /* QUERYOBJ_H */ 96