예제 #1
0
/**
 * Shut down the shader.
 * This must be run from within a valid GL context!
 */
void GLShader::end(void)
{
	switch (m_shaderType) {
		case ST_GL_ARB_FRAGMENT_PROGRAM:
#ifdef ENABLE_ATI_TEXT_FRAGMENT_SHADER
		case ST_GL_ATI_TEXT_FRAGMENT_SHADER:
#endif
			// Delete the ARB program.
			if (m_ARB_program > 0)
				glDeleteProgramsARB(1, &m_ARB_program);
			break;

		case ST_GL_ATI_FRAGMENT_SHADER:
			if (m_ATI_fragment_shader > 0)
				glDeleteFragmentShaderATI(m_ATI_fragment_shader);
			break;

		default:
			break;
	}
}
예제 #2
0
void
piglit_init(int argc, char **argv)
{
	bool pass = true;

	piglit_require_extension("GL_ATI_fragment_shader");

	glBeginFragmentShaderATI();

	pass &= piglit_check_gl_error(GL_NO_ERROR);
	glGenFragmentShadersATI(1);
	pass &= piglit_check_gl_error(GL_INVALID_OPERATION);

	glBindFragmentShaderATI(2);
	pass &= piglit_check_gl_error(GL_INVALID_OPERATION);

	glDeleteFragmentShaderATI(3);
	pass &= piglit_check_gl_error(GL_INVALID_OPERATION);

	glBeginFragmentShaderATI();
	pass &= piglit_check_gl_error(GL_INVALID_OPERATION);

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
}
	cGLState_ATIDiffuse::~cGLState_ATIDiffuse()
	{
		Log("Deleting ATI shader to %d\n",mlBind);
		if (mlBind) glDeleteFragmentShaderATI(mlBind);
	}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_ATIFragmentShader_nglDeleteFragmentShaderATI(JNIEnv *env, jclass clazz, jint id, jlong function_pointer) {
	glDeleteFragmentShaderATIPROC glDeleteFragmentShaderATI = (glDeleteFragmentShaderATIPROC)((intptr_t)function_pointer);
	glDeleteFragmentShaderATI(id);
}