[ 9%] Processing:source.bmx[ 11%] Processing:common.bmx[ 13%] Processing:glad00.bmx[ 14%] Processing:opengl.bmx[ 16%] Processing:common.bmx[ 26%] Processing:common.bmx[ 27%] Processing:glfwmonitor.bmx[ 29%] Processing:glfwopengl.bmxCompile Error: Operator [] with 'Int' index is not defined for type 'SGLFWvidmode'[d:/DevTools/Blitz/BlitzMaxNG/mod/glfw.mod/glfwmonitor.mod/glfwmonitor.bmx;126;0]Build Error: failed to compile (-1) d:/DevTools/Blitz/BlitzMaxNG/mod/glfw.mod/glfwmonitor.mod/glfwmonitor.bmxThe terminal process terminated with exit code: 4294967295
' https://learnopengl.com/SuperStrictFramework GLFW.GLFWWindowImport GLFW.GLFWImport GLFW.GLFWOpenGLImport GLFW.GLFWSystemImport BRL.StandardIOLocal app_name:String = "Hello Window"Const SCR_WIDTH:UInt = 800Const SCR_HEIGHT:UInt = 600Type TGameWindow Extends TGLFWWindow Method OnFrameBufferSize (width:Int, height:Int) glViewport (0, 0, width, height) EndMethod EndTypeFunction ProcessInput (window:TGLFWWindow) If window.IsKeyDown (GLFW_KEY_ESCAPE) window.SetShouldClose (True) EndIf EndFunctionTGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MAJOR, 3)TGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MINOR, 3)TGLFWWindow.Hint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)?MacOS ' Ewww... TGLFWWindow.Hint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)?Local window:TGLFWWindow = New TGameWindow.Create (SCR_WIDTH, SCR_HEIGHT, app_name)If Not window Print "Failed to create GLFW window!" EndEndIfwindow.MakeContextCurrent ()gladLoadGL (glfwGetProcAddress)While Not window.ShouldClose () ProcessInput (window) window.SwapBuffers () PollSystem ()WendEnd
' https://learnopengl.com/SuperStrictFramework GLFW.GLFWWindowImport GLFW.GLFWImport GLFW.GLFWOpenGLImport GLFW.GLFWSystemImport BRL.StandardIOLocal app_name:String = "Hello Window Clear"Const SCR_WIDTH:UInt = 800Const SCR_HEIGHT:UInt = 600Type TGameWindow Extends TGLFWWindow Method OnFrameBufferSize (width:Int, height:Int) glViewport (0, 0, width, height) EndMethod EndTypeFunction ProcessInput (window:TGLFWWindow) If window.IsKeyDown (GLFW_KEY_ESCAPE) window.SetShouldClose (True) EndIf EndFunctionTGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MAJOR, 3)TGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MINOR, 3)TGLFWWindow.Hint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)?MacOS ' Ewww... TGLFWWindow.Hint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)?Local window:TGLFWWindow = New TGameWindow.Create (SCR_WIDTH, SCR_HEIGHT, app_name)If Not window Print "Failed to create GLFW window!" EndEndIfwindow.MakeContextCurrent ()gladLoadGL (glfwGetProcAddress)While Not window.ShouldClose () ProcessInput (window) glClearColor (0.2, 0.3, 0.3, 1.0) glClear (GL_COLOR_BUFFER_BIT) window.SwapBuffers () PollSystem () WendEnd
' https://learnopengl.com/SuperStrictFramework GLFW.GLFWWindowImport GLFW.GLFWImport GLFW.GLFWOpenGLImport GLFW.GLFWSystemImport BRL.StandardIOLocal app_name:String = "Hello Triangle"Const SCR_WIDTH:UInt = 800Const SCR_HEIGHT:UInt = 600Type TGameWindow Extends TGLFWWindow Method OnFrameBufferSize (width:Int, height:Int) glViewport (0, 0, width, height) EndMethod EndTypeFunction ProcessInput (window:TGLFWWindow) If window.IsKeyDown (GLFW_KEY_ESCAPE) window.SetShouldClose (True) EndIf EndFunctionTGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MAJOR, 3)TGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MINOR, 3)TGLFWWindow.Hint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)?MacOS ' Ewww... TGLFWWindow.Hint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)?Local window:TGLFWWindow = New TGameWindow.Create (SCR_WIDTH, SCR_HEIGHT, app_name)If Not window Print "Failed to create GLFW window!" EndEndIfwindow.MakeContextCurrent ()gladLoadGL (glfwGetProcAddress)Local vertexShaderSource:Byte PtrLocal vertexShaderString:StringvertexShaderString :+ "#version 330 core~n"vertexShaderString :+ "layout (location = 0) in vec3 aPos;~n"vertexShaderString :+ "void main()~n"vertexShaderString :+ "{~n"vertexShaderString :+ " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);~n"vertexShaderString :+ "}~n"vertexShaderSource = vertexShaderString.ToCString ()Local fragmentShaderSource:Byte PtrLocal fragmentShaderString:StringfragmentShaderString :+ "#version 330 core~n"fragmentShaderString :+ "out vec4 FragColor;~n"fragmentShaderString :+ "void main()~n"fragmentShaderString :+ "{~n"fragmentShaderString :+ " FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);~n"fragmentShaderString :+ "}~n"fragmentShaderSource = fragmentShaderString.ToCString ()Local vertexShader:Int = glCreateShader (GL_VERTEX_SHADER)glShaderSource (vertexShader, 1, Varptr vertexShaderSource, Null)glCompileShader (vertexShader)Local success:IntLocal infoLog:Byte [512]glGetShaderiv (vertexShader, GL_COMPILE_STATUS, Varptr success)If Not success glGetShaderInfoLog (vertexShader, 512, Null, infoLog) Print "Vertex shader compilation failed: " + String.FromCString (infoLog)EndIfLocal fragmentShader:Int = glCreateShader (GL_FRAGMENT_SHADER)glShaderSource (fragmentShader, 1, Varptr fragmentShaderSource, Null)glCompileShader (fragmentShader)glGetShaderiv (fragmentShader, GL_COMPILE_STATUS, Varptr success)If Not success glGetShaderInfoLog (fragmentShader, 512, Null, infoLog) Print "Fragment shader compilation failed: " + String.FromCString (infoLog)EndIfLocal shaderProgram:Int = glCreateProgram ()glAttachShader (shaderProgram, vertexShader)glAttachShader (shaderProgram, fragmentShader)glLinkProgram (shaderProgram)glGetProgramiv (shaderProgram, GL_LINK_STATUS, Varptr success)If Not success glGetProgramInfoLog (shaderProgram, 512, Null, infoLog) Print "Shader program linking failed: " + String.FromCString (infoLog)EndIfglDeleteShader (vertexShader)glDeleteShader (fragmentShader)Local vertices:Float [] = [.. -0.5, -0.5, 0.0, .. 0.5, -0.5, 0.0, .. 0.0, 0.5, 0.0]Local VBO:UIntLocal VAO:UIntglGenVertexArrays (1, Varptr VAO)glGenBuffers (1, Varptr VBO)glBindVertexArray (VAO)glBindBuffer (GL_ARRAY_BUFFER, VBO)glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * Sizeof (0:Float), 0:Byte Ptr)glEnableVertexAttribArray (0)glBindBuffer (GL_ARRAY_BUFFER, 0)glBindVertexArray (0)While Not window.ShouldClose () ProcessInput (window) glClearColor (0.2, 0.3, 0.3, 1.0) glClear (GL_COLOR_BUFFER_BIT) glUseProgram (shaderProgram) glBindVertexArray (VAO) glDrawArrays (GL_TRIANGLES, 0, 3) window.SwapBuffers () PollSystem () WendglDeleteVertexArrays (1, Varptr VAO)glDeleteBuffers (1, Varptr VBO)End
' https://learnopengl.com/SuperStrictFramework GLFW.GLFWWindowImport GLFW.GLFWImport GLFW.GLFWOpenGLImport GLFW.GLFWSystemImport BRL.StandardIOLocal app_name:String = "Hello Triangle Indexed"Const SCR_WIDTH:UInt = 800Const SCR_HEIGHT:UInt = 600Type TGameWindow Extends TGLFWWindow Method OnFrameBufferSize (width:Int, height:Int) glViewport (0, 0, width, height) EndMethod EndTypeFunction ProcessInput (window:TGLFWWindow) If window.IsKeyDown (GLFW_KEY_ESCAPE) window.SetShouldClose (True) EndIf EndFunctionTGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MAJOR, 3)TGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MINOR, 3)TGLFWWindow.Hint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)?MacOS ' Ewww... TGLFWWindow.Hint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)?Local window:TGLFWWindow = New TGameWindow.Create (SCR_WIDTH, SCR_HEIGHT, app_name)If Not window Print "Failed to create GLFW window!" EndEndIfwindow.MakeContextCurrent ()gladLoadGL (glfwGetProcAddress)Local vertexShaderSource:Byte PtrLocal vertexShaderString:StringvertexShaderString :+ "#version 330 core~n"vertexShaderString :+ "layout (location = 0) in vec3 aPos;~n"vertexShaderString :+ "void main()~n"vertexShaderString :+ "{~n"vertexShaderString :+ " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);~n"vertexShaderString :+ "}~n"vertexShaderSource = vertexShaderString.ToCString ()Local fragmentShaderSource:Byte PtrLocal fragmentShaderString:StringfragmentShaderString :+ "#version 330 core~n"fragmentShaderString :+ "out vec4 FragColor;~n"fragmentShaderString :+ "void main()~n"fragmentShaderString :+ "{~n"fragmentShaderString :+ " FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);~n"fragmentShaderString :+ "}~n"fragmentShaderSource = fragmentShaderString.ToCString ()Local vertexShader:Int = glCreateShader (GL_VERTEX_SHADER)glShaderSource (vertexShader, 1, Varptr vertexShaderSource, Null)glCompileShader (vertexShader)Local success:IntLocal infoLog:Byte [512]glGetShaderiv (vertexShader, GL_COMPILE_STATUS, Varptr success)If Not success glGetShaderInfoLog (vertexShader, 512, Null, infoLog) Print "Vertex shader compilation failed: " + String.FromCString (infoLog)EndIfLocal fragmentShader:Int = glCreateShader (GL_FRAGMENT_SHADER)glShaderSource (fragmentShader, 1, Varptr fragmentShaderSource, Null)glCompileShader (fragmentShader)glGetShaderiv (fragmentShader, GL_COMPILE_STATUS, Varptr success)If Not success glGetShaderInfoLog (fragmentShader, 512, Null, infoLog) Print "Fragment shader compilation failed: " + String.FromCString (infoLog)EndIfLocal shaderProgram:Int = glCreateProgram ()glAttachShader (shaderProgram, vertexShader)glAttachShader (shaderProgram, fragmentShader)glLinkProgram (shaderProgram)glGetProgramiv (shaderProgram, GL_LINK_STATUS, Varptr success)If Not success glGetProgramInfoLog (shaderProgram, 512, Null, infoLog) Print "Shader program linking failed: " + String.FromCString (infoLog)EndIfglDeleteShader (vertexShader)glDeleteShader (fragmentShader)Local vertices:Float [] = [.. 0.5, 0.5, 0.0, .. 0.5, -0.5, 0.0, .. -0.5, -0.5, 0.0, .. -0.5, 0.5, 0.0]Local indices:UInt [] = [.. 0, 1, 3, .. 1, 2, 3]Local VBO:UIntLocal VAO:UIntLocal EBO:UIntglGenVertexArrays (1, Varptr VAO)glGenBuffers (1, Varptr VBO)glGenBuffers (1, Varptr EBO)glBindVertexArray (VAO)glBindBuffer (GL_ARRAY_BUFFER, VBO)glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, EBO)glBufferData (GL_ELEMENT_ARRAY_BUFFER, indices.length * SizeOf (0:Float), indices, GL_STATIC_DRAW)glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * Sizeof (0:Float), 0:Byte Ptr)glEnableVertexAttribArray (0)glBindBuffer (GL_ARRAY_BUFFER, 0)glBindVertexArray (0)While Not window.ShouldClose () ProcessInput (window) glClearColor (0.2, 0.3, 0.3, 1.0) glClear (GL_COLOR_BUFFER_BIT) glUseProgram (shaderProgram) glBindVertexArray (VAO) glDrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0) window.SwapBuffers () PollSystem () WendglDeleteVertexArrays (1, Varptr VAO)glDeleteBuffers (1, Varptr VBO)glDeleteBuffers (1, Varptr EBO)End
' https://learnopengl.com/SuperStrictFramework GLFW.GLFWWindowImport GLFW.GLFWImport GLFW.GLFWOpenGLImport GLFW.GLFWSystemImport BRL.StandardIOLocal app_name:String = "Shaders Uniform"Const SCR_WIDTH:UInt = 800Const SCR_HEIGHT:UInt = 600Type TGameWindow Extends TGLFWWindow Method OnFrameBufferSize (width:Int, height:Int) glViewport (0, 0, width, height) EndMethod EndTypeFunction ProcessInput (window:TGLFWWindow) If window.IsKeyDown (GLFW_KEY_ESCAPE) window.SetShouldClose (True) EndIf EndFunctionTGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MAJOR, 3)TGLFWWindow.Hint (GLFW_CONTEXT_VERSION_MINOR, 3)TGLFWWindow.Hint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE)?MacOS ' Ewww... TGLFWWindow.Hint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE)?Local window:TGLFWWindow = New TGameWindow.Create (SCR_WIDTH, SCR_HEIGHT, app_name)If Not window Print "Failed to create GLFW window!" EndEndIfwindow.MakeContextCurrent ()gladLoadGL (glfwGetProcAddress)Local vertexShaderSource:Byte PtrLocal vertexShaderString:StringvertexShaderString :+ "#version 330 core~n"vertexShaderString :+ "layout (location = 0) in vec3 aPos;~n"vertexShaderString :+ "void main()~n"vertexShaderString :+ "{~n"vertexShaderString :+ " gl_Position = vec4(aPos, 1.0);~n"vertexShaderString :+ "}~n"vertexShaderSource = vertexShaderString.ToCString ()Local fragmentShaderSource:Byte PtrLocal fragmentShaderString:StringfragmentShaderString :+ "#version 330 core~n"fragmentShaderString :+ "out vec4 FragColor;~n"fragmentShaderString :+ "uniform vec4 ourColor;~n"fragmentShaderString :+ "void main()~n"fragmentShaderString :+ "{~n"fragmentShaderString :+ " FragColor = ourColor;~n"fragmentShaderString :+ "}~n"fragmentShaderSource = fragmentShaderString.ToCString ()Local vertexShader:Int = glCreateShader (GL_VERTEX_SHADER)glShaderSource (vertexShader, 1, Varptr vertexShaderSource, Null)glCompileShader (vertexShader)Local success:IntLocal infoLog:Byte [512]glGetShaderiv (vertexShader, GL_COMPILE_STATUS, Varptr success)If Not success glGetShaderInfoLog (vertexShader, 512, Null, infoLog) Print "Vertex shader compilation failed: " + String.FromCString (infoLog)EndIfLocal fragmentShader:Int = glCreateShader (GL_FRAGMENT_SHADER)glShaderSource (fragmentShader, 1, Varptr fragmentShaderSource, Null)glCompileShader (fragmentShader)glGetShaderiv (fragmentShader, GL_COMPILE_STATUS, Varptr success)If Not success glGetShaderInfoLog (fragmentShader, 512, Null, infoLog) Print "Fragment shader compilation failed: " + String.FromCString (infoLog)EndIfLocal shaderProgram:Int = glCreateProgram ()glAttachShader (shaderProgram, vertexShader)glAttachShader (shaderProgram, fragmentShader)glLinkProgram (shaderProgram)glGetProgramiv (shaderProgram, GL_LINK_STATUS, Varptr success)If Not success glGetProgramInfoLog (shaderProgram, 512, Null, infoLog) Print "Shader program linking failed: " + String.FromCString (infoLog)EndIfglDeleteShader (vertexShader)glDeleteShader (fragmentShader)Local vertices:Float [] = [.. 0.5, -0.5, 0.0, .. -0.5, -0.5, 0.0, .. 0.0, 0.5, 0.0]Local VBO:UIntLocal VAO:UIntglGenVertexArrays (1, Varptr VAO)glGenBuffers (1, Varptr VBO)glBindVertexArray (VAO)glBindBuffer (GL_ARRAY_BUFFER, VBO)glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * Sizeof (0:Float), 0:Byte Ptr)glEnableVertexAttribArray (0)glBindVertexArray (VAO)While Not window.ShouldClose () ProcessInput (window) glClearColor (0.2, 0.3, 0.3, 1.0) glClear (GL_COLOR_BUFFER_BIT) glUseProgram (shaderProgram) Local timeValue:Float = MilliSecs () Local greenValue:Float = Sin (timeValue) / 2.0 + 0.5 Local vertexColorLocation:Int = glGetUniformLocation (shaderProgram, "ourColor") glUniform4f (vertexColorLocation, 0.0, greenValue, 0.0, 1.0) glDrawArrays (GL_TRIANGLES, 0, 3) window.SwapBuffers () PollSystem () WendglDeleteVertexArrays (1, Varptr VAO)glDeleteBuffers (1, Varptr VBO)End