A simple window with your own main loop.
Project description
glwindow
pip install glwindow
A simple window with your own main loop.
Examples
import glwindow
window = glwindow.window()
while window.visible:
glwindow.update()
Multiple Windows
import glwindow
windows = [
glwindow.window((640, 480)),
glwindow.window((640, 480)),
glwindow.window((640, 480)),
]
while any(x.visible for x in windows):
glwindow.update()
Keyboard Input
import glwindow
window = glwindow.window()
while window.visible:
glwindow.update()
if window.key_pressed('escape'):
break
Vulkan Surface
import glnext
import glwindow
from glnext_compiler import glsl
instance = glnext.instance(surface=True)
task = instance.task()
size = (512, 512)
framebuffer = task.framebuffer(size)
pipeline = framebuffer.render(
vertex_shader=glsl('''
#version 450
#pragma shader_stage(vertex)
layout (location = 0) out vec4 out_color;
vec2 positions[3] = vec2[](
vec2(-0.5, -0.5),
vec2(0.5, -0.5),
vec2(0.0, 0.5)
);
vec4 colors[3] = vec4[](
vec4(1.0, 0.0, 0.0, 1.0),
vec4(0.0, 1.0, 0.0, 1.0),
vec4(0.0, 0.0, 1.0, 1.0)
);
void main() {
gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
out_color = colors[gl_VertexIndex];
gl_Position.y *= -1.0;
}
'''),
fragment_shader=glsl('''
#version 450
#pragma shader_stage(fragment)
layout (location = 0) in vec4 in_color;
layout (location = 0) out vec4 out_color;
void main() {
out_color = in_color;
}
'''),
vertex_count=3,
)
wnd = glwindow.window(size, title='Hello World!')
instance.surface(wnd.handle, framebuffer.output[0])
while wnd.visible:
glwindow.update()
task.run()
instance.present()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
glwindow-4.2.0.tar.gz
(8.0 kB
view hashes)
Built Distributions
Close
Hashes for glwindow-4.2.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bb8c4a085e16c633d3e9626ada8c0fde25db42c07e3676ddb75ee41df958250 |
|
MD5 | 2ead694c9793a648062ac89282dee7eb |
|
BLAKE2b-256 | f5f8d821eed863ad25a2aad6d904476ac17fd66aae54d09cac2e5a6ee374d500 |
Close
Hashes for glwindow-4.2.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 129ea87ac0b40daee1bfc19d028902b54daeb3ae7a8e19daf0bed4794c26321c |
|
MD5 | a8d2a5c56dc5fe1de07ef0807fe99389 |
|
BLAKE2b-256 | 43eb9462bc837beb290b38a2cc2c34d1e3dd430cb17b1f924b6e53319172d02d |
Close
Hashes for glwindow-4.2.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd269081b16f974c7faff7fd5b03c9611fd7cd806d311689a241b51831af3d9f |
|
MD5 | a02862bda20f5ef7f51658c371b3abaa |
|
BLAKE2b-256 | 0af3458ce1f7946c1ce9234f11598af44daa125666b816ec2ad6aa1aeb573215 |
Close
Hashes for glwindow-4.2.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5a3df3e6348374ca835b81e9c19e0e466cab9ca7f43b65fe2526376a071a583 |
|
MD5 | 96d6ccca140f5667787461242bab4be3 |
|
BLAKE2b-256 | 2459500f1643abf367e74b5fecb3309f1e6817000a5763f045a73dc63ee15e32 |
Close
Hashes for glwindow-4.2.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc9c209eddfd7605abb6c15626ea842ea5079aa5231f5e5d08a1316da2b28710 |
|
MD5 | 59fef7b4490f54fb7c95c73a92421316 |
|
BLAKE2b-256 | 21fff693f69ca7112ba6bea65a6af9f0c8ac71b4b34dbcbf4d4160a4ce253e1e |
Close
Hashes for glwindow-4.2.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84a84af01aea0d7f9b3ee53609c9eff46e9ef19858411809138d1c76c0ad8b26 |
|
MD5 | d5e0ba474170d7d2450eb7d73436ca78 |
|
BLAKE2b-256 | b170378d51db3c97a39ec85691763798e8eaeaee05b0e97715e8ae6f704ea358 |
Close
Hashes for glwindow-4.2.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c32b89e0faff0ceb3f4687b7c0343d4906135a2a6a407003d3b7362e124f0e21 |
|
MD5 | 5a5589b80b04f319b6659e1c746041f4 |
|
BLAKE2b-256 | 3927ec5b85eac705125e41267c79e0136dcafa02f03b89306a2162cc829887b8 |
Close
Hashes for glwindow-4.2.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da61b5cc1fa28907ab7408f9a62369b480b618b95d2f4e674dd6430915fd24bd |
|
MD5 | f6d3d622d632ad8cd2acde29c86dee62 |
|
BLAKE2b-256 | 3d4768f0efe994120e7397a6cd3381b7f7ecaf4c4d58491e889402e8861cba11 |
Close
Hashes for glwindow-4.2.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eabc7c01d7dd8e4121f21f8bc8ed3de3f9bb107a0593459ffc8ba985515eb859 |
|
MD5 | 5739124d5c1591768f789cc318b08647 |
|
BLAKE2b-256 | 582d36bb1f21c446aaeb5abb1ddd72e93bcee6867999bea33cfc7caeb397f440 |
Close
Hashes for glwindow-4.2.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93a9ae5989c378223e331e28377cd51e0abaa34f67078e529c494410679307fa |
|
MD5 | 5c6addef5e1fbb46563c6b83ddfd3fb2 |
|
BLAKE2b-256 | 8ec4223e92645bbcbf9c3978423d82b71837ce8ea1ed0f02a9ffba30cc3e977d |
Close
Hashes for glwindow-4.2.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83e1e64a34aaef96283a7472422eddb9ab878a085c05e6f7e83ad1a22f9f7d83 |
|
MD5 | 84b26cabec966279ca3dd54006fcc632 |
|
BLAKE2b-256 | 9bc6749f6295271dc70a1438f82b8e9793cc2147523a4113600a27542b634de6 |
Close
Hashes for glwindow-4.2.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48864bd3fcab91e1d6fcbd7ce8c0234506fa17680d13ac8844ee00bb30d18a9b |
|
MD5 | d99e327c6e78e1f9cd69e1630e98fbde |
|
BLAKE2b-256 | e5f13385887a9fce89ae52ac8084a0d373ac52dd9f5ed7bef59a463f1ea895dc |