# draw lines on the current rendering target (raw SDL2 version)
from sdl2 import *
from ctypes import *
import sdl2.ext
# initialize
SDL_Init(SDL_INIT_VIDEO)
# create window
win = SDL_CreateWindow(b"RenderDrawLines",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
640, 480, SDL_WINDOW_SHOWN)
# create renderer
renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC)
# fill background with white
SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE)
SDL_RenderClear(renderer)
# draw a black line
SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE)
# create python list of SDL_Points
points = [SDL_Point(0,0), SDL_Point(640,480)]
# convert SDL_Point list to SDL_Point C array
cnt = len(points)
pointsArray = pointer((SDL_Point * cnt)())
for i in range(cnt):
pointsArray.contents[i] = points[i]
SDL_RenderDrawLines(renderer, pointsArray.contents[0], cnt)
# show
SDL_RenderPresent(renderer)
# run event loop
running = True
while running:
events = sdl2.ext.get_events()
for event in events:
if event.type == SDL_QUIT:
running = False
break
SDL_Delay(40)
# clean up
SDL_DestroyRenderer(renderer)
SDL_DestroyWindow(win)
SDL_Quit()