DrawLoadDemo-macOS 32Bit compilation error


This topic contains 2 replies, has 2 voices, and was last updated by  Micha 2 years, 1 month ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #1130

    Micha
    Participant

    Hi,
    when I run the DrawLoadDemo-macOS demo runs, it works fine. But when I change the project settings to compile that in 32bit (arch i386), I get compile errors in EAGL.m.

    Molten-0.13.0/MoltenGL/macOS/EAGL.m:48:13: error: synthesized property 'drawableProperties' must either be named the same as a compatible instance variable or must explicitly name an instance variable
    @synthesize drawableProperties=_drawableProperties;
                ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:49:13: error: synthesized property 'presentsWithTransaction' must either be named the same as a compatible instance variable or must explicitly name an instance variable
    @synthesize presentsWithTransaction=_presentsWithTransaction;
                ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:80:12: error: instance variable '_debugLabel' has conflicting type: 'NSString *' vs 'struct _EAGLSharegroupPrivate *'
            NSString* _debugLabel;
                      ^
    In file included from Molten-0.13.0/MoltenGL/macOS/EAGL.m:32:
    In file included from ../../RedirectHeaders/include/OpenGLES/EAGL.h:19:
    ../../RedirectHeaders/include/OpenGLES/../../orig/OpenGLES/EAGL.h:52:33: note: previous definition is here
            struct _EAGLSharegroupPrivate *_private;
                                           ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:80:12: error: conflicting instance variable names: '_debugLabel' vs '_private'
            NSString* _debugLabel;
                      ^
    In file included from Molten-0.13.0/MoltenGL/macOS/EAGL.m:32:
    In file included from ../../RedirectHeaders/include/OpenGLES/EAGL.h:19:
    ../../RedirectHeaders/include/OpenGLES/../../orig/OpenGLES/EAGL.h:52:33: note: previous definition is here
            struct _EAGLSharegroupPrivate *_private;
                                           ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:83:13: error: synthesized property 'debugLabel' must either be named the same as a compatible instance variable or must explicitly name an instance variable
    @synthesize debugLabel=_debugLabel;
                ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:113:18: error: instance variable '_sharegroup' has conflicting type: 'EAGLSharegroup *' vs 'struct _EAGLContextPrivate *'
            EAGLSharegroup* _sharegroup;
                            ^
    In file included from Molten-0.13.0/MoltenGL/macOS/EAGL.m:32:
    In file included from ../../RedirectHeaders/include/OpenGLES/EAGL.h:19:
    ../../RedirectHeaders/include/OpenGLES/../../orig/OpenGLES/EAGL.h:67:30: note: previous definition is here
            struct _EAGLContextPrivate *_private;
                                        ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:113:18: error: conflicting instance variable names: '_sharegroup' vs '_private'
            EAGLSharegroup* _sharegroup;
                            ^
    In file included from Molten-0.13.0/MoltenGL/macOS/EAGL.m:32:
    In file included from ../../RedirectHeaders/include/OpenGLES/EAGL.h:19:
    ../../RedirectHeaders/include/OpenGLES/../../orig/OpenGLES/EAGL.h:67:30: note: previous definition is here
            struct _EAGLContextPrivate *_private;
                                        ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:114:12: error: inconsistent number of instance variables specified
            NSString* _debugLabel;
                      ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:118:13: error: synthesized property 'API' must either be named the same as a compatible instance variable or must explicitly name an instance variable
    @synthesize API=_api;
                ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:119:13: error: synthesized property 'sharegroup' must either be named the same as a compatible instance variable or must explicitly name an instance variable
    @synthesize sharegroup=_sharegroup;
                ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:120:13: error: synthesized property 'debugLabel' must either be named the same as a compatible instance variable or must explicitly name an instance variable
    @synthesize debugLabel=_debugLabel;
                ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:112:17: warning: property 'multiThreaded' requires method 'isMultiThreaded' to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation [-Wobjc-property-implementation]
    @implementation EAGLContext {
                    ^
    In file included from Molten-0.13.0/MoltenGL/macOS/EAGL.m:32:
    In file included from ../../RedirectHeaders/include/OpenGLES/EAGL.h:19:
    ../../RedirectHeaders/include/OpenGLES/../../orig/OpenGLES/EAGL.h:81:52: note: property declared here
    @property (getter=isMultiThreaded, nonatomic) BOOL multiThreaded NS_AVAILABLE(10_11, 7_1);
                                                       ^
    Molten-0.13.0/MoltenGL/macOS/EAGL.m:112:17: warning: property 'multiThreaded' requires method 'setMultiThreaded:' to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation [-Wobjc-property-implementation]
    @implementation EAGLContext {
                    ^
    In file included from Molten-0.13.0/MoltenGL/macOS/EAGL.m:32:
    In file included from ../../RedirectHeaders/include/OpenGLES/EAGL.h:19:
    ../../RedirectHeaders/include/OpenGLES/../../orig/OpenGLES/EAGL.h:81:52: note: property declared here
    @property (getter=isMultiThreaded, nonatomic) BOOL multiThreaded NS_AVAILABLE(10_11, 7_1);
                                                       ^
    2 warnings and 11 errors generated.
    

    I get the exact same errors when I try to run MoltenGL inside my own project (which is 32bit). I imagine this requires a small change inside that file to fix it. Unfortunately I’m not well versed in apple’s Objective-C. Could you help me?

    #1131

    Bill Hollings
    Keymaster

    @micha

    The MoltenGL library is only built for 64-bit applications, because that is a requirement for Metal. So the MoltenGL library will not be linkable to your application in 32-bit mode.

    Can you provide some more background as to why you want to compile in 32-bit mode?

    …Bill

    #1134

    Micha
    Participant

    Hi Bill,

    thanks for your answer.
    I am trying to get some sort of unified rendering working. One opengl codebase for windows, osx, android and ios. So having the same opengl calls and glsl shaders on all platforms. This is based on OpenGL ES 2.0. I am basically trying to get “Scenario 2” to work, which means I’m not actually using Metal (nor do I need it). Which works fine for 64bit, but not for 32bit. For now I have rolled my own hackish solution.
    The 32bit limitation is mainly because of a lua dependency which doesn’t work well with precompiled scripts on 64bit.

    Thanks again!

    With regards
    Micha

Viewing 3 posts - 1 through 3 (of 3 total)

The forum ‘MoltenGL Support’ is closed to new topics and replies.