I've recently purchased the book and am trying to get the initial triangle code running. I've some experience with normal OpenGL but I'm by no means a graphics programmer. I have no experience with SBC and thought this would be really fun. But I'm struggling to figure out what needs to change to work on the current hardware, despite the helpful posts dotted around the forum.
Specifically, I currently get squiggly red errors that EGL and GLES cannot be found when included. Here's my list of libraries and includes from VisualGDB:
Include directories:
Library directories:
Library names:
I've installed the following packages:
I've got a Raspberry Pi 4 on Debian 11 / Bullseye (latest Raspberry OS).
Here's some helpful glxinfo output:
I saw the comment about disabling OpenGL in raspi-config but there is no option to do so under advance or, as far as I could see, any other menu.
I don't know where to go from here to get things working. If anyone can let me know what packages need to be installed, what libraries and includes, etc, I can figure the rest. I'm probably even happy to try GLES3 if need be.
Cheers.
If I change the libraries to:
Specifically, I currently get squiggly red errors that EGL and GLES cannot be found when included. Here's my list of libraries and includes from VisualGDB:
Include directories:
- /usr/include
- /usr/include/interface/vcos/pthreads
- /usr/include/interface
- /usr/include/interface/vmcs_host/linux
Library directories:
- /usr/lib
Library names:
- GLESv2
- EGL
- X11
- bcm_host (although I don't think I need this)
- pthread
I've installed the following packages:
- libgles2-mesa-dev
- libxrandr-dev
- mesa-utils
I've got a Raspberry Pi 4 on Debian 11 / Bullseye (latest Raspberry OS).
Here's some helpful glxinfo output:
Code:
glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 0.0
Max compat profile version: 2.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL version string: 2.1 Mesa 20.3.5
OpenGL shading language version string: 1.20
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.3.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
GL_EXT_separate_shader_objects, GL_EXT_shader_implicit_conversions,
I saw the comment about disabling OpenGL in raspi-config but there is no option to do so under advance or, as far as I could see, any other menu.
I don't know where to go from here to get things working. If anyone can let me know what packages need to be installed, what libraries and includes, etc, I can figure the rest. I'm probably even happy to try GLES3 if need be.
Cheers.
If I change the libraries to:
- GLESv2_static
- EGL_static
- vchiq_arm
- vcos khrn_static
- bcm_host
- pthread
Code:
Run "gcc -Wl,--start-group "/tmp/VisualGDB_ToolchainTestProgram.o" -o "/tmp/VisualGDB_ToolchainTestProgram" -Wl,-gc-sections -L/usr/lib -lGLESv2_static -lEGL_static -lvchiq_arm -lvcos -lkhrn_static -lbcm_host -lpthread -Wl,--end-group " in directory "/tmp/VisualGDB/d/SBC_Game_Dev/PiGame1/PiGame1/PiGame1" on local computer
--------------------------
/usr/bin/ld: cannot find -lGLESv2_static
/usr/bin/ld: cannot find -lEGL_static
/usr/bin/ld: cannot find -lkhrn_static
collect2: error: ld returned 1 exit status
--------------------------
Command exited with code 1