Skip to main content

An opengl frame for pyopengl-tkinter based on ctype

Project description

pyopengltk

Tkinter - OpenGL Frame using ctypes

An opengl frame for pyopengl-tkinter based on ctypes (no togl compilation)

Collected together by Jon Wright, Jan 2018.

Basic Example

This example creates a window containing an OpenGLFrame filling the entire window. We configure it to animate (constantly redraw) clearing the screen using a green color. A simple framerate counter is included. The context information is printed to the terminal.

import time
import tkinter
from OpenGL import GL
from pyopengltk import OpenGLFrame

class AppOgl(OpenGLFrame):

    def initgl(self):
        """Initalize gl states when the frame is created"""
        GL.glViewport(0, 0, self.width, self.height)
        GL.glClearColor(0.0, 1.0, 0.0, 0.0)    
        self.start = time.time()
        self.nframes = 0

    def redraw(self):
        """Render a single frame"""
        GL.glClear(GL.GL_COLOR_BUFFER_BIT)
        tm = time.time() - self.start
        self.nframes += 1
        print("fps",self.nframes / tm, end="\r" )


if __name__ == '__main__':
    root = tkinter.Tk()
    app = AppOgl(root, width=320, height=200)
    app.pack(fill=tkinter.BOTH, expand=tkinter.YES)
    app.animate = 1
    app.after(100, app.printContext)
    app.mainloop()

The repository on Github also contains more examples.

Install

From PyPI:

pip install pyopengltk

From source:

git clone https://github.com/jonwright/pyopengltk
cd pyopengltk
pip install .

Attributions

Based on the work of others.

C + Tcl/Tk example:

Python + Tkinter (no pyopengl) example:

pyopengl

  • Large regions of code copied from pyopengl/Tk/__init__.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyopengltk-0.0.3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

pyopengltk-0.0.3-py2.py3-none-any.whl (12.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyopengltk-0.0.3.tar.gz.

File metadata

  • Download URL: pyopengltk-0.0.3.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.15

File hashes

Hashes for pyopengltk-0.0.3.tar.gz
Algorithm Hash digest
SHA256 31f93c50cecf168742cc6767afa19b4953f7257ca0a41be1ad39490455cfc6f2
MD5 a865cd0cc2ea3f92d9b3b05c7996ad56
BLAKE2b-256 a5248d7bf9d942d0902931bf15ee22f8538a7bf68c46b3f918500fd81cb5b31a

See more details on using hashes here.

File details

Details for the file pyopengltk-0.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: pyopengltk-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.15

File hashes

Hashes for pyopengltk-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fa01a3fcbe281ae52b13736c2f9b5249d2c2e94f005d591d5df390774ceec79a
MD5 9b3557a9df1518e186f966bf1cef02f4
BLAKE2b-256 3f7d2d1b9393d7f1a5f9c3fd676ff5a606efeea772dbb872f3e93716d9fb4ce4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page