I think:
https://gist.github.com/MorganBorman/4243336
It may be what you are looking for. He shows how to use vertex shaders and fragment shaders in pygame and PyOpenGL. If you are not using PyOpenGL then you need it. To download it, simply run:
pip install PyOpenGL
in command line / terminal
If this does not work, I recommend taking a look at the PyOpenGL installation page for more details:
http://pyopengl.sourceforge.net/documentation/installation.html
I have included a short exemplary example of what I think you're trying to do this by using some code from the link.
import OpenGL.GL as GL import OpenGL.GL.shaders import pygame as pg #-------------not my code, credit to: Morgan Borman--------------# vertex_shader = """ #version 330 in vec4 position; void main() { gl_Position = position; } """ fragment_shader = """ #version 330 void main() { gl_FragColor = vec4(1.0f, 1.0f, 1.0f, 1.0f); } """ #----------------------------------------------------------------# def main(): pg.init() #-------------not my code, credit to: Morgan Borman--------------# GL.glClearColor(0.5, 0.5, 0.5, 1.0) GL.glEnable(GL.GL_DEPTH_TEST) shader = OpenGL.GL.shaders.compileProgram( OpenGL.GL.shaders.compileShader(vertex_shader, GL.GL_VERTEX_SHADER), OpenGL.GL.shaders.compileShader(fragment_shader, GL.GL_FRAGMENT_SHADER) ) #----------------------------------------------------------------# DISPLAY_DIMENSIONS = (640, 480) display = pg.display.set_mode(DISPLAY_DIMENSIONS, pg.DOUBLEBUF | pg.OPENGL) clock = pg.time.Clock() FPS = 60 while True: clock.tick(FPS) for e in pg.event.get(): if e.type == pg.QUIT: return pg.display.flip() if __name__ == '__main__': try: main() finally: pg.quit() : Morgan Borman -------------- # import OpenGL.GL as GL import OpenGL.GL.shaders import pygame as pg #-------------not my code, credit to: Morgan Borman--------------# vertex_shader = """ #version 330 in vec4 position; void main() { gl_Position = position; } """ fragment_shader = """ #version 330 void main() { gl_FragColor = vec4(1.0f, 1.0f, 1.0f, 1.0f); } """ #----------------------------------------------------------------# def main(): pg.init() #-------------not my code, credit to: Morgan Borman--------------# GL.glClearColor(0.5, 0.5, 0.5, 1.0) GL.glEnable(GL.GL_DEPTH_TEST) shader = OpenGL.GL.shaders.compileProgram( OpenGL.GL.shaders.compileShader(vertex_shader, GL.GL_VERTEX_SHADER), OpenGL.GL.shaders.compileShader(fragment_shader, GL.GL_FRAGMENT_SHADER) ) #----------------------------------------------------------------# DISPLAY_DIMENSIONS = (640, 480) display = pg.display.set_mode(DISPLAY_DIMENSIONS, pg.DOUBLEBUF | pg.OPENGL) clock = pg.time.Clock() FPS = 60 while True: clock.tick(FPS) for e in pg.event.get(): if e.type == pg.QUIT: return pg.display.flip() if __name__ == '__main__': try: main() finally: pg.quit() 1.0f, 1.0f); import OpenGL.GL as GL import OpenGL.GL.shaders import pygame as pg #-------------not my code, credit to: Morgan Borman--------------# vertex_shader = """ #version 330 in vec4 position; void main() { gl_Position = position; } """ fragment_shader = """ #version 330 void main() { gl_FragColor = vec4(1.0f, 1.0f, 1.0f, 1.0f); } """ #----------------------------------------------------------------# def main(): pg.init() #-------------not my code, credit to: Morgan Borman--------------# GL.glClearColor(0.5, 0.5, 0.5, 1.0) GL.glEnable(GL.GL_DEPTH_TEST) shader = OpenGL.GL.shaders.compileProgram( OpenGL.GL.shaders.compileShader(vertex_shader, GL.GL_VERTEX_SHADER), OpenGL.GL.shaders.compileShader(fragment_shader, GL.GL_FRAGMENT_SHADER) ) #----------------------------------------------------------------# DISPLAY_DIMENSIONS = (640, 480) display = pg.display.set_mode(DISPLAY_DIMENSIONS, pg.DOUBLEBUF | pg.OPENGL) clock = pg.time.Clock() FPS = 60 while True: clock.tick(FPS) for e in pg.event.get(): if e.type == pg.QUIT: return pg.display.flip() if __name__ == '__main__': try: main() finally: pg.quit() 1.0) import OpenGL.GL as GL import OpenGL.GL.shaders import pygame as pg #-------------not my code, credit to: Morgan Borman--------------# vertex_shader = """ #version 330 in vec4 position; void main() { gl_Position = position; } """ fragment_shader = """ #version 330 void main() { gl_FragColor = vec4(1.0f, 1.0f, 1.0f, 1.0f); } """ #----------------------------------------------------------------# def main(): pg.init() #-------------not my code, credit to: Morgan Borman--------------# GL.glClearColor(0.5, 0.5, 0.5, 1.0) GL.glEnable(GL.GL_DEPTH_TEST) shader = OpenGL.GL.shaders.compileProgram( OpenGL.GL.shaders.compileShader(vertex_shader, GL.GL_VERTEX_SHADER), OpenGL.GL.shaders.compileShader(fragment_shader, GL.GL_FRAGMENT_SHADER) ) #----------------------------------------------------------------# DISPLAY_DIMENSIONS = (640, 480) display = pg.display.set_mode(DISPLAY_DIMENSIONS, pg.DOUBLEBUF | pg.OPENGL) clock = pg.time.Clock() FPS = 60 while True: clock.tick(FPS) for e in pg.event.get(): if e.type == pg.QUIT: return pg.display.flip() if __name__ == '__main__': try: main() finally: pg.quit() pg.OPENGL) import OpenGL.GL as GL import OpenGL.GL.shaders import pygame as pg #-------------not my code, credit to: Morgan Borman--------------# vertex_shader = """ #version 330 in vec4 position; void main() { gl_Position = position; } """ fragment_shader = """ #version 330 void main() { gl_FragColor = vec4(1.0f, 1.0f, 1.0f, 1.0f); } """ #----------------------------------------------------------------# def main(): pg.init() #-------------not my code, credit to: Morgan Borman--------------# GL.glClearColor(0.5, 0.5, 0.5, 1.0) GL.glEnable(GL.GL_DEPTH_TEST) shader = OpenGL.GL.shaders.compileProgram( OpenGL.GL.shaders.compileShader(vertex_shader, GL.GL_VERTEX_SHADER), OpenGL.GL.shaders.compileShader(fragment_shader, GL.GL_FRAGMENT_SHADER) ) #----------------------------------------------------------------# DISPLAY_DIMENSIONS = (640, 480) display = pg.display.set_mode(DISPLAY_DIMENSIONS, pg.DOUBLEBUF | pg.OPENGL) clock = pg.time.Clock() FPS = 60 while True: clock.tick(FPS) for e in pg.event.get(): if e.type == pg.QUIT: return pg.display.flip() if __name__ == '__main__': try: main() finally: pg.quit()
He does not do anything except loading shaders in pygame. I believe that your main goal.