void StateSystem::BlendState::getGL()
{
  GLuint stateSet = 0;
  separateEnable = 0;
  for (GLuint i = 0; i < MAX_DRAWBUFFERS; i++){
    if (setBitState(separateEnable,i, glIsEnabledi( GL_BLEND, i))) stateSet++;
  }
  if (stateSet == MAX_DRAWBUFFERS){
    separateEnable = 0;
  }

  GLuint numEqual = 1;
  for (GLuint i = 0; i < MAX_DRAWBUFFERS; i++){
    glGetIntegeri_v(GL_BLEND_SRC_RGB,i,(GLint*)&blends[i].rgb.srcw);
    glGetIntegeri_v(GL_BLEND_DST_RGB,i,(GLint*)&blends[i].rgb.dstw);
    glGetIntegeri_v(GL_BLEND_EQUATION_RGB,i,(GLint*)&blends[i].rgb.equ);

    glGetIntegeri_v(GL_BLEND_SRC_ALPHA,i,(GLint*)&blends[i].alpha.srcw);
    glGetIntegeri_v(GL_BLEND_DST_ALPHA,i,(GLint*)&blends[i].alpha.dstw);
    glGetIntegeri_v(GL_BLEND_EQUATION_ALPHA,i,(GLint*)&blends[i].alpha.equ);

    if (i > 1 && memcmp(&blends[i].rgb,&blends[i-1].rgb,sizeof(blends[i].rgb))==0 && memcmp(&blends[i].alpha,&blends[i-1].alpha,sizeof(blends[i].alpha))==0){
      numEqual++;
    }
  }

  useSeparate = numEqual != MAX_DRAWBUFFERS;

  //glGetFloatv(GL_BLEND_COLOR,color);
}
void StateSystem::ScissorEnableState::getGL()
{
  GLuint stateSet = 0;
  separateEnable = 0;
  for (GLuint i = 0; i < MAX_DRAWBUFFERS; i++){
    if (setBitState(separateEnable,i, glIsEnabledi( GL_BLEND, i))) stateSet++;
  }
  if (stateSet == MAX_DRAWBUFFERS){
    separateEnable = 0;
  }
}
PIGLIT_GL_TEST_CONFIG_END

/**
 * Test that ScissorArrayv, ScissorIndexed(v), GetIntegeri_v give the
 * "expected_error" gl error.  Given the values for "first" and "count"
 * or "index" in range [first, first+count).
 */
static bool
check_sc_index(GLuint first, GLsizei count, GLenum expected_error)
{
	static const GLint sv[] = {0, 10, 20, 35};
	GLint *mv, svGet[4];
	unsigned int i;
	bool pass = true;
	const unsigned int numIterate = (expected_error == GL_NO_ERROR)
		? count : 1;

	mv = malloc(sizeof(GLint) * 4 * count);
	if (mv == NULL)
		return false;
	for (i = 0; i < count; i++) {
		mv[i * 4] = sv[0];
		mv[i * 4 + 1] = sv[1];
		mv[i * 4 + 2] = sv[2];
		mv[i * 4 + 3] = sv[3];
	}
	glScissorArrayv(first, count, mv);
	free(mv);
	pass = piglit_check_gl_error(expected_error) && pass;

	/* only iterate multiple indices for no error case */
	for (i = count; i > count - numIterate; i--) {
		glScissorIndexed(first + i - 1, sv[0], sv[1], sv[2], sv[3]);
		pass = piglit_check_gl_error(expected_error) && pass;

		glGetIntegeri_v(GL_SCISSOR_BOX, first + i - 1, svGet);
		pass = piglit_check_gl_error(expected_error) && pass;

		glEnablei(GL_SCISSOR_TEST, first + i - 1);
		pass = piglit_check_gl_error(expected_error) && pass;

		glDisablei(GL_SCISSOR_TEST, first + i - 1);
		pass = piglit_check_gl_error(expected_error) && pass;

		glIsEnabledi(GL_SCISSOR_TEST, first + i - 1);
		pass = piglit_check_gl_error(expected_error) && pass;
	}

	return pass;
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengles_GLES32_glIsEnabledi(JNIEnv *__env, jclass clazz, jint target, jint index) {
    glIsEnablediPROC glIsEnabledi = (glIsEnablediPROC)tlsGetFunction(334);
    UNUSED_PARAM(clazz)
    return (jboolean)glIsEnabledi(target, index);
}
Beispiel #5
0
bool isEnabled(const GLenum capability, const int index)
{
    GLboolean value = glIsEnabledi(capability, index);

    return value == GL_TRUE;
}