101efb1dd8f5e14e8c034e0100f76472d89f811afBrian/**************************************************************************
201efb1dd8f5e14e8c034e0100f76472d89f811afBrian *
301efb1dd8f5e14e8c034e0100f76472d89f811afBrian * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
401efb1dd8f5e14e8c034e0100f76472d89f811afBrian * All Rights Reserved.
501efb1dd8f5e14e8c034e0100f76472d89f811afBrian *
601efb1dd8f5e14e8c034e0100f76472d89f811afBrian * Permission is hereby granted, free of charge, to any person obtaining a
701efb1dd8f5e14e8c034e0100f76472d89f811afBrian * copy of this software and associated documentation files (the
801efb1dd8f5e14e8c034e0100f76472d89f811afBrian * "Software"), to deal in the Software without restriction, including
901efb1dd8f5e14e8c034e0100f76472d89f811afBrian * without limitation the rights to use, copy, modify, merge, publish,
1001efb1dd8f5e14e8c034e0100f76472d89f811afBrian * distribute, sub license, and/or sell copies of the Software, and to
1101efb1dd8f5e14e8c034e0100f76472d89f811afBrian * permit persons to whom the Software is furnished to do so, subject to
1201efb1dd8f5e14e8c034e0100f76472d89f811afBrian * the following conditions:
1301efb1dd8f5e14e8c034e0100f76472d89f811afBrian *
1401efb1dd8f5e14e8c034e0100f76472d89f811afBrian * The above copyright notice and this permission notice (including the
1501efb1dd8f5e14e8c034e0100f76472d89f811afBrian * next paragraph) shall be included in all copies or substantial portions
1601efb1dd8f5e14e8c034e0100f76472d89f811afBrian * of the Software.
1701efb1dd8f5e14e8c034e0100f76472d89f811afBrian *
1801efb1dd8f5e14e8c034e0100f76472d89f811afBrian * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1901efb1dd8f5e14e8c034e0100f76472d89f811afBrian * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2001efb1dd8f5e14e8c034e0100f76472d89f811afBrian * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
2101efb1dd8f5e14e8c034e0100f76472d89f811afBrian * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
2201efb1dd8f5e14e8c034e0100f76472d89f811afBrian * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2301efb1dd8f5e14e8c034e0100f76472d89f811afBrian * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2401efb1dd8f5e14e8c034e0100f76472d89f811afBrian * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2501efb1dd8f5e14e8c034e0100f76472d89f811afBrian *
2601efb1dd8f5e14e8c034e0100f76472d89f811afBrian **************************************************************************/
2701efb1dd8f5e14e8c034e0100f76472d89f811afBrian
2801efb1dd8f5e14e8c034e0100f76472d89f811afBrian#ifndef ST_CB_QUERYOBJ_H
2901efb1dd8f5e14e8c034e0100f76472d89f811afBrian#define ST_CB_QUERYOBJ_H
3001efb1dd8f5e14e8c034e0100f76472d89f811afBrian
3101efb1dd8f5e14e8c034e0100f76472d89f811afBrian
32edc09358f72cd48cb2315daf23c82e7646aeaea3Vinson Lee#include "main/mfeatures.h"
3316775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu#include "main/mtypes.h"
3416775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu
35f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul/**
36f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul * Subclass of gl_query_object
37f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul */
38f1b382d2e66855d49354356f2d3209652aaf5987Brian Paulstruct st_query_object
39f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul{
40f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul   struct gl_query_object base;
41f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul   struct pipe_query *pq;
421e0afa695b56665ad89771589d728b2479a7b081Brian Paul   unsigned type;  /**< PIPE_QUERY_x */
43f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul};
44f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul
45f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul
46f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul/**
47f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul * Cast wrapper
48f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul */
49f1b382d2e66855d49354356f2d3209652aaf5987Brian Paulstatic INLINE struct st_query_object *
50f1b382d2e66855d49354356f2d3209652aaf5987Brian Paulst_query_object(struct gl_query_object *q)
51f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul{
52f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul   return (struct st_query_object *) q;
53f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul}
54f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul
55f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul
5616775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu#if FEATURE_queryobj
57f1b382d2e66855d49354356f2d3209652aaf5987Brian Paul
5801efb1dd8f5e14e8c034e0100f76472d89f811afBrianextern void
5901efb1dd8f5e14e8c034e0100f76472d89f811afBrianst_init_query_functions(struct dd_function_table *functions);
6001efb1dd8f5e14e8c034e0100f76472d89f811afBrian
6116775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu#else
6216775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu
6316775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wustatic INLINE void
6416775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wust_init_query_functions(struct dd_function_table *functions)
6516775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu{
6616775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu}
6716775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu
6816775f4951e4a515167a8ec4115b692c256c5f16Chia-I Wu#endif /* FEATURE_queryobj */
6901efb1dd8f5e14e8c034e0100f76472d89f811afBrian
7001efb1dd8f5e14e8c034e0100f76472d89f811afBrian#endif
71