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); }
bool isEnabled(const GLenum capability, const int index) { GLboolean value = glIsEnabledi(capability, index); return value == GL_TRUE; }