Squashed commit of the following: [raii_pyobjects]
closes #4 commit8f060dc87bAuthor: John McCardle <mccardle.john@gmail.com> Date: Fri Mar 15 22:20:03 2024 -0400 Removing std::cout debugging statements commitc9d5251c71Author: John McCardle <mccardle.john@gmail.com> Date: Fri Mar 15 20:00:57 2024 -0400 In-place map modification worked commit0a8f67e391Author: John McCardle <mccardle.john@gmail.com> Date: Thu Mar 14 23:13:13 2024 -0400 Stress test is failing: By removing a timer to a function (from inside that function?) I can immediately cause a segfault. commit05d9f6a882Author: John McCardle <mccardle.john@gmail.com> Date: Tue Mar 12 22:27:12 2024 -0400 wow, good test of Key and Click Callable classes. Cleanup, squash, and merge after I give it a lookover in daylight, though. commit972768eb26Author: John McCardle <mccardle.john@gmail.com> Date: Tue Mar 12 21:02:48 2024 -0400 inital PyCallable work; isolate very well behaved usage of PyObject references behind RAII
This commit is contained in:
parent
2c3c1449ee
commit
cdaf309272
13 changed files with 302 additions and 28 deletions
|
|
@ -9,7 +9,7 @@ texture_hot = mcrfpy.Texture("assets/kenney_lava.png", 16, 12, 11)
|
|||
|
||||
# Test stuff
|
||||
mcrfpy.createScene("boom")
|
||||
#mcrfpy.setScene("boom")
|
||||
mcrfpy.setScene("boom")
|
||||
ui = mcrfpy.sceneUI("boom")
|
||||
box = mcrfpy.Frame(40, 60, 200, 300, fill_color=(255,128,0), outline=4.0, outline_color=(64,64,255,96))
|
||||
ui.append(box)
|
||||
|
|
@ -36,10 +36,95 @@ box.children.append(sprite)
|
|||
box.children.append(spritecap)
|
||||
box.click = click_sprite
|
||||
|
||||
f_a = mcrfpy.Frame(250, 60, 80, 80, fill_color=(255, 92, 92))
|
||||
f_a_txt = mcrfpy.Caption(5, 5, "0", font)
|
||||
|
||||
f_b = mcrfpy.Frame(340, 60, 80, 80, fill_color=(92, 255, 92))
|
||||
f_b_txt = mcrfpy.Caption(5, 5, "0", font)
|
||||
|
||||
f_c = mcrfpy.Frame(430, 60, 80, 80, fill_color=(92, 92, 255))
|
||||
f_c_txt = mcrfpy.Caption(5, 5, "0", font)
|
||||
|
||||
|
||||
ui.append(f_a)
|
||||
f_a.children.append(f_a_txt)
|
||||
ui.append(f_b)
|
||||
f_b.children.append(f_b_txt)
|
||||
ui.append(f_c)
|
||||
f_c.children.append(f_c_txt)
|
||||
|
||||
import sys
|
||||
def ding(*args):
|
||||
f_a_txt.text = str(sys.getrefcount(ding)) + " refs"
|
||||
f_b_txt.text = sys.getrefcount(dong)
|
||||
f_c_txt.text = sys.getrefcount(stress_test)
|
||||
|
||||
def dong(*args):
|
||||
f_a_txt.text = str(sys.getrefcount(ding)) + " refs"
|
||||
f_b_txt.text = sys.getrefcount(dong)
|
||||
f_c_txt.text = sys.getrefcount(stress_test)
|
||||
|
||||
running = False
|
||||
timers = []
|
||||
|
||||
def add_ding():
|
||||
global timers
|
||||
n = len(timers)
|
||||
mcrfpy.setTimer(f"timer{n}", ding, 100)
|
||||
print("+1 ding:", timers)
|
||||
|
||||
def add_dong():
|
||||
global timers
|
||||
n = len(timers)
|
||||
mcrfpy.setTimer(f"timer{n}", dong, 100)
|
||||
print("+1 dong:", timers)
|
||||
|
||||
def remove_random():
|
||||
global timers
|
||||
target = random.choice(timers)
|
||||
print("-1 timer:", target)
|
||||
print("remove from list")
|
||||
timers.remove(target)
|
||||
print("delTimer")
|
||||
mcrfpy.delTimer(target)
|
||||
print("done")
|
||||
|
||||
import random
|
||||
import time
|
||||
def stress_test(*args):
|
||||
global running
|
||||
global timers
|
||||
if not running:
|
||||
print("stress test initial")
|
||||
running = True
|
||||
timers.append("recurse")
|
||||
add_ding()
|
||||
add_dong()
|
||||
mcrfpy.setTimer("recurse", stress_test, 1000)
|
||||
mcrfpy.setTimer("terminate", lambda *args: mcrfpy.delTimer("recurse"), 30000)
|
||||
ding(); dong()
|
||||
else:
|
||||
#print("stress test random activity")
|
||||
#random.choice([
|
||||
# add_ding,
|
||||
# add_dong,
|
||||
# remove_random
|
||||
# ])()
|
||||
#print(timers)
|
||||
print("Segfaultin' time")
|
||||
mcrfpy.delTimer("recurse")
|
||||
print("Does this still work?")
|
||||
time.sleep(0.5)
|
||||
print("How about now?")
|
||||
|
||||
|
||||
stress_test()
|
||||
|
||||
|
||||
# Loading Screen
|
||||
mcrfpy.createScene("loading")
|
||||
ui = mcrfpy.sceneUI("loading")
|
||||
mcrfpy.setScene("loading")
|
||||
#mcrfpy.setScene("loading")
|
||||
logo_texture = mcrfpy.Texture("assets/temp_logo.png", 1024, 1, 1)
|
||||
logo_sprite = mcrfpy.Sprite(50, 50, logo_texture, 0, 0.5)
|
||||
ui.append(logo_sprite)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue