''' Canvas stress ============= This is just a test for testing the performance of our Graphics engine. ''' from kivy.uix.button import Button from kivy.uix.widget import Widget from kivy.uix.label import Label from kivy.uix.boxlayout import BoxLayout from kivy.app import App from kivy.graphics import Color, Rectangle from random import random as r from functools import partial class StressCanvasApp(App): def add_rects(self, label, wid, count, *largs): label.text = str(int(label.text) + count) with wid.canvas: for x in range(count): Color(r(), 1, 1, mode='hsv') Rectangle(pos=(r() * wid.width + wid.x, r() * wid.height + wid.y), size=(20, 20)) def reset_rects(self, label, wid, *largs): label.text = '0' wid.canvas.clear() def build(self): wid = Widget() label = Label(text='0') btn_add100 = Button(text='+ 100 rects', on_press=partial(self.add_rects, label, wid, 100)) btn_add500 = Button(text='+ 500 rects', on_press=partial(self.add_rects, label, wid, 500)) btn_reset = Button(text='Reset', on_press=partial(self.reset_rects, label, wid)) layout = BoxLayout(size_hint=(1, None), height=50) layout.add_widget(btn_add100) layout.add_widget(btn_add500) layout.add_widget(btn_reset) layout.add_widget(label) root = BoxLayout(orientation='vertical') root.add_widget(wid) root.add_widget(layout) return root if __name__ == '__main__': StressCanvasApp().run()