inline void VL_glPointParameterfv( GLenum pname, const GLfloat* params) { if (glPointParameterfv) glPointParameterfv(pname,(GLfloat*)params); else if (glPointParameterfvARB) glPointParameterfvARB(pname,(GLfloat*)params); else if (glPointParameterfvEXT) glPointParameterfvEXT(pname,(GLfloat*)params); else VL_UNSUPPORTED_FUNC(); }
void GLStateCacheManagerImp::setPointParameters(GLfloat *attenuation, float minSize, float maxSize) { if (minSize != mPointSizeMin) { mPointSizeMin = minSize; const Ogre::RenderSystemCapabilities* caps = dynamic_cast<GLRenderSystem*>(Root::getSingleton().getRenderSystem())->getCapabilities(); if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS)) glPointParameterf(GL_POINT_SIZE_MIN, mPointSizeMin); else if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_ARB)) glPointParameterfARB(GL_POINT_SIZE_MIN, mPointSizeMin); else if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_EXT)) glPointParameterfEXT(GL_POINT_SIZE_MIN, mPointSizeMin); } if (maxSize != mPointSizeMax) { mPointSizeMax = maxSize; const Ogre::RenderSystemCapabilities* caps = dynamic_cast<GLRenderSystem*>(Root::getSingleton().getRenderSystem())->getCapabilities(); if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS)) glPointParameterf(GL_POINT_SIZE_MAX, mPointSizeMax); else if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_ARB)) glPointParameterfARB(GL_POINT_SIZE_MAX, mPointSizeMax); else if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_EXT)) glPointParameterfEXT(GL_POINT_SIZE_MAX, mPointSizeMax); } if (attenuation[0] != mPointAttenuation[0] || attenuation[1] != mPointAttenuation[1] || attenuation[2] != mPointAttenuation[2]) { mPointAttenuation[0] = attenuation[0]; mPointAttenuation[1] = attenuation[1]; mPointAttenuation[2] = attenuation[2]; const Ogre::RenderSystemCapabilities* caps = dynamic_cast<GLRenderSystem*>(Root::getSingleton().getRenderSystem())->getCapabilities(); if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS)) glPointParameterfv(GL_POINT_DISTANCE_ATTENUATION, &mPointAttenuation[0]); else if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_ARB)) glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION, &mPointAttenuation[0]); else if (caps->hasCapability(RSC_POINT_EXTENDED_PARAMETERS_EXT)) glPointParameterfvEXT(GL_POINT_DISTANCE_ATTENUATION, &mPointAttenuation[0]); } }
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTPointParameters_nglPointParameterfvEXT(JNIEnv *env, jclass clazz, jint pname, jlong pfParams, jlong function_pointer) { const GLfloat *pfParams_address = (const GLfloat *)(intptr_t)pfParams; glPointParameterfvEXTPROC glPointParameterfvEXT = (glPointParameterfvEXTPROC)((intptr_t)function_pointer); glPointParameterfvEXT(pname, pfParams_address); }