Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fabricesalvaire/pyopenglng
An OpenGL CFFI (and ctypes) binding for Python
https://github.com/fabricesalvaire/pyopenglng
opengl python python-wrapper python3
Last synced: 9 days ago
JSON representation
An OpenGL CFFI (and ctypes) binding for Python
- Host: GitHub
- URL: https://github.com/fabricesalvaire/pyopenglng
- Owner: FabriceSalvaire
- License: gpl-3.0
- Created: 2013-05-01T20:01:30.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2017-05-20T21:10:45.000Z (over 7 years ago)
- Last Synced: 2024-05-19T00:05:39.874Z (6 months ago)
- Topics: opengl, python, python-wrapper, python3
- Language: Python
- Homepage: http://fabricesalvaire.github.io/PyOpenGLng
- Size: 2.69 MB
- Stars: 10
- Watchers: 4
- Forks: 2
- Open Issues: 16
-
Metadata Files:
- Readme: README.html
- License: LICENSE.txt
Awesome Lists containing this project
README
/*
:Author: David Goodger ([email protected])
:Id: $Id: html4css1.css 7614 2013-02-21 15:55:51Z milde $
:Copyright: This stylesheet has been placed in the public domain.Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*//* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }.last, .with-subtitle {
margin-bottom: 0 ! important }.hidden {
display: none }a.toc-backref {
text-decoration: none ;
color: black }blockquote.epigraph {
margin: 2em 5em ; }dl.docutils dd {
margin-bottom: 0.5em }object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/div.abstract {
margin: 2em 5em }div.abstract p.topic-title {
font-weight: bold ;
text-align: center }div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }div.figure {
margin-left: 2em ;
margin-right: 2em }div.footer, div.header {
clear: both;
font-size: smaller }div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }div.system-messages {
margin: 5em }div.system-messages h1 {
color: red }div.system-message {
border: medium outset ;
padding: 1em }div.system-message p.system-message-title {
color: red ;
font-weight: bold }div.topic {
margin: 2em }h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }h1.title {
text-align: center }h2.subtitle {
text-align: center }hr.docutils {
width: 75% }img.align-left, .figure.align-left, object.align-left {
clear: left ;
float: left ;
margin-right: 1em }img.align-right, .figure.align-right, object.align-right {
clear: right ;
float: right ;
margin-left: 1em }img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}.align-left {
text-align: left }.align-center {
clear: both ;
text-align: center }.align-right {
text-align: right }/* reset inner alignment in figures */
div.align-right {
text-align: inherit }/* div.align-center * { */
/* text-align: left } */ol.simple, ul.simple {
margin-bottom: 1em }ol.arabic {
list-style: decimal }ol.loweralpha {
list-style: lower-alpha }ol.upperalpha {
list-style: upper-alpha }ol.lowerroman {
list-style: lower-roman }ol.upperroman {
list-style: upper-roman }p.attribution {
text-align: right ;
margin-left: 50% }p.caption {
font-style: italic }p.credits {
font-style: italic ;
font-size: smaller }p.label {
white-space: nowrap }p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }p.topic-title {
font-weight: bold }pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}span.classifier {
font-family: sans-serif ;
font-style: oblique }span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }span.interpreted {
font-family: sans-serif }span.option {
white-space: nowrap }span.pre {
white-space: pre }span.problematic {
color: red }span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }table.citation {
border-left: solid 1px gray;
margin-left: 1px }table.docinfo {
margin: 2em 4em }table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }table.footnote {
border-left: solid 1px black;
margin-left: 1px }table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }ul.auto-toc {
list-style-type: none }PyOpenGLng
The official PyOpenGLng Home Page is located at http://fabricesalvaire.github.io/PyOpenGLng
The latest documentation build from the git repository is available at readthedocs.org
Written by Fabrice Salvaire.
PyOpenGLng license
PyOpenGLng python versionPyOpenGLng last version
PyOpenGLng format
PyOpenGLng Download per month
Introduction
PyOpenGLng, proudly blessed as is, is an experimental OpenGL wrapper for Python which generates
the requested OpenGL API from the OpenGL XML API Registry and use an automatic translator to map the
C API to Python. The interface between C and Python is supported by ctypes and also by CFFI
which paves the way to use the pypy interpreter.By design this wrapper supports all the OpenGL version, but it focus towards the programmable
pipeline and the most recent OpenGL API. On Linux desktop, Mesa 3D Graphics Library release 10 (November 2013)
supports the OpenGL 3.3 API for Intel HD GPU.The Python package provides three components:
- an Oriented Object API to the OpenGL XML registry,
- a ctypes and CFFI wrapper,
- an experimental high level API.
Warning
We should test all the API to claim a compliance with the OpenGL API. Since the OpenGL
API becomes more and more large and complex over the release, such attempt would require a huge
amount of work. Up to now only a part of the API was tested successfully.Bibliography
The followings list of links provides an overview on the topic:
Installation
Dependencies
PyOpenGLng requires the following dependencies:
Installation from PyPi Repository
PyOpenGLng is made available on the PyPI repository at https://pypi.python.org/pypi/PyOpenGLng
Run this command to install the last release:
pip install PyOpenGLngInstallation from Source
The PyOpenGLng source code is hosted at https://github.com/FabriceSalvaire/PyOpenGLng
To clone the Git repository, run this command in a terminal:
git clone [email protected]:FabriceSalvaire/PyOpenGLng.gitThen to build and install PyOpenGLng run these commands:
python setup.py build
python setup.py install