Ejemplo n.º 1
0
Archivo: enable.c Proyecto: dborca/sage
GLboolean GLAPIENTRY
imm_IsEnabled (GLenum cap)
{
    switch (cap) {
	case GL_FOG:
	    return ctx_fog.fogging;
	default:
	    gl_cry(__FILE__, __LINE__, __FUNCTION__, "%x\n", cap);
	    return GL_FALSE;
    }
}
Ejemplo n.º 2
0
void GLAPIENTRY
imm_Enable (GLenum cap)
{
    FLUSH_VERTICES();

    switch (cap) {
	case GL_BLEND:
	    ctx_color.blending = GL_TRUE;
	    ctx_gl_state |= NEW_BLEND;
	    break;
	case GL_ALPHA_TEST:
	    ctx_color.alpha_test = GL_TRUE;
	    ctx_gl_state |= NEW_ALPHA;
	    break;
	case GL_DEPTH_TEST:
	    ctx_depth_test = GL_TRUE;
	    ctx_gl_state |= NEW_DEPTH;
	    break;
	case GL_CULL_FACE:
	    ctx_culling = GL_TRUE;
	    ctx_gl_state |= NEW_CULL;
	    break;
	case GL_LIGHT0:
	case GL_LIGHT1:
	case GL_LIGHT2:
	case GL_LIGHT3:
	case GL_LIGHT4:
	case GL_LIGHT5:
	case GL_LIGHT6:
	case GL_LIGHT7:
	    if (!ctx_light[cap - GL_LIGHT0].enabled) {
		list_append(&ctx_light_list, &ctx_light[cap - GL_LIGHT0]);
		ctx_light[cap - GL_LIGHT0].enabled = GL_TRUE;
		ctx_gl_state |= NEW_LIGHT;
	    }
	    break;
	case GL_LIGHTING:
	    ctx_lighting = GL_TRUE;
	    ctx_gl_state |= NEW_LIGHT;
	    break;
	case GL_NORMALIZE:
	    ctx_normalize |= NORM_NORMALIZE;
	    /* NEW normals, for HW TCL? */
	    break;
	case GL_RESCALE_NORMAL:
	    ctx_normalize |= NORM_RESCALE;
	    /* NEW normals, for HW TCL? */
	    break;
	case GL_COLOR_MATERIAL:
	    ctx_colormat = GL_TRUE;
	    break;
	case GL_TEXTURE_1D:
	    ctx_active_tex->object = ctx_active_tex->obj1d;
	    ctx_active_tex->enabled = TEXTURE_1D;
	    ctx_gl_state |= NEW_TEXTURE;
	    break;
	case GL_TEXTURE_2D:
	    ctx_active_tex->object = ctx_active_tex->obj2d;
	    ctx_active_tex->enabled = TEXTURE_2D;
	    ctx_gl_state |= NEW_TEXTURE;
	    break;
	case GL_TEXTURE_GEN_S:
	    ctx_active_tex->texgen |= TNL_GEN_S_BIT;
	    ctx_gl_state |= NEW_TEXTURE;
	    break;
	case GL_TEXTURE_GEN_T:
	    ctx_active_tex->texgen |= TNL_GEN_T_BIT;
	    ctx_gl_state |= NEW_TEXTURE;
	    break;
	case GL_TEXTURE_GEN_R:
	    ctx_active_tex->texgen |= TNL_GEN_R_BIT;
	    ctx_gl_state |= NEW_TEXTURE;
	    break;
	case GL_TEXTURE_GEN_Q:
	    ctx_active_tex->texgen |= TNL_GEN_Q_BIT;
	    ctx_gl_state |= NEW_TEXTURE;
	    break;
	case GL_FOG:
	    ctx_fog.fogging = GL_TRUE;
	    ctx_gl_state |= NEW_FOG;
	    break;
	case GL_SCISSOR_TEST:
	    ctx_scissor = GL_TRUE;
	    ctx_gl_state |= NEW_SCISSOR;
	    break;
	case GL_COLOR_SUM:
	    ctx_fog.secondary_color = GL_TRUE;
	    /* NEW ???, for HW TCL? */
	    break;
	case GL_CLIP_PLANE0:
	case GL_CLIP_PLANE1:
	case GL_CLIP_PLANE2:
	case GL_CLIP_PLANE3:
	case GL_CLIP_PLANE4:
	case GL_CLIP_PLANE5:
	    ctx_userclip |= 1 << (cap - GL_CLIP_PLANE0);
	    ctx_gl_state |= NEW_USERCLIP;
	    break;
	case GL_POLYGON_OFFSET_FILL:
	    ctx_polygon_offset_mode |= POLYGON_FILL;
	    /* NEW ???, for HW TCL? */
	    break;
	case GL_POLYGON_OFFSET_LINE:
	    ctx_polygon_offset_mode |= POLYGON_LINE;
	    /* NEW ???, for HW TCL? */
	    break;
	case GL_POLYGON_OFFSET_POINT:
	    ctx_polygon_offset_mode |= POLYGON_POINT;
	    /* NEW ???, for HW TCL? */
	    break;
	case GL_STENCIL_TEST:
	    ctx_stencil.enabled = GL_TRUE;
	    ctx_gl_state |= NEW_STENCIL;
	    break;
	case GL_POINT_SMOOTH:
	case GL_DITHER:
	case GL_TEXTURE_RECTANGLE_ARB:
	    break;
	default:
	    gl_cry(__FILE__, __LINE__, __FUNCTION__, "%x\n", cap);
    }
}