glCreateShader(type = GL_FRAGMENT_SHADER) = 1 glShaderSource(shader = 1, count = 1, string = &"void main() { gl_FragColor = gl_Color; } ", length = &-1) glCompileShader(shader = 1) glGetShaderiv(shader = 1, pname = GL_COMPILE_STATUS, params = &1) glCreateShader(type = GL_VERTEX_SHADER) = 2 glShaderSource(shader = 2, count = 1, string = &"void main() { gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; gl_FrontColor = gl_Color; } ", length = &-1) glCompileShader(shader = 2) glGetShaderiv(shader = 2, pname = GL_COMPILE_STATUS, params = &1) glCreateProgram() = 3 glAttachShader(program = 3, shader = 1) glAttachShader(program = 3, shader = 2) glLinkProgram(program = 3) glGetProgramiv(program = 3, pname = GL_LINK_STATUS, params = &1) glUseProgram(program = 3) glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 1) glViewport(x = 0, y = 0, width = 250, height = 250) glMatrixMode(mode = GL_PROJECTION) glLoadIdentity() glOrtho(left = -1, right = 1, bottom = -1, top = 1, zNear = -0.5, zFar = 1000) glMatrixMode(mode = GL_MODELVIEW) glClear(mask = GL_COLOR_BUFFER_BIT) glBegin(mode = GL_TRIANGLES) glColor3f(red = 0.8, green = 0, blue = 0) glVertex3f(x = -0.9, y = -0.9, z = -30) glColor3f(red = 0, green = 0.9, blue = 0) glVertex3f(x = 0.9, y = -0.9, z = -30) glColor3f(red = 0, green = 0, blue = 0.7) glVertex3f(x = 0, y = 0.9, z = -30) glEnd() glFlush() glDeleteShader(shader = 1) glDeleteShader(shader = 2) glDeleteProgram(program = 3)