mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-05 16:00:06 +01:00
52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
BaseContext = testingcontext.getInteractive()
|
|
from OpenGL.GL import *
|
|
from OpenGL.arrays import vbo
|
|
from OpenGL.GL import shaders
|
|
|
|
class TextContext( BaseContext ):
|
|
""" Creates a simple vertex shader ... """
|
|
|
|
def Oninit(self):
|
|
VERTEX_SHADER = shaders.compileShader("""#version 120
|
|
void main() {
|
|
gl_position = gl_ModeViewProjectionMatrix * gl_Vertex;
|
|
}""", GL_VERTEX_SHADER)
|
|
|
|
FRAGMENT_SHADER = shaders.compileShader("""#version 120
|
|
void main() {
|
|
gl_FragColor = vect4(0, 1, 0, 1 );
|
|
}""", GL_FRAMENT_SHADER)
|
|
|
|
self.shader = shaders.compileProgram(VERTEX_SHADER,FRAGMENT_SHADER)
|
|
|
|
self.vbo = vbo.VBO(
|
|
array( [
|
|
[ 0, 1, 0 ],
|
|
[ -1, -1, 0 ],
|
|
[ 1, -1, 0 ],
|
|
[ 2, -1, 0 ],
|
|
[ 4, -1, 0 ],
|
|
[ 4, 1, 0 ],
|
|
[ 2, -1, 0 ],
|
|
[ 4, 1, 0 ],
|
|
[ 2, 1, 0 ],
|
|
], 'f')
|
|
)
|
|
|
|
def Render(self, mode):
|
|
""""Renders the geometry for the scene"""
|
|
shaders.glUseProgram(self.shader)
|
|
try:
|
|
self.vbo.bind()
|
|
try:
|
|
glEnableClientState(GL_VERTEX_ARRAY)
|
|
glVertexPointerf(self.vbo)
|
|
glDrawArrays(GL_TRIANGLES,0,9)
|
|
finally:
|
|
self.vbo.unbind()
|
|
glDisableClientState(GL_VERTEX_ARRAY)
|
|
finally:
|
|
shaders.glUseProgram(0)
|
|
|
|
|