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