18a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul/*
28a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * Mesa 3-D graphics library
3d56928f10dee6a60f0df83391564550ec9d44b80Brian Paul * Version:  6.3
48a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul *
5f959f6e1dc27c71fc0ccc56e09b29101b3bf3b97Brian Paul * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
68a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul *
78a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * Permission is hereby granted, free of charge, to any person obtaining a
88a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * copy of this software and associated documentation files (the "Software"),
98a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * to deal in the Software without restriction, including without limitation
108a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense,
118a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * and/or sell copies of the Software, and to permit persons to whom the
128a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * Software is furnished to do so, subject to the following conditions:
138a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul *
148a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * The above copyright notice and this permission notice shall be included
158a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * in all copies or substantial portions of the Software.
168a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul *
178a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
188a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
198a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
208a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
218a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
228a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
238a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul */
248a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
258a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
268a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul#include "glheader.h"
27d56928f10dee6a60f0df83391564550ec9d44b80Brian Paul#include "bufferobj.h"
288a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul#include "colormac.h"
298a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul#include "histogram.h"
303fdd9fa556e9ba48244cb2b3966d3bfb0b84731bVinson Lee#include "macros.h"
31db61b9ce39bccc43140357652ceb78baaf2aea44Vinson Lee#include "mfeatures.h"
322cf44390d1e819f23e1d7ceb3199276c9148c647Chia-I Wu#include "main/dispatch.h"
338a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
348a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
35cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu#if FEATURE_histogram
36cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu
37a46bd6f96a78525dc98bcb2176494e6d6dce5dceBrian Paul/**********************************************************************
38a46bd6f96a78525dc98bcb2176494e6d6dce5dceBrian Paul * API functions
39a46bd6f96a78525dc98bcb2176494e6d6dce5dceBrian Paul */
40a46bd6f96a78525dc98bcb2176494e6d6dce5dceBrian Paul
41a46bd6f96a78525dc98bcb2176494e6d6dce5dceBrian Paul
42cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu/* this is defined below */
43cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY _mesa_ResetMinmax(GLenum target);
44cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu
45cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu
46cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
476b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul_mesa_GetnMinmaxARB(GLenum target, GLboolean reset, GLenum format,
486b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul                    GLenum type, GLsizei bufSize, GLvoid *values)
498a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
508a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
51203f395aaf717a6faf21a76979cc24d544ae148bBrian Paul
527126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glGetMinmax");
538a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
548a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
558a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
56cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
576b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul_mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type,
586b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul                GLvoid *values)
596b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul{
606b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul   _mesa_GetnMinmaxARB(target, reset, format, type, INT_MAX, values);
616b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul}
626b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul
636b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul
646b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paulstatic void GLAPIENTRY
656b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul_mesa_GetnHistogramARB(GLenum target, GLboolean reset, GLenum format,
666b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul                       GLenum type, GLsizei bufSize, GLvoid *values)
678a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
688a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
69cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
707126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glGetHistogram");
718a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
728a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
738a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
74cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
756b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul_mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type,
766b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul                   GLvoid *values)
776b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul{
786b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul   _mesa_GetnHistogramARB(target, reset, format, type, INT_MAX, values);
796b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul}
806b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul
816b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul
826b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paulstatic void GLAPIENTRY
838a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_GetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params)
848a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
858a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
868a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
877126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glGetHistogramParameterfv");
888a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
898a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
908a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
91cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
928a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_GetHistogramParameteriv(GLenum target, GLenum pname, GLint *params)
938a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
948a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
958a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
967126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glGetHistogramParameteriv");
978a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
988a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
998a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
100cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
1018a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_GetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params)
1028a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
1038a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
1048a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
10508836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetMinmaxParameterfv");
1068a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
1078a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1088a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
109cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
1108a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_GetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params)
1118a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
1128a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
1138a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1147126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glGetMinmaxParameteriv");
1158a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
1168a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1178a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
118cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
1198a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_Histogram(GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
1208a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
1218a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
1228a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1237126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glHistogram");
1248a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
1258a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1268a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
127cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
1288a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_Minmax(GLenum target, GLenum internalFormat, GLboolean sink)
1298a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
1308a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
1318a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1327126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glMinmax");
1338a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
1348a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1358a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
136cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
1378a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_ResetHistogram(GLenum target)
1388a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
1398a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
1408a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1417126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glResetHistogram");
1428a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
1438a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1448a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
145cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wustatic void GLAPIENTRY
1468a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul_mesa_ResetMinmax(GLenum target)
1478a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul{
1488a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul   GET_CURRENT_CONTEXT(ctx);
1498a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul
1507126e38d9037da66fd531c4cb02b3843b68b84ffEric Anholt   _mesa_error(ctx, GL_INVALID_OPERATION, "glResetMinmax");
1518a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul}
1526dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell
1536dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell
154cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wuvoid
155cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu_mesa_init_histogram_dispatch(struct _glapi_table *disp)
156cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu{
157cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_GetHistogram(disp, _mesa_GetHistogram);
158cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_GetHistogramParameterfv(disp, _mesa_GetHistogramParameterfv);
159cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_GetHistogramParameteriv(disp, _mesa_GetHistogramParameteriv);
160cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_GetMinmax(disp, _mesa_GetMinmax);
161cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_GetMinmaxParameterfv(disp, _mesa_GetMinmaxParameterfv);
162cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_GetMinmaxParameteriv(disp, _mesa_GetMinmaxParameteriv);
163cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_Histogram(disp, _mesa_Histogram);
164cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_Minmax(disp, _mesa_Minmax);
165cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_ResetHistogram(disp, _mesa_ResetHistogram);
166cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu   SET_ResetMinmax(disp, _mesa_ResetMinmax);
1676b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul
1686b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul   /* GL_ARB_robustness */
1696b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul   SET_GetnHistogramARB(disp, _mesa_GetnHistogramARB);
1706b329b9274b18c50f4177eef7ee087d50ebc1525Brian Paul   SET_GetnMinmaxARB(disp, _mesa_GetnMinmaxARB);
171cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu}
172cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu
173cab7ea03688ec73dd71c0b969f2db30cabeb713cChia-I Wu#endif /* FEATURE_histogram */
174