📄 get.c
字号:
/***
*** NOTE!!! DO NOT EDIT THIS FILE!!! IT IS GENERATED BY get_gen.py
***/
#include "glheader.h"
#include "context.h"
#include "enable.h"
#include "extensions.h"
#include "fbobject.h"
#include "get.h"
#include "macros.h"
#include "mtypes.h"
#include "state.h"
#include "texcompress.h"
#define FLOAT_TO_BOOLEAN(X) ( (X) ? GL_TRUE : GL_FALSE )
#define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
#define ENUM_TO_BOOLEAN(E) ( (E) ? GL_TRUE : GL_FALSE )
#define ENUM_TO_INT(E) ( (GLint) (E) )
#define ENUM_TO_FLOAT(E) ( (GLfloat) (E) )
#define BOOLEAN_TO_INT(B) ( (GLint) (B) )
#define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
/* Check if named extension is enabled, if not generate error and return */
#define CHECK1(E1, str, PNAME) \
if (!ctx->Extensions.E1) { \
_mesa_error(ctx, GL_INVALID_VALUE, \
"glGet" str "v(0x%x)", (int) PNAME); \
return; \
}
#define CHECK2(E1, E2, str, PNAME) \
if (!ctx->Extensions.E1 && !ctx->Extensions.E2) { \
_mesa_error(ctx, GL_INVALID_VALUE, \
"glGet" str "v(0x%x)", (int) PNAME); \
return; \
}
#define CHECK_EXTENSION_B(EXTNAME, PNAME) \
CHECK1(EXTNAME, "Boolean", PNAME )
#define CHECK_EXTENSION_I(EXTNAME, PNAME) \
CHECK1(EXTNAME, "Integer", PNAME )
#define CHECK_EXTENSION_F(EXTNAME, PNAME) \
CHECK1(EXTNAME, "Float", PNAME )
/**
* Helper routine.
*/
static GLenum
pixel_texgen_mode(const GLcontext *ctx)
{
if (ctx->Pixel.FragmentRgbSource == GL_CURRENT_RASTER_POSITION) {
if (ctx->Pixel.FragmentAlphaSource == GL_CURRENT_RASTER_POSITION) {
return GL_RGBA;
}
else {
return GL_RGB;
}
}
else {
if (ctx->Pixel.FragmentAlphaSource == GL_CURRENT_RASTER_POSITION) {
return GL_ALPHA;
}
else {
return GL_NONE;
}
}
}
void GLAPIENTRY
_mesa_GetBooleanv( GLenum pname, GLboolean *params )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END(ctx);
if (!params)
return;
if (ctx->NewState)
_mesa_update_state(ctx);
if (ctx->Driver.GetBooleanv &&
ctx->Driver.GetBooleanv(ctx, pname, params))
return;
switch (pname) {
case GL_ACCUM_RED_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumRedBits);
break;
case GL_ACCUM_GREEN_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumGreenBits);
break;
case GL_ACCUM_BLUE_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumBlueBits);
break;
case GL_ACCUM_ALPHA_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.accumAlphaBits);
break;
case GL_ACCUM_CLEAR_VALUE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Accum.ClearColor[3]);
break;
case GL_ALPHA_BIAS:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaBias);
break;
case GL_ALPHA_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.alphaBits);
break;
case GL_ALPHA_SCALE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.AlphaScale);
break;
case GL_ALPHA_TEST:
params[0] = ctx->Color.AlphaEnabled;
break;
case GL_ALPHA_TEST_FUNC:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.AlphaFunc);
break;
case GL_ALPHA_TEST_REF:
params[0] = FLOAT_TO_BOOLEAN(ctx->Color.AlphaRef);
break;
case GL_ATTRIB_STACK_DEPTH:
params[0] = INT_TO_BOOLEAN(ctx->AttribStackDepth);
break;
case GL_AUTO_NORMAL:
params[0] = ctx->Eval.AutoNormal;
break;
case GL_AUX_BUFFERS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.numAuxBuffers);
break;
case GL_BLEND:
params[0] = ctx->Color.BlendEnabled;
break;
case GL_BLEND_DST:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB);
break;
case GL_BLEND_SRC:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB);
break;
case GL_BLEND_SRC_RGB_EXT:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcRGB);
break;
case GL_BLEND_DST_RGB_EXT:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstRGB);
break;
case GL_BLEND_SRC_ALPHA_EXT:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendSrcA);
break;
case GL_BLEND_DST_ALPHA_EXT:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendDstA);
break;
case GL_BLEND_EQUATION:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationRGB );
break;
case GL_BLEND_EQUATION_ALPHA_EXT:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.BlendEquationA );
break;
case GL_BLEND_COLOR_EXT:
params[0] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Color.BlendColor[3]);
break;
case GL_BLUE_BIAS:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueBias);
break;
case GL_BLUE_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.blueBits);
break;
case GL_BLUE_SCALE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.BlueScale);
break;
case GL_CLIENT_ATTRIB_STACK_DEPTH:
params[0] = INT_TO_BOOLEAN(ctx->ClientAttribStackDepth);
break;
case GL_CLIP_PLANE0:
params[0] = (ctx->Transform.ClipPlanesEnabled >> 0) & 1;
break;
case GL_CLIP_PLANE1:
params[0] = (ctx->Transform.ClipPlanesEnabled >> 1) & 1;
break;
case GL_CLIP_PLANE2:
params[0] = (ctx->Transform.ClipPlanesEnabled >> 2) & 1;
break;
case GL_CLIP_PLANE3:
params[0] = (ctx->Transform.ClipPlanesEnabled >> 3) & 1;
break;
case GL_CLIP_PLANE4:
params[0] = (ctx->Transform.ClipPlanesEnabled >> 4) & 1;
break;
case GL_CLIP_PLANE5:
params[0] = (ctx->Transform.ClipPlanesEnabled >> 5) & 1;
break;
case GL_COLOR_CLEAR_VALUE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Color.ClearColor[3]);
break;
case GL_COLOR_MATERIAL:
params[0] = ctx->Light.ColorMaterialEnabled;
break;
case GL_COLOR_MATERIAL_FACE:
params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialFace);
break;
case GL_COLOR_MATERIAL_PARAMETER:
params[0] = ENUM_TO_BOOLEAN(ctx->Light.ColorMaterialMode);
break;
case GL_COLOR_WRITEMASK:
params[0] = INT_TO_BOOLEAN(ctx->Color.ColorMask[RCOMP] ? 1 : 0);
params[1] = INT_TO_BOOLEAN(ctx->Color.ColorMask[GCOMP] ? 1 : 0);
params[2] = INT_TO_BOOLEAN(ctx->Color.ColorMask[BCOMP] ? 1 : 0);
params[3] = INT_TO_BOOLEAN(ctx->Color.ColorMask[ACOMP] ? 1 : 0);
break;
case GL_CULL_FACE:
params[0] = ctx->Polygon.CullFlag;
break;
case GL_CULL_FACE_MODE:
params[0] = ENUM_TO_BOOLEAN(ctx->Polygon.CullFaceMode);
break;
case GL_CURRENT_COLOR:
{
FLUSH_CURRENT(ctx, 0);
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3]);
}
break;
case GL_CURRENT_INDEX:
{
FLUSH_CURRENT(ctx, 0);
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Index);
}
break;
case GL_CURRENT_NORMAL:
{
FLUSH_CURRENT(ctx, 0);
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2]);
}
break;
case GL_CURRENT_RASTER_COLOR:
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterColor[3]);
break;
case GL_CURRENT_RASTER_DISTANCE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterDistance);
break;
case GL_CURRENT_RASTER_INDEX:
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterIndex);
break;
case GL_CURRENT_RASTER_POSITION:
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterPos[3]);
break;
case GL_CURRENT_RASTER_TEXTURE_COORDS:
{
const GLuint texUnit = ctx->Texture.CurrentUnit;
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Current.RasterTexCoords[texUnit][3]);
}
break;
case GL_CURRENT_RASTER_POSITION_VALID:
params[0] = ctx->Current.RasterPosValid;
break;
case GL_CURRENT_TEXTURE_COORDS:
{
const GLuint texUnit = ctx->Texture.CurrentUnit;
params[0] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][0]);
params[1] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][1]);
params[2] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][2]);
params[3] = FLOAT_TO_BOOLEAN(ctx->Current.Attrib[VERT_ATTRIB_TEX0 + texUnit][3]);
}
break;
case GL_DEPTH_BIAS:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthBias);
break;
case GL_DEPTH_BITS:
params[0] = INT_TO_BOOLEAN(ctx->DrawBuffer->Visual.depthBits);
break;
case GL_DEPTH_CLEAR_VALUE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Depth.Clear);
break;
case GL_DEPTH_FUNC:
params[0] = ENUM_TO_BOOLEAN(ctx->Depth.Func);
break;
case GL_DEPTH_RANGE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Viewport.Near);
params[1] = FLOAT_TO_BOOLEAN(ctx->Viewport.Far);
break;
case GL_DEPTH_SCALE:
params[0] = FLOAT_TO_BOOLEAN(ctx->Pixel.DepthScale);
break;
case GL_DEPTH_TEST:
params[0] = ctx->Depth.Test;
break;
case GL_DEPTH_WRITEMASK:
params[0] = ctx->Depth.Mask;
break;
case GL_DITHER:
params[0] = ctx->Color.DitherFlag;
break;
case GL_DOUBLEBUFFER:
params[0] = ctx->DrawBuffer->Visual.doubleBufferMode;
break;
case GL_DRAW_BUFFER:
params[0] = ENUM_TO_BOOLEAN(ctx->Color.DrawBuffer[0]);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -