Comments (21)
macOS 10.6.8 is indeed a very old system, but LLGL was intended to support older systems as well, so let's see if we can fix at least some of these errors.
First off: Can you please tell me what the values of these macros are on your environment:
MAC_OS_X_VERSION_MIN_ALLOWED
MAC_OS_X_VERSION_MAX_ALLOWED
MAC_OS_X_VERSION_10_12
A simple #error MAC_OS_X_VERSION_MIN_ALLOWED
should reveal that. It seems as if the wrong constants are picked such as NSWindowStyleMaskBorderless
instead of NSBorderlessWindowMask
for older version of macOS or Xcode rather.
Speaking of which: Can you please also share your Xcode version?
Then there are a bunch of invalid conversations from NSRect
to CGRect
and NSSize
to CGSize
. Those should be easily fixable.
With things like CVDisplayLinkCreateWithCGDisplay
: They are available since macOS 10.4, so there might just be a missing #import
directive.
from llgl.
I force pushed an appendix with 8c55fbc. I think the only thing remaining is the issue with the NSApplication...
constants, but they are only available since Mac OS X 10.7 and I can't immediately see what they replaced:
https://developer.apple.com/documentation/appkit/nsapplicationpresentationoptions/nsapplicationpresentationfullscreen
from llgl.
Could you please open a PR for this change? This iteration on the compile errors is quite inconvenient since I don't have access to a Mac with Mac OS X 10.6 and I don't think I can easily install the Xcode deployment SDK for this system on my MacBook.
from llgl.
If it's not there on macOS before 10.7, how would you run OpenGL applications then? If it's just for the headers, they are already included in this repository:
https://github.com/LukasBanana/LLGL/tree/master/external/OpenGL/include/GL
Perhaps some more have to be added, but I don't think another library dependency is necessary to support legacy systems.
Update
LLGL also supports GL 2.X, though. If it's just a problem of <OpenGL/gl3.h>
, but <OpenGL/gl2.h>
or the like would be okay, you can enable CMake option LLGL_GL_ENABLE_OPENGL2X
to use legacy OpenGL.
from llgl.
I will check what headers are there. It certainly has some support for OpenGL, it was there since Tiger if not earlier, but perhaps not what LLGL expects.
Looking at how Macports handled some related issues, they opted for Mesa and X11 for systems where native implementation is lacking or insufficient. Like: macports/macports-ports@1b5491f
(I did not mean of course that LLGL has to declare an external dependency, rather that we can make a patch in Macports for <10.7, if that is the only way to support those OSs.)
from llgl.
@LukasBanana Thank you for responding!
Xcode 3.2.6 is used on 10.6.8 (Xcode 4.2 also exists for it, but without PPC support in Rosetta), Xcode 3.2 on 10.6 PPC and Xcode 3.1.4 on 10.5.8. (Support for 10.4.11 is not my concern.)
I will test LLGL
on 10.6 PPC and 10.5.8 to generate error logs tonight.
MAC_OS_X_VERSION_10_12
will not be defined on any OS prior to 10.12, I believe. 10.5.x = 1050, 10.6.x = 1060.
So normally we use smth like #if defined(__APPLE__) && __MAC_OS_X_VERSION_MIN_REQUIRED > 1060
to avoid using unsupported function on < 10.7.
from llgl.
Build log on 10.6.8 in Rosetta with Xcode 3.2.6 and gcc 12.2.0:
from llgl.
@LukasBanana @autoreleasepool
is not supported on <10.7 for sure:
:info:build /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/sources/Platform/MacOS/MacOSWindow.mm:493:5: error: stray '@' in program
:info:build 493 | @autoreleasepool
:info:build | ^
I had a patch for libsdl2
which dealt with these, but no guarantee it is correct – this is not something I understand well, and solution was borrowed from elsewhere online. But possibly this approach gonna work:
int
Cocoa_CreateWindowFrom(_THIS, SDL_Window * window, const void *data)
-{ @autoreleasepool
{
+ NSAutoreleasePool *pool;
NSWindow *nswindow = (NSWindow *) data;
NSString *title;
-
+ pool = [[NSAutoreleasePool alloc] init];
/* Query the title from the existing window */
title = [nswindow title];
if (title) {
window->title = SDL_strdup([title UTF8String]);
}
-
+ [pool release];
return SetupWindowData(_this, window, nswindow, SDL_FALSE);
-}}
+}
void
Cocoa_SetWindowTitle(_THIS, SDL_Window * window)
-{ @autoreleasepool
{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
const char *title = window->title ? window->title : "";
NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->nswindow;
NSString *string = [[NSString alloc] initWithUTF8String:title];
[nswindow setTitle:string];
[string release];
-}}
+ [pool release];
+}
void
Cocoa_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon)
-{ @autoreleasepool
{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSImage *nsimage = Cocoa_CreateImage(icon);
-
if (nsimage) {
[NSApp setApplicationIconImage:nsimage];
}
-}}
+ [pool release];
+}
(This is not the whole patch, just an extract from it.)
from llgl.
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
should be instead:
#include <AvailabilityMacros.h>
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101200
Otherwise earlier OS have no way to know what is MAC_OS_X_VERSION_10_12
:)
This fixes part of errors.
from llgl.
Then there are errors in MacOSDisplay.mm
(no OS-based macros there):
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/sources/Platform/MacOS/MacOSDisplay.mm: In function 'uint32_t LLGL::GetDisplayModeRefreshRate(CGDisplayModeRef, CGDirectDisplayID)':
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/sources/Platform/MacOS/MacOSDisplay.mm:33:9: error: 'CVDisplayLinkRef' was not declared in this scope; did you mean 'CGDisplayModeRef'?
33 | CVDisplayLinkRef displayLink = nullptr;
| ^~~~~~~~~~~~~~~~
| CGDisplayModeRef
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/sources/Platform/MacOS/MacOSDisplay.mm:34:54: error: 'displayLink' was not declared in this scope; did you mean 'displayID'?
34 | CVDisplayLinkCreateWithCGDisplay(displayID, &displayLink);
| ^~~~~~~~~~~
| displayID
[ 7%] Building CXX object CMakeFiles/LLGL.dir/sources/Renderer/Shader.cpp.o
/opt/local/bin/g++-mp-12 -DGL_SILENCE_DEPRECATION -DLLGL_BUILD_RENDERER_NULL -DLLGL_BUILD_RENDERER_OPENGL -DLLGL_ENABLE_DEBUG_LAYER -DLLGL_ENABLE_UTILITY -DLLGL_EXPORTS -DLLGL_GL_ENABLE_DSA_EXT -DLLGL_GL_ENABLE_EXT_PLACEHOLDERS -DLLGL_GL_ENABLE_VENDOR_EXT -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/include -I/opt/local/include/Gauss -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/examples/Cpp/ExampleBase -F//System/Library/Frameworks -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/external/OpenGL/include -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -fPIC -std=gnu++11 -MD -MT CMakeFiles/LLGL.dir/sources/Renderer/Shader.cpp.o -MF CMakeFiles/LLGL.dir/sources/Renderer/Shader.cpp.o.d -o CMakeFiles/LLGL.dir/sources/Renderer/Shader.cpp.o -c /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/sources/Renderer/Shader.cpp
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-d98bcc8ee65d68e757ccae6770aed92f14b22617/sources/Platform/MacOS/MacOSDisplay.mm:34:9: error: 'CVDisplayLinkCreateWithCGDisplay' was not declared in this scope
34 | CVDisplayLinkCreateWithCGDisplay(displayID, &displayLink);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
from llgl.
@LukasBanana Once MAC_OS_X_VERSION_MAX_ALLOWED
is fixed, here is the new log:
LLGL_after_MAC_OS_X_VERSION_MAX_ALLOWED_fixed.txt
from llgl.
With 1e9d62c I addressed most of these issues. There's a new CMake option for Apple platforms that you have to disable (it's enabled by default): LLGL_MACOS_ENABLE_COREVIDEO
. This enables/disables the import of CoreVideo framework, which is actually supported since Mac OS X 10.4, but I suspect either some unsupported feature within that framework or invalid conversion between types. All this framework is used for in LLGL is to query the correct refresh rate for built-in displays (i.e. everything MacBook).
Let me know if there are any remaining build issues.
from llgl.
@LukasBanana Thank you for such a fast response!
It still fails with some undefined stuff in MacOSWindow.mm
. New log attached:
LLGL_build_log_v3.txt
from llgl.
@LukasBanana With Core Video turned on, there are few extra errors:
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSDisplay.mm: In function 'uint32_t LLGL::GetDisplayModeRefreshRate(CGDisplayModeRef, CGDirectDisplayID)':
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSDisplay.mm:36:9: error: 'CVDisplayLinkRef' was not declared in this scope; did you mean 'CGDisplayModeRef'?
36 | CVDisplayLinkRef displayLink = nullptr;
| ^~~~~~~~~~~~~~~~
| CGDisplayModeRef
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSDisplay.mm:37:54: error: 'displayLink' was not declared in this scope; did you mean 'displayID'?
37 | CVDisplayLinkCreateWithCGDisplay(displayID, &displayLink);
| ^~~~~~~~~~~
| displayID
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSDisplay.mm:37:9: error: 'CVDisplayLinkCreateWithCGDisplay' was not declared in this scope
37 | CVDisplayLinkCreateWithCGDisplay(displayID, &displayLink);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 22%] Building CXX object CMakeFiles/LLGL.dir/sources/Renderer/DescriptorHelper.cpp.o
/opt/local/bin/g++-mp-12 -DGL_SILENCE_DEPRECATION -DLLGL_BUILD_RENDERER_NULL -DLLGL_BUILD_RENDERER_OPENGL -DLLGL_ENABLE_DEBUG_LAYER -DLLGL_ENABLE_UTILITY -DLLGL_EXPORTS -DLLGL_GL_ENABLE_DSA_EXT -DLLGL_GL_ENABLE_EXT_PLACEHOLDERS -DLLGL_GL_ENABLE_VENDOR_EXT -DLLGL_MACOS_ENABLE_COREVIDEO -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/include -I/opt/local/include/Gauss -F//System/Library/Frameworks -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/external/OpenGL/include -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -fPIC -std=gnu++11 -MD -MT CMakeFiles/LLGL.dir/sources/Renderer/DescriptorHelper.cpp.o -MF CMakeFiles/LLGL.dir/sources/Renderer/DescriptorHelper.cpp.o.d -o CMakeFiles/LLGL.dir/sources/Renderer/DescriptorHelper.cpp.o -c /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Renderer/DescriptorHelper.cpp
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSDisplay.mm:39:27: error: 'CVDisplayLinkGetNominalOutputVideoRefreshPeriod' was not declared in this scope
39 | CVTime time = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(displayLink);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 22%] Building CXX object CMakeFiles/LLGL.dir/sources/Renderer/Format.cpp.o
/opt/local/bin/g++-mp-12 -DGL_SILENCE_DEPRECATION -DLLGL_BUILD_RENDERER_NULL -DLLGL_BUILD_RENDERER_OPENGL -DLLGL_ENABLE_DEBUG_LAYER -DLLGL_ENABLE_UTILITY -DLLGL_EXPORTS -DLLGL_GL_ENABLE_DSA_EXT -DLLGL_GL_ENABLE_EXT_PLACEHOLDERS -DLLGL_GL_ENABLE_VENDOR_EXT -DLLGL_MACOS_ENABLE_COREVIDEO -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/include -I/opt/local/include/Gauss -F//System/Library/Frameworks -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/external/OpenGL/include -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -fPIC -std=gnu++11 -MD -MT CMakeFiles/LLGL.dir/sources/Renderer/Format.cpp.o -MF CMakeFiles/LLGL.dir/sources/Renderer/Format.cpp.o.d -o CMakeFiles/LLGL.dir/sources/Renderer/Format.cpp.o -c /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Renderer/Format.cpp
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSDisplay.mm:43:9: error: 'CVDisplayLinkRelease' was not declared in this scope; did you mean 'CGDisplayRelease'?
43 | CVDisplayLinkRelease(displayLink);
| ^~~~~~~~~~~~~~~~~~~~
| CGDisplayRelease
make[2]: *** [CMakeFiles/LLGL.dir/sources/Platform/MacOS/MacOSDisplay.mm.o] Error 1
With Core video off, apparently just NSApplication*
ones:
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSWindow.mm: In function '-[MacOSWindowDelegate window:willUseFullScreenPresentationOptions:]':
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSWindow.mm:141:9: error: 'NSApplicationPresentationFullScreen' was not declared in this scope; did you mean 'NSApplicationPresentationOptions'?
141 | NSApplicationPresentationFullScreen |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| NSApplicationPresentationOptions
[ 24%] Building CXX object CMakeFiles/LLGL.dir/sources/Renderer/QueryHeap.cpp.o
/opt/local/bin/g++-mp-12 -DGL_SILENCE_DEPRECATION -DLLGL_BUILD_RENDERER_NULL -DLLGL_BUILD_RENDERER_OPENGL -DLLGL_ENABLE_DEBUG_LAYER -DLLGL_ENABLE_UTILITY -DLLGL_EXPORTS -DLLGL_GL_ENABLE_DSA_EXT -DLLGL_GL_ENABLE_EXT_PLACEHOLDERS -DLLGL_GL_ENABLE_VENDOR_EXT -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/include -I/opt/local/include/Gauss -F//System/Library/Frameworks -I/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/external/OpenGL/include -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -fPIC -std=gnu++11 -MD -MT CMakeFiles/LLGL.dir/sources/Renderer/QueryHeap.cpp.o -MF CMakeFiles/LLGL.dir/sources/Renderer/QueryHeap.cpp.o.d -o CMakeFiles/LLGL.dir/sources/Renderer/QueryHeap.cpp.o -c /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Renderer/QueryHeap.cpp
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-8c55fbc5b9baae5dbb1202bb15acadeaa2eff440/sources/Platform/MacOS/MacOSWindow.mm:143:9: error: 'NSApplicationPresentationAutoHideToolbar' was not declared in this scope; did you mean 'NSApplicationPresentationAutoHideMenuBar'?
143 | NSApplicationPresentationAutoHideToolbar |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| NSApplicationPresentationAutoHideMenuBar
from llgl.
@LukasBanana Perhaps solution is just to guard those NSApplication*
with macros, like here: https://gist.github.com/miniupnp/a8f474c504eaa3ad9135
from llgl.
Can you try 0d43ba7 and see if that fixes the remaining errors?
I don't know what your setup is, but for any remaining errors of this kind, are you able to add those preprocessor guards on your end? This way we could iterate on that faster.
from llgl.
@LukasBanana Thank you for an update! Looks promising, but we need to link to libatomic
on 32-bit platforms with GCC:
[ 58%] Linking CXX shared library build/libLLGL_Null.dylib
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/LLGL_Null.dir/link.txt --verbose=ON
/opt/local/bin/g++-mp-12 -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -mmacosx-version-min=10.6 -dynamiclib -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names -o build/libLLGL_Null.dylib -install_name /opt/local/lib/libLLGL_Null.dylib CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/NullModuleInterface.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/NullRenderSystem.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/NullSwapChain.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Buffer/NullBuffer.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Buffer/NullBufferArray.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Command/NullCommandBuffer.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Command/NullCommandExecutor.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Command/NullCommandQueue.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/RenderState/NullFence.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/RenderState/NullPipelineLayout.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/RenderState/NullPipelineState.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/RenderState/NullQueryHeap.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/RenderState/NullRenderPass.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/RenderState/NullResourceHeap.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Shader/NullShader.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Texture/NullRenderTarget.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Texture/NullSampler.cpp.o CMakeFiles/LLGL_Null.dir/sources/Renderer/Null/Texture/NullTexture.cpp.o -Wl,-rpath,/opt/local/lib build/libLLGL.dylib -Wl,-framework,Cocoa
Undefined symbols:
"___atomic_load_8", referenced from:
__ZN4LLGL9NullFence13WaitForSignalEy in NullFence.cpp.o
"___atomic_store_8", referenced from:
__ZN4LLGL9NullFence6SignalEy in NullFence.cpp.o
ld: symbol(s) not found
(That is, in CMakeLists either check if example compiles without libatomic
and link to the latter if not, or check for size of pointer, or just link to it whenever GCC is the compiler being used.)
from llgl.
UPD. One more thing, there is a header problem here:
In file included from /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-0d43ba72ffbaf08928123b7c17fcbe259b5a407e/sources/Renderer/OpenGL/OpenGL.h:13,
from /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-0d43ba72ffbaf08928123b7c17fcbe259b5a407e/sources/Renderer/OpenGL/GLCore.h:12,
from /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-0d43ba72ffbaf08928123b7c17fcbe259b5a407e/sources/Renderer/OpenGL/GLCore.cpp:8:
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_LLGL/LLGL/work/LLGL-0d43ba72ffbaf08928123b7c17fcbe259b5a407e/sources/Renderer/OpenGL/GLCoreProfile/OpenGLCore.h:25:13: fatal error: OpenGL/gl3.h: No such file or directory
25 | # include <OpenGL/gl3.h>
| ^~~~~~~~~~~~~~
compilation terminated.
from llgl.
@LukasBanana Let me try. Linking to libatomic
is certainly doable, for the header I will check what options we have (assuming it is needed and cannot be just included conditionally).
from llgl.
@LukasBanana I need to ask you one thing: is it possible to use Mesa includes for OpenGL? https://github.com/Mesa3D/mesa/tree/main/include
If not, then the only option would be to disable OpenGL on macOS < 10.7, since it is not there in the OS itself.
from llgl.
Headers Mesa installs:
/opt/local/include/GL/gl.h
/opt/local/include/GL/glcorearb.h
/opt/local/include/GL/glext.h
/opt/local/include/GL/glx.h
/opt/local/include/GL/glxext.h
/opt/local/include/GL/internal/dri_interface.h
/opt/local/include/GL/osmesa.h
/opt/local/include/GLES/egl.h
/opt/local/include/GLES/gl.h
/opt/local/include/GLES/glext.h
/opt/local/include/GLES/glplatform.h
/opt/local/include/GLES2/gl2.h
/opt/local/include/GLES2/gl2ext.h
/opt/local/include/GLES2/gl2platform.h
/opt/local/include/GLES3/gl3.h
/opt/local/include/GLES3/gl31.h
/opt/local/include/GLES3/gl32.h
/opt/local/include/GLES3/gl3ext.h
/opt/local/include/GLES3/gl3platform.h
from llgl.
Related Issues (20)
- please add a lot more c Examples and a c api documentation HOT 7
- How to add skia to the LLGL project for rendering complex text? HOT 12
- OpenGL mipmap generation problem? HOT 2
- Andorid project compile error, needing native_app_glue. HOT 4
- How to run the examples in Android? Give me some suggestions? HOT 9
- [DX11] Crash on resize with multiple `CommandBuffer`'s HOT 1
- [Dx11] SwapChain doesn't preserve debug name after resize HOT 1
- Failed shader compile crashes HOT 1
- Support MSYS2 MINGW64 on Windows HOT 1
- Allow for aggregate initialization in descriptors HOT 3
- RenderSystem.cpp needs __STDC_FORMAT_MACROS defined HOT 4
- WebGPU backend HOT 1
- Implementing a GPU-to-CPU Image Readback Functionality HOT 7
- Error Logs in apple M2 device HOT 10
- Coordinate systems between Metal and OpenGL HOT 6
- Win32Window message loop filtering problem HOT 2
- LLGL::CreateShader cannot be set to a target of Shader Model 6.0 or above. HOT 6
- Missing include in VKPipelineState.h and VKPipelineBarrier.h ? HOT 3
- [D3D12] SetPipelineState inside Secondary Command Buffers cause `ID3D12CommandList::Close()` to return E_INVALIDARG in parent command buffer. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from llgl.