state_enable.c revision 79664e45c3d7123821dcd5de01991c6de96b8794
/* Copyright (c) 2001, Stanford University
* All rights reserved
*
* See the file LICENSE.txt for information on redistributing this software.
*/
#include <stdio.h>
#include "state.h"
#include "state/cr_statetypes.h"
#include "state_internals.h"
{
unsigned int i;
i = cap - GL_CLIP_PLANE0;
if (i < g->limits.maxClipPlanes) {
return;
}
return;
}
switch (cap) {
case GL_AUTO_NORMAL:
break;
case GL_ALPHA_TEST:
break;
case GL_BLEND:
break;
case GL_COLOR_MATERIAL :
if (!val)
{
/* We're TURNING OFF color material. In this case,
* we should make sure that the very very latest
* color that was specified gets copied into the
* material parameters, since this might be our
* for an example of why). */
}
break;
#ifdef CR_EXT_secondary_color
case GL_COLOR_SUM_EXT :
if (g->extensions.EXT_secondary_color) { /* XXX does EXT_separate_specular color support this enable, too? */
}
else {
crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glEnable/glDisable(GL_COLOR_SUM_EXT) - No support for secondary color!");
return;
}
break;
#endif
case GL_CULL_FACE :
break;
case GL_DEPTH_TEST :
break;
case GL_DITHER :
break;
case GL_FOG :
break;
case GL_LIGHTING :
break;
case GL_LINE_SMOOTH :
break;
case GL_LINE_STIPPLE :
break;
case GL_COLOR_LOGIC_OP :
break;
case GL_INDEX_LOGIC_OP :
break;
case GL_NORMALIZE :
break;
case GL_POINT_SMOOTH :
break;
case GL_POLYGON_OFFSET_FILL:
break;
case GL_POLYGON_OFFSET_LINE:
break;
case GL_POLYGON_OFFSET_POINT:
break;
case GL_POLYGON_SMOOTH :
break;
case GL_POLYGON_STIPPLE :
break;
#ifdef CR_NV_register_combiners
case GL_REGISTER_COMBINERS_NV :
if (g->extensions.NV_register_combiners) {
}
else {
crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glEnable/glDisable(GL_REGISTER_COMBINERS_NV) - No support for NV_register_combiners");
return;
}
break;
#endif
#ifdef CR_NV_register_combiners2
case GL_PER_STAGE_CONSTANTS_NV :
if (g->extensions.NV_register_combiners2) {
}
else {
crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glEnable/glDisable(GL_PER_STAGE_CONSTANTS_NV) - No support for NV_register_combiners2");
return;
}
break;
#endif
#ifdef CR_NV_texture_rectangle
case GL_TEXTURE_RECTANGLE_NV:
if (g->extensions.NV_texture_rectangle) {
}
else {
return;
}
break;
#endif /* CR_NV_texture_rectangle */
#ifdef CR_OPENGL_VERSION_1_2
case GL_RESCALE_NORMAL :
break;
#endif
case GL_SCISSOR_TEST :
break;
case GL_STENCIL_TEST :
break;
case GL_TEXTURE_1D :
break;
case GL_TEXTURE_2D :
break;
#ifdef CR_OPENGL_VERSION_1_2
case GL_TEXTURE_3D :
break;
#endif
#ifdef CR_ARB_texture_cube_map
case GL_TEXTURE_CUBE_MAP_ARB:
if (g->extensions.ARB_texture_cube_map) {
}
else {
return;
}
break;
#endif /* CR_ARB_texture_cube_map */
case GL_TEXTURE_GEN_Q :
break;
case GL_TEXTURE_GEN_R :
break;
case GL_TEXTURE_GEN_S :
break;
case GL_TEXTURE_GEN_T :
break;
case GL_MAP1_COLOR_4 :
case GL_MAP1_INDEX :
case GL_MAP1_NORMAL :
case GL_MAP1_TEXTURE_COORD_1 :
case GL_MAP1_TEXTURE_COORD_2 :
case GL_MAP1_TEXTURE_COORD_3 :
case GL_MAP1_TEXTURE_COORD_4 :
case GL_MAP1_VERTEX_3 :
case GL_MAP1_VERTEX_4 :
if (g->texture.curTextureUnit != 0)
{
crStateError( __LINE__, __FILE__, GL_INVALID_OPERATION, "Map stuff was enabled while the current texture unit was not GL_TEXTURE0_ARB!" );
return;
}
break;
case GL_MAP2_COLOR_4 :
case GL_MAP2_INDEX :
case GL_MAP2_NORMAL :
case GL_MAP2_TEXTURE_COORD_1 :
case GL_MAP2_TEXTURE_COORD_2 :
case GL_MAP2_TEXTURE_COORD_3 :
case GL_MAP2_TEXTURE_COORD_4 :
case GL_MAP2_VERTEX_3 :
case GL_MAP2_VERTEX_4 :
#if 0
if (g->texture.curTextureUnit != 0)
{
crStateError( __LINE__, __FILE__, GL_INVALID_OPERATION, "Map stuff was enabled while the current texture unit was not GL_TEXTURE0_ARB!" );
return;
}
#endif
break;
#ifdef CR_ARB_multisample
case GL_MULTISAMPLE_ARB:
break;
break;
break;
case GL_SAMPLE_COVERAGE_ARB:
break;
#endif
#ifdef CR_NV_vertex_program
case GL_VERTEX_PROGRAM_NV:
if (g->extensions.NV_vertex_program) {
}
else if (g->extensions.ARB_vertex_program) {
}
else {
return;
}
break;
if (g->extensions.NV_vertex_program) {
}
else if (g->extensions.ARB_vertex_program) {
}
else {
return;
}
break;
if (g->extensions.NV_vertex_program) {
}
else if (g->extensions.ARB_vertex_program) {
}
else {
return;
}
break;
{
}
break;
{
}
break;
#endif
#ifdef CR_NV_fragment_program
case GL_FRAGMENT_PROGRAM_NV:
if (g->extensions.NV_fragment_program) {
}
else {
return;
}
break;
#endif
#ifdef CR_ARB_fragment_program
case GL_FRAGMENT_PROGRAM_ARB:
if (g->extensions.ARB_fragment_program) {
}
else {
return;
}
break;
#endif
#ifdef CR_IBM_rasterpos_clip
break;
#endif
#ifdef CR_ARB_point_sprite
case GL_POINT_SPRITE_ARB:
break;
#endif
/* Client-side enables */
case GL_VERTEX_ARRAY:
case GL_COLOR_ARRAY:
case GL_NORMAL_ARRAY:
case GL_INDEX_ARRAY:
case GL_TEXTURE_COORD_ARRAY:
case GL_EDGE_FLAG_ARRAY:
#ifdef CR_EXT_fog_coord
#endif
#ifdef CR_EXT_secondary_color
#endif
#ifdef CR_NV_vertex_program
#endif
if (val)
else
break;
#ifdef CR_EXT_stencil_two_side
break;
#endif
default:
crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glEnable/glDisable called with bogus cap: 0x%x", cap);
return;
}
}
{
CRContext *g = GetCurrentContext();
if (g->current.inBeginEnd)
{
return;
}
FLUSH();
}
{
CRContext *g = GetCurrentContext();
if (g->current.inBeginEnd)
{
return;
}
FLUSH();
}