Skip to content

Commit 0ed6adb

Browse files
committed
Added an example.
1 parent 2cb6c52 commit 0ed6adb

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

example.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import sdl3, ctypes, os, \
2+
sys, colorsys, time
3+
4+
def main(argv):
5+
print(f"loaded {len(sdl3.functions)} functions.")
6+
result = sdl3.SDL_Init(sdl3.SDL_INIT_VIDEO | sdl3.SDL_INIT_EVENTS | sdl3.SDL_INIT_TIMER)
7+
8+
if result:
9+
print(f"failed to initialize library: {sdl3.SDL_GetError().decode().lower()}.")
10+
return 1
11+
12+
window = sdl3.SDL_CreateWindow("Aermoss".encode(), 1200, 600, sdl3.SDL_WINDOW_RESIZABLE)
13+
14+
drivers = [sdl3.SDL_GetRenderDriver(i).decode() for i in range(sdl3.SDL_GetNumRenderDrivers())]
15+
print(f"available render drivers: {", ".join(drivers)}")
16+
17+
renderer = sdl3.SDL_CreateRenderer(window, ("vulkan" if "vulkan" in drivers else "software").encode())
18+
19+
if not renderer:
20+
print(f"failed to create renderer: {sdl3.SDL_GetError().decode().lower()}.")
21+
return 1
22+
23+
running, hue, last = True, 0.0, 0.0
24+
25+
while running:
26+
event = sdl3.SDL_Event()
27+
28+
while sdl3.SDL_PollEvent(ctypes.byref(event)):
29+
match event.type:
30+
case sdl3.SDL_EVENT_QUIT:
31+
running = False
32+
33+
case sdl3.SDL_EVENT_KEY_DOWN:
34+
if event.key.key == sdl3.SDLK_ESCAPE:
35+
running = False
36+
37+
last, delta = \
38+
time.time(), time.time() - last
39+
40+
hue += 0.5 * delta
41+
42+
sdl3.SDL_SetRenderDrawColorFloat(renderer, *colorsys.hsv_to_rgb(hue, 1.0, 1.0), 255.0)
43+
sdl3.SDL_RenderClear(renderer)
44+
sdl3.SDL_RenderPresent(renderer)
45+
46+
sdl3.SDL_DestroyRenderer(renderer)
47+
sdl3.SDL_DestroyWindow(window)
48+
sdl3.SDL_Quit()
49+
return 0
50+
51+
if __name__ == "__main__":
52+
os._exit(main(sys.argv))

0 commit comments

Comments
 (0)