public void initGLState() { System.err.println("GL_VENDOR: " + glGetString(GL_VENDOR)); System.err.println("GL_RENDERER: " + glGetString(GL_RENDERER)); System.err.println("GL_VERSION: " + glGetString(GL_VERSION)); MemoryStack s = stackPush(); // setup ogl glLightfv(GL_LIGHT0, GL_POSITION, s.floats(5.0f, 5.0f, 10.0f, 0.0f)); glEnable(GL_CULL_FACE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); /* make the gears */ gear1 = glGenLists(1); glNewList(gear1, GL_COMPILE); glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, s.floats(0.8f, 0.1f, 0.0f, 1.0f)); gear(1.0f, 4.0f, 1.0f, 20, 0.7f); glEndList(); gear2 = glGenLists(1); glNewList(gear2, GL_COMPILE); glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, s.floats(0.0f, 0.8f, 0.2f, 1.0f)); gear(0.5f, 2.0f, 2.0f, 10, 0.7f); glEndList(); gear3 = glGenLists(1); glNewList(gear3, GL_COMPILE); glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, s.floats(0.2f, 0.2f, 1.0f, 1.0f)); gear(1.3f, 2.0f, 0.5f, 10, 0.7f); glEndList(); s.pop(); glEnable(GL_NORMALIZE); glMatrixMode(GL_PROJECTION); float h = (float) 300 / (float) 300; glFrustum(-1.0f, 1.0f, -h, h, 5.0f, 60.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0.0f, 0.0f, -40.0f); }
private static long getDevice(long platform, CLCapabilities platformCaps, int deviceType) { MemoryStack stack = stackPush(); try { IntBuffer pi = stack.mallocInt(1); checkCLError(clGetDeviceIDs(platform, deviceType, null, pi)); PointerBuffer devices = stack.mallocPointer(pi.get(0)); checkCLError(clGetDeviceIDs(platform, deviceType, devices, null)); for (int i = 0; i < devices.capacity(); i++) { long device = devices.get(i); CLCapabilities caps = CL.createDeviceCapabilities(device, platformCaps); if (!(caps.cl_khr_gl_sharing || caps.cl_APPLE_gl_sharing)) continue; return device; } } finally { stack.pop(); } return NULL; }