Esempio n. 1
0
void StateSystem::DepthRangeState::applyGL() const
{
  if (useSeparate){
    glDepthRangeArrayv(0,MAX_VIEWPORTS, &depths[0].nearPlane);
  }
  else{
    glDepthRange(depths[0].nearPlane,depths[0].farPlane);
  }
}
Esempio n. 2
0
File: bounds.c Progetto: RAOF/piglit
/**
 * Test clamping for depth range near and far. Make sure clamped
 *  to [0, 1]. Test default values for near and far.
 * OpenGL 4.3 Core section 13.6.1 ref:
 *    "Values in v are each clamped to the range [0, 1] when specified."
 *
 */
static bool
depth_range_bounds(GLint maxVP)
{
	bool pass = true;
	GLdouble dr[2], drGet[2];
	int i;

	/* intial values for near, far are 0.0, 1.0 repsectively */
	for (i = 0; i < maxVP; i++) {
		glGetDoublei_v(GL_DEPTH_RANGE, i, dr);
		if (dr[0] != 0.0 || dr[1] != 1.0) {
			printf("depth_range default value wrong for idx %d\n",
			       i);
			pass = false;
		}
	}
	pass = piglit_check_gl_error(GL_NO_ERROR) && pass;

	/* test clamping of depth_range values */
	dr[0] = -0.001;
	dr[1] = 2.0;
	glDepthRangeArrayv(0, 1, dr);
	glGetDoublei_v(GL_DEPTH_RANGE, 0, drGet);
	if (drGet[0] != 0.0 || drGet[1] != 1.0) {
		printf("depth_range clamping failed glDepthRangeArrayv\n");
		pass = false;
	}
	glDepthRangeIndexed(1, dr[0], dr[1]);
	glGetDoublei_v(GL_DEPTH_RANGE, 1, drGet);
	if (drGet[0] != 0.0 || drGet[1] != 1.0) {
		printf("depth_range clamping failed glDepthRangeIndexed\n");
		pass = false;
	}

	return pass;
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL41_nglDepthRangeArrayv(JNIEnv *env, jclass clazz, jint first, jint count, jlong v, jlong function_pointer) {
	const GLdouble *v_address = (const GLdouble *)(intptr_t)v;
	glDepthRangeArrayvPROC glDepthRangeArrayv = (glDepthRangeArrayvPROC)((intptr_t)function_pointer);
	glDepthRangeArrayv(first, count, v_address);
}