|
From: Daniele C. <dca...@in...> - 2004-09-30 16:16:08
|
The newest function seem work fine.. Daniele At 17.52 30/09/04, you wrote: >OK, that looks about right (for the record I get 1.3 on Mac OS X 10.3.5). >I had thought OpenGL on Mac OS X was up to 1.4 or better but apparently it >differs depending on the card driver. > >Regardless, the function below should work in all cases now - perhaps >someone can check this in when they have a minute. > >Frank. > >On 30-Sep-04, at 3:39 AM, Daniele Cavallini wrote: > >>I try function with Window 98 and Windows Xp >>In Window 98 I obtain: >>openGLVersion = "1.15" >>majorVers=1 >>minorVers=15 >> >>In Window Xp >>openGLVersion = "1.3.3966 winXP Release" >>majorVers=1 >>minorVers=3 >> >>Daniele >> >> >>At 20.26 29/09/04, you wrote: >>>Hmmm, GLUtils_CheckExtensions looks like it has some problems... >>> >>>First, the version check is flawed: >>> >>> if ( (majorVers >= 1) && (minorVers >= 2) ) >>> >>>would make more sense as: >>> >>> if ( (majorVers > 1) || ((majorVers == 1) && (minorVers >= 2)) ) >>> >>>Or else a version like "2.0" will get bypassed. The minor version can >>>easily be two digits though, and "15" shouldn't be greater than "2" in >>>this case, so it's broken anyway... >>> >>>Apple's glCheck code converts the GL_VERSION string into a BCD for >>>comparisons >>><http://developer.apple.com/samplecode/Carbon_AGL_Full_Screen/ >>>listing2.html> Quesa should probably do the same, something like this: >>> >>>------ >>>void >>>GLUtils_CheckExtensions( TQ3GLExtensions* featureFlags ) >>>{ >>> const char* openGLVersion = (const char*)glGetString( >>> GL_VERSION ); >>> const char* openGLExtensions = (const char*)glGetString( >>> GL_EXTENSIONS >>>); >>> >>> short j = 0; >>> short shiftVal = 8; >>> unsigned short glVersion = 0; >>> >>> // Initialize to default value, all off. >>> memset( featureFlags, 0, sizeof(TQ3GLExtensions) ); >>> >>> if (openGLVersion != NULL) >>> { >>> // Get BCD version. >>> while (((openGLVersion[j] <= '9') && >>> (openGLVersion[j] >= '0')) || >>>(openGLVersion[j] == '.')) >>> { >>> if ((openGLVersion[j] <= '9') && >>> (openGLVersion[j] >= '0')) >>> { >>> glVersion += (openGLVersion[j] - '0') >>> << shiftVal; >>> shiftVal -= 4; >>> } >>> j++; >>> } >>> >>> // Check for extensions. >>> if ( glVersion >= 0x0120 || >>> isOpenGLExtensionPresent( openGLExtensions, >>>"GL_EXT_separate_specular_color" ) ) >>> { >>> featureFlags->separateSpecularColor = kQ3True; >>> } >>> >>> if ( glVersion >= 0x0120 || >>> isOpenGLExtensionPresent( openGLExtensions, >>>"GL_EXT_texture_edge_clamp" ) || >>> isOpenGLExtensionPresent( openGLExtensions, >>>"GL_SGIS_texture_edge_clamp" ) ) >>> { >>> featureFlags->clampToEdge = kQ3True; >>> } >>> } >>>} >>>------ >>> >>>Note: I added the GL_SGIS_texture_edge_clamp check as well. I've >>>updated my patch archive with these changes, but for some reason I'm >>>not convinced GL_VERSION is always correct (though Apple seems to >>>depend on it). What OS are you running that returns OpenGL 1.15? >>> >>>Thanks, >>>Frank. >>> >>>On 29-Sep-04, at 12:42 PM, Daniele Cavallini wrote: >>> >>>>I am using OpenGL 1.15. The value is obtained from glGetString( >>>>GL_VERSION ). >>>>When exit from GLUtils_CheckExtensions featureFlags->clampToEdge is >>>>set to kQ3True; >>>>I obtain: >>>>majorVers = 1 >>>>minorVers = 15 >>>>after the step >>>>int numScanned = sscanf( openGLVersion, "%d.%d", >>>>&majorVers, &minorVers ); >>>>It is Correct? >>>>Daniele >>>> >>>>At 18.06 29/09/04, you wrote: >>>>>No, that'll break it... >>>>> >>>>>The value will be false to start (the struct is zeroed in the >>>>>function) and is set to true if using OpenGL 1.2+. The extension may >>>>>not exist in an OpenGL 1.2+ implementation though, so you'll be >>>>>setting it back to false even though it can be handled just fine at >>>>>that point. The extension check is strictly for older OpenGL versions >>>>>before the ARB ratified the function. >>>>> >>>>>Frank. >>>>> >>>>>On 29-Sep-04, at 10:59 AM, Daniele Cavallini wrote: >>>>> >>>>>>Question: >>>>>>Is It better add this "else" in function "GLUtils_CheckExtensions"? >>>>>> >>>>>> if (isOpenGLExtensionPresent( openGLExtensions, >>>>>>GL_EXT_texture_edge_clamp" )) >>>>>> { >>>>>> featureFlags->clampToEdge = kQ3True; >>>>>> } >>>>>> else >>>>>> featureFlags->clampToEdge = kQ3False; >>>>>>Daniele >>>>>> >>>>>>At 01.50 29/09/04, you wrote: >>>>>>>Here: <http://chaoticbox.com/quesa901422.zip> is a small patch that >>>>>>>checks for CLAMP_TO_EDGE and uses it when available for texture >>>>>>>shaders >>>>>>>that have a kQ3ShaderUVBoundaryClamp setting. The original report is >>>>>>>here: >>>>>>><http://sourceforge.net/tracker/index.php? >>>> >>>>>>>func=detail&aid=901422&group_id=45158&atid=442052> >>>>>>> >>>>>>>On a similar note; Is there a better way to submit patches? Do you >>>>>>>guys >>>>>>>prefer some sort of diff tool output? If so, please let me know... > > > >------------------------------------------------------- >This SF.net email is sponsored by: IT Product Guide on ITManagersJournal >Use IT products in your business? Tell us what you think of them. Give us >Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more >http://productguide.itmanagersjournal.com/guidepromo.tmpl >_______________________________________________ >Quesa-develop mailing list >Que...@li... >https://lists.sourceforge.net/lists/listinfo/quesa-develop > |