⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enable.c

📁 mesa-6.5-minigui源码
💻 C
📖 第 1 页 / 共 4 页
字号:
            return;         FLUSH_VERTICES(ctx, _NEW_TEXTURE);         ctx->Texture.Unit[ctx->Texture.CurrentUnit].ColorTableEnabled = state;         break;      /* GL_EXT_convolution */      case GL_CONVOLUTION_1D:         CHECK_EXTENSION(EXT_convolution, cap);         if (ctx->Pixel.Convolution1DEnabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PIXEL);         ctx->Pixel.Convolution1DEnabled = state;         break;      case GL_CONVOLUTION_2D:         CHECK_EXTENSION(EXT_convolution, cap);         if (ctx->Pixel.Convolution2DEnabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PIXEL);         ctx->Pixel.Convolution2DEnabled = state;         break;      case GL_SEPARABLE_2D:         CHECK_EXTENSION(EXT_convolution, cap);         if (ctx->Pixel.Separable2DEnabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PIXEL);         ctx->Pixel.Separable2DEnabled = state;         break;      /* GL_ARB_texture_cube_map */      case GL_TEXTURE_CUBE_MAP_ARB:         {            const GLuint curr = ctx->Texture.CurrentUnit;            struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr];            GLuint newenabled = texUnit->Enabled & ~TEXTURE_CUBE_BIT;            CHECK_EXTENSION(ARB_texture_cube_map, cap);            if (state)               newenabled |= TEXTURE_CUBE_BIT;            if (!ctx->DrawBuffer->Visual.rgbMode                || texUnit->Enabled == newenabled)               return;            FLUSH_VERTICES(ctx, _NEW_TEXTURE);            texUnit->Enabled = newenabled;         }         break;      /* GL_EXT_secondary_color */      case GL_COLOR_SUM_EXT:         CHECK_EXTENSION2(EXT_secondary_color, ARB_vertex_program, cap);         if (ctx->Fog.ColorSumEnabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_FOG);         ctx->Fog.ColorSumEnabled = state;         break;      /* GL_ARB_multisample */      case GL_MULTISAMPLE_ARB:         CHECK_EXTENSION(ARB_multisample, cap);         if (ctx->Multisample.Enabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);         ctx->Multisample.Enabled = state;         break;      case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:         CHECK_EXTENSION(ARB_multisample, cap);         if (ctx->Multisample.SampleAlphaToCoverage == state)            return;         FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);         ctx->Multisample.SampleAlphaToCoverage = state;         break;      case GL_SAMPLE_ALPHA_TO_ONE_ARB:         CHECK_EXTENSION(ARB_multisample, cap);         if (ctx->Multisample.SampleAlphaToOne == state)            return;         FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);         ctx->Multisample.SampleAlphaToOne = state;         break;      case GL_SAMPLE_COVERAGE_ARB:         CHECK_EXTENSION(ARB_multisample, cap);         if (ctx->Multisample.SampleCoverage == state)            return;         FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);         ctx->Multisample.SampleCoverage = state;         break;      case GL_SAMPLE_COVERAGE_INVERT_ARB:         CHECK_EXTENSION(ARB_multisample, cap);         if (ctx->Multisample.SampleCoverageInvert == state)            return;         FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE);         ctx->Multisample.SampleCoverageInvert = state;         break;      /* GL_IBM_rasterpos_clip */      case GL_RASTER_POSITION_UNCLIPPED_IBM:         CHECK_EXTENSION(IBM_rasterpos_clip, cap);         if (ctx->Transform.RasterPositionUnclipped == state)            return;         FLUSH_VERTICES(ctx, _NEW_TRANSFORM);         ctx->Transform.RasterPositionUnclipped = state;         break;      /* GL_NV_point_sprite */      case GL_POINT_SPRITE_NV:         CHECK_EXTENSION2(NV_point_sprite, ARB_point_sprite, cap);         if (ctx->Point.PointSprite == state)            return;         FLUSH_VERTICES(ctx, _NEW_POINT);         ctx->Point.PointSprite = state;         break;#if FEATURE_NV_vertex_program || FEATURE_ARB_vertex_program      case GL_VERTEX_PROGRAM_ARB:         CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);         if (ctx->VertexProgram.Enabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PROGRAM);          ctx->VertexProgram.Enabled = state;         break;      case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:         CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);         if (ctx->VertexProgram.PointSizeEnabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PROGRAM);         ctx->VertexProgram.PointSizeEnabled = state;         break;      case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:         CHECK_EXTENSION2(ARB_vertex_program, NV_vertex_program, cap);         if (ctx->VertexProgram.TwoSideEnabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PROGRAM);          ctx->VertexProgram.TwoSideEnabled = state;         break;#endif#if FEATURE_NV_vertex_program      case GL_MAP1_VERTEX_ATTRIB0_4_NV:      case GL_MAP1_VERTEX_ATTRIB1_4_NV:      case GL_MAP1_VERTEX_ATTRIB2_4_NV:      case GL_MAP1_VERTEX_ATTRIB3_4_NV:      case GL_MAP1_VERTEX_ATTRIB4_4_NV:      case GL_MAP1_VERTEX_ATTRIB5_4_NV:      case GL_MAP1_VERTEX_ATTRIB6_4_NV:      case GL_MAP1_VERTEX_ATTRIB7_4_NV:      case GL_MAP1_VERTEX_ATTRIB8_4_NV:      case GL_MAP1_VERTEX_ATTRIB9_4_NV:      case GL_MAP1_VERTEX_ATTRIB10_4_NV:      case GL_MAP1_VERTEX_ATTRIB11_4_NV:      case GL_MAP1_VERTEX_ATTRIB12_4_NV:      case GL_MAP1_VERTEX_ATTRIB13_4_NV:      case GL_MAP1_VERTEX_ATTRIB14_4_NV:      case GL_MAP1_VERTEX_ATTRIB15_4_NV:         CHECK_EXTENSION(NV_vertex_program, cap);         {            const GLuint map = (GLuint) (cap - GL_MAP1_VERTEX_ATTRIB0_4_NV);            FLUSH_VERTICES(ctx, _NEW_EVAL);            ctx->Eval.Map1Attrib[map] = state;         }         break;      case GL_MAP2_VERTEX_ATTRIB0_4_NV:      case GL_MAP2_VERTEX_ATTRIB1_4_NV:      case GL_MAP2_VERTEX_ATTRIB2_4_NV:      case GL_MAP2_VERTEX_ATTRIB3_4_NV:      case GL_MAP2_VERTEX_ATTRIB4_4_NV:      case GL_MAP2_VERTEX_ATTRIB5_4_NV:      case GL_MAP2_VERTEX_ATTRIB6_4_NV:      case GL_MAP2_VERTEX_ATTRIB7_4_NV:      case GL_MAP2_VERTEX_ATTRIB8_4_NV:      case GL_MAP2_VERTEX_ATTRIB9_4_NV:      case GL_MAP2_VERTEX_ATTRIB10_4_NV:      case GL_MAP2_VERTEX_ATTRIB11_4_NV:      case GL_MAP2_VERTEX_ATTRIB12_4_NV:      case GL_MAP2_VERTEX_ATTRIB13_4_NV:      case GL_MAP2_VERTEX_ATTRIB14_4_NV:      case GL_MAP2_VERTEX_ATTRIB15_4_NV:         CHECK_EXTENSION(NV_vertex_program, cap);         {            const GLuint map = (GLuint) (cap - GL_MAP2_VERTEX_ATTRIB0_4_NV);            FLUSH_VERTICES(ctx, _NEW_EVAL);            ctx->Eval.Map2Attrib[map] = state;         }         break;#endif /* FEATURE_NV_vertex_program */#if FEATURE_NV_fragment_program      case GL_FRAGMENT_PROGRAM_NV:         CHECK_EXTENSION(NV_fragment_program, cap);         if (ctx->FragmentProgram.Enabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PROGRAM);         ctx->FragmentProgram.Enabled = state;         break;#endif /* FEATURE_NV_fragment_program */      /* GL_NV_texture_rectangle */      case GL_TEXTURE_RECTANGLE_NV:         CHECK_EXTENSION(NV_texture_rectangle, cap);         {            const GLuint curr = ctx->Texture.CurrentUnit;            struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr];            GLuint newenabled = texUnit->Enabled & ~TEXTURE_RECT_BIT;            CHECK_EXTENSION(NV_texture_rectangle, cap);            if (state)               newenabled |= TEXTURE_RECT_BIT;            if (!ctx->DrawBuffer->Visual.rgbMode                || texUnit->Enabled == newenabled)               return;            FLUSH_VERTICES(ctx, _NEW_TEXTURE);            texUnit->Enabled = newenabled;         }         break;      /* GL_EXT_stencil_two_side */      case GL_STENCIL_TEST_TWO_SIDE_EXT:         CHECK_EXTENSION(EXT_stencil_two_side, cap);         if (ctx->Stencil.TestTwoSide == state)            return;         FLUSH_VERTICES(ctx, _NEW_STENCIL);         ctx->Stencil.TestTwoSide = state;         if (state) {            ctx->_TriangleCaps |= DD_TRI_TWOSTENCIL;         } else {            ctx->_TriangleCaps &= ~DD_TRI_TWOSTENCIL;         }         break;#if FEATURE_ARB_fragment_program      case GL_FRAGMENT_PROGRAM_ARB:         CHECK_EXTENSION(ARB_fragment_program, cap);         if (ctx->FragmentProgram.Enabled == state)            return;         FLUSH_VERTICES(ctx, _NEW_PROGRAM);         ctx->FragmentProgram.Enabled = state;         break;#endif /* FEATURE_ARB_fragment_program */      /* GL_EXT_depth_bounds_test */      case GL_DEPTH_BOUNDS_TEST_EXT:         CHECK_EXTENSION(EXT_depth_bounds_test, cap);         if (state && ctx->DrawBuffer->Visual.depthBits == 0) {            _mesa_warning(ctx,                   "glEnable(GL_DEPTH_BOUNDS_TEST_EXT) but no depth buffer");            return;         }         if (ctx->Depth.BoundsTest == state)            return;         FLUSH_VERTICES(ctx, _NEW_DEPTH);         ctx->Depth.BoundsTest = state;         break;      /* GL_MESA_program_debug */      case GL_FRAGMENT_PROGRAM_CALLBACK_MESA:         CHECK_EXTENSION(MESA_program_debug, cap);         ctx->FragmentProgram.CallbackEnabled = state;         break;      case GL_VERTEX_PROGRAM_CALLBACK_MESA:         CHECK_EXTENSION(MESA_program_debug, cap);         ctx->VertexProgram.CallbackEnabled = state;         break;#if FEATURE_ATI_fragment_shader      case GL_FRAGMENT_SHADER_ATI:        CHECK_EXTENSION(ATI_fragment_shader, cap);	if (ctx->ATIFragmentShader.Enabled == state)	  return;	FLUSH_VERTICES(ctx, _NEW_PROGRAM);	ctx->ATIFragmentShader.Enabled = state;        break;#endif      default:         _mesa_error(ctx, GL_INVALID_ENUM,                     "%s(0x%x)", state ? "glEnable" : "glDisable", cap);         return;   }   if (ctx->Driver.Enable) {      (*ctx->Driver.Enable)( ctx, cap, state );   }}/** * Enable GL capability. * * \param cap capability. * * \sa glEnable(). * * Get's the current context, assures that we're outside glBegin()/glEnd() and * calls _mesa_set_enable(). */void GLAPIENTRY_mesa_Enable( GLenum cap ){   GET_CURRENT_CONTEXT(ctx);   ASSERT_OUTSIDE_BEGIN_END(ctx);   _mesa_set_enable( ctx, cap, GL_TRUE );}/** * Disable GL capability. * * \param cap capability. * * \sa glDisable(). * * Get's the current context, assures that we're outside glBegin()/glEnd() and * calls _mesa_set_enable(). */void GLAPIENTRY_mesa_Disable( GLenum cap ){   GET_CURRENT_CONTEXT(ctx);   ASSERT_OUTSIDE_BEGIN_END(ctx);   _mesa_set_enable( ctx, cap, GL_FALSE );}#undef CHECK_EXTENSION#define CHECK_EXTENSION(EXTNAME)			\   if (!ctx->Extensions.EXTNAME) {			\      _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabled");	\      return GL_FALSE;					\   }#undef CHECK_EXTENSION2#define CHECK_EXTENSION2(EXT1, EXT2)				\   if (!ctx->Extensions.EXT1 && !ctx->Extensions.EXT2) {	\      _mesa_error(ctx, GL_INVALID_ENUM, "glIsEnabled");		\      return GL_FALSE;						\   }/** * Test whether a capability is enabled. * * \param cap capability. * * Returns the state of the specified capability from the current GL context. * For the capabilities associated with extensions verifies that those * extensions are effectively present before reporting. */GLboolean GLAPIENTRY_mesa_IsEnabled( GLenum cap ){   GET_CURRENT_CONTEXT(ctx);   switch (cap) {      case GL_ALPHA_TEST:         return ctx->Color.AlphaEnabled;      case GL_AUTO_NORMAL:	 return ctx->Eval.AutoNormal;      case GL_BLEND:         return ctx->Color.BlendEnabled;      case GL_CLIP_PLANE0:      case GL_CLIP_PLANE1:      case GL_CLIP_PLANE2:      case GL_CLIP_PLANE3:      case GL_CLIP_PLANE4:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -