[Xquartz-dev] GLKit and Xquartz's GL support

Jack Howarth howarth.mailing.lists at gmail.com
Thu Dec 11 13:32:05 PST 2014


The scaling issue was due to the change in units of fov from degrees
to radians so...

glMultMatrixf(GLKMatrix4MakePerspective(fov*PI/180., aspRat,
I->FrontSafe, I->BackSafe).m);

solved the problem. That leaves one other deprecated function used by pymol...

layer0/os_gl.cpp:99:59: warning: 'gluErrorString' is deprecated: first
deprecated in OS X 10.9 [-Wdeprecated-declarations]
    printf("OpenGL-Error: Where? %s: %s\n", pos, (char *)
gluErrorString(glerr));
                                                          ^
/System/Library/Frameworks/OpenGL.framework/Headers/glu.h:260:24:
note: 'gluErrorString' has been explicitly marked deprecated here
extern const GLubyte * gluErrorString (GLenum error)
OPENGL_DEPRECATED(10_0, 10_9);
                       ^
1 warning generated.

but it appears Apple has yet to produce a replacement for that functionality.


On Thu, Dec 11, 2014 at 1:42 PM, Jack Howarth
<howarth.mailing.lists at gmail.com> wrote:
>    When pymol 1.7.4.0 is built with the following patch...
>
> -- pymol-1.7.4.0/layer1/Scene.cpp.orig 2014-12-11 12:48:50.000000000 -0500
> +++ pymol-1.7.4.0/layer1/Scene.cpp      2014-12-11 13:30:54.000000000 -0500
> @@ -57,6 +57,8 @@
>  #include"ScrollBar.h"
>  #include "ShaderMgr.h"
>
> +#include <GLKit/GLKMatrix4.h>
> +
>  #ifdef _PYMOL_IP_EXTRAS
>  #include "IncentiveCopyToClipboard.h"
>  #endif
> @@ -9156,7 +9158,8 @@
>      }
>      if(!SettingGetGlobal_b(G, cSetting_ortho)) {
>        float fov = SettingGetGlobal_f(G, cSetting_field_of_view);
> -      gluPerspective(fov, aspRat, I->FrontSafe, I->BackSafe);
> +      // gluPerspective(fov, aspRat, I->FrontSafe, I->BackSafe);
> +      glMultMatrixf(GLKMatrix4MakePerspective(fov, aspRat,
> I->FrontSafe, I->BackSafe).m);
>      } else {
>        height = fmax(R_SMALL4, -I->Pos[2]) * GetFovWidth(G) / 2.f;
>        width = height * aspRat;
>
> it compiles without errors and runs the demos correctly except the
> rendered images are about 10 times smaller than expected.
>
> On Thu, Dec 11, 2014 at 1:12 PM, Jack Howarth
> <howarth.mailing.lists at gmail.com> wrote:
>>      The following warning appears when compiling pymol 1.7.4.0 under
>> OS X 10.10....
>>
>> layer1/Scene.cpp:9159:7: warning: 'gluPerspective' is deprecated:
>> first deprecated in OS X 10.9 - "Use GLKMatrix4MakePerspective"
>> [-Wdeprecated-declarations]
>>       gluPerspective(fov, aspRat, I->FrontSafe, I->BackSafe);
>>       ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:278:13:
>> note: 'gluPerspective' has been explicitly marked deprecated here
>> extern void gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble
>> zNear, GLdouble zFar) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use
>> GLKMatrix4MakePerspective");
>>             ^
>>
>> from https://www.opengl.org/discussion_boards/showthread.php/184541-gluPerspective-vs-GLKMatrix4MakePerspective-use-in-OSX-OpenGL,
>> it would appear that we want to use something like...
>>
>> --- layer1/Scene.cpp.orig 2014-12-11 12:48:50.000000000 -0500
>> +++ layer1/Scene.cpp 2014-12-11 13:03:26.000000000 -0500
>> @@ -9156,7 +9156,8 @@
>>      }
>>      if(!SettingGetGlobal_b(G, cSetting_ortho)) {
>>        float fov = SettingGetGlobal_f(G, cSetting_field_of_view);
>> -      gluPerspective(fov, aspRat, I->FrontSafe, I->BackSafe);
>> +      // gluPerspective(fov, aspRat, I->FrontSafe, I->BackSafe);
>> +      glMultMatrix(GLKMatrix4MakePerspective(fov, aspRat,
>> I->FrontSafe, I->BackSafe).m);
>>      } else {
>>        height = fmax(R_SMALL4, -I->Pos[2]) * GetFovWidth(G) / 2.f;
>>        width = height * aspRat;
>>
>> However I am concerned about how using GLKit will interact with the
>> X11 GL wrapper libraries. Have those been enhanced to interoperate
>> with GLKit? Thanks in advance for any information.
>>        Jack


More information about the Xquartz-dev mailing list