You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
from sdl2 import * |
|
import tkinter as tk |
|
from tkinter import * |
|
import random, ctypes |
|
|
|
def draw(): |
|
global renderer |
|
x1 = ctypes.c_int(random.randrange(0, 600)) |
|
y1 = ctypes.c_int(random.randrange(0, 500)) |
|
x2 = ctypes.c_int(random.randrange(0, 600)) |
|
y2 = ctypes.c_int(random.randrange(0, 500)) |
|
r = ctypes.c_ubyte(random.randrange(0, 255)) |
|
g = ctypes.c_ubyte(random.randrange(0, 255)) |
|
b = ctypes.c_ubyte(random.randrange(0, 255)) |
|
SDL_SetRenderDrawColor(renderer, r, g, b, ctypes.c_ubyte(255)) |
|
SDL_RenderDrawLine(renderer, x1, y1, x2, y2) |
|
|
|
def sdl_update(): |
|
global window, event, renderer |
|
SDL_RenderPresent(renderer); |
|
if SDL_PollEvent(ctypes.byref(event)) != 0: |
|
if event.type == SDL_QUIT: |
|
SDL_DestroyRenderer(renderer) |
|
SDL_DestroyWindow(window) |
|
SDL_Quit() |
|
|
|
# tkinter stuff # |
|
root = tk.Tk() |
|
embed = tk.Frame(root, width = 500, height = 500) #creates embed frame for pygame window |
|
embed.grid(columnspan = (600), rowspan = 500) # Adds grid |
|
embed.pack(side = LEFT) #packs window to the left |
|
buttonwin = tk.Frame(root, width = 75, height = 500) |
|
buttonwin.pack(side = LEFT) |
|
button1 = Button(buttonwin,text = 'Draw', command=draw) |
|
button1.pack(side=LEFT) |
|
root.update() |
|
################################# |
|
# SDL window stuff # |
|
SDL_Init(SDL_INIT_VIDEO) |
|
window = SDL_CreateWindowFrom(embed.winfo_id()) |
|
renderer = SDL_CreateRenderer(window, -1, 0) |
|
SDL_SetRenderDrawColor(renderer, ctypes.c_ubyte(255), ctypes.c_ubyte(255), |
|
ctypes.c_ubyte(255), ctypes.c_ubyte(255)) |
|
SDL_RenderClear(renderer) |
|
event = SDL_Event() |
|
draw() |
|
|
|
while True: |
|
sdl_update() |
|
root.update() |