EXTERN_C_ENTER JNIEXPORT void JNICALL Java_org_lwjgl_opengl_NVPrimitiveRestart_glPrimitiveRestartNV(JNIEnv *__env, jclass clazz) { glPrimitiveRestartNVPROC glPrimitiveRestartNV = (glPrimitiveRestartNVPROC)tlsGetFunction(2090); UNUSED_PARAM(clazz) glPrimitiveRestartNV(); }
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_NVPrimitiveRestart_nglPrimitiveRestartNV(JNIEnv *env, jclass clazz, jlong function_pointer) { glPrimitiveRestartNVPROC glPrimitiveRestartNV = (glPrimitiveRestartNVPROC)((intptr_t)function_pointer); glPrimitiveRestartNV(); }
/** * Test glBegin(GL_TRIANGLE/LINE_STRIP), glPrimitiveRestartNV(), glEnd(). */ static bool test_begin_end(GLenum primMode) { const GLfloat x0 = 0.0, x1 = piglit_width - 10.0, dx = 20.0; const GLfloat y0 = 0.5 * piglit_height - 10.0, y1 = y0 + 20.0, dy = 20.0; GLfloat x, y; GLint vert; bool pass; piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE); glClear(GL_COLOR_BUFFER_BIT); glColor4fv(green); if (primMode == GL_TRIANGLE_STRIP) { /* Draw a tri-strip across the window, using restart to actually render * a series of quads/boxes. */ glBegin(GL_TRIANGLE_STRIP); vert = 0; for (x = x0; x <= x1; x += dx) { for (y = y0; y <= y1; y += dy) { glVertex2f(x, y); } vert++; if (vert % 2 == 0) glPrimitiveRestartNV(); } glEnd(); } else { /* Draw a line strip across the window, using restart to actually render * a series of disconnected lines. */ glLineWidth(5.0); glBegin(GL_LINE_STRIP); vert = 0; for (x = x0; x <= x1; x += dx) { y = 0.5 * piglit_height; glVertex2f(x, y); vert++; if (vert % 2 == 0) glPrimitiveRestartNV(); } glEnd(); } glFinish(); pass = check_rendering(); if (!pass) { fprintf(stderr, "%s: failure drawing with glBegin(%s) / glEnd()\n", TestName, (primMode == GL_TRIANGLE_STRIP ? "GL_TRIANGLE_STRIP" : "GL_LINE_STRIP")); } piglit_present_results(); return pass; }