lass Widget2(Widget): def __init__(self,parent, x, y, w=0, h=0): Widget.__init__(self) parent.children.append(self) self.x, self.y = x, y self.width, self.height = w, h self.make_image() def make_image(self): s = cairo.Surface(self.width, self.height) cairo.set_line_width(s, 3.0) cairo.set_line_join(s, cairo.LINE_JOIN_ROUND) cairo.set_source_rgb(s, 1.0, 0.0, 0.0) cairo.move_to(s, 3.0, 3.0) cairo.rel_line_to(s, self.width - 6.0, 0) cairo.rel_line_to(s, 0, self.height - 6.0) cairo.rel_line_to(s, -self.width + 6.0, 0) cairo.rel_line_to(s, 0, - self.height + 6.0) cairo.stroke(s) img = s.to_image() image_utils.save(img, 'output/but.png') texture = Texture(img) self.material = SimpleTextureMaterial(texture) def render(self, renderer): self.material.activate(renderer) glEnable(GL_BLEND) glCheckError() glBegin(GL_QUADS) glTexCoord2f(0.0, 0.0) glVertex2i(self.x, self.y) glTexCoord2f(0.0, 1.0) glVertex2i(self.x, self.y + self.height) glTexCoord2f(1.0, 1.0) glVertex2i(self.x + self.width, self.y + self.height) glTexCoord2f(1.0, 0.0) glVertex2i(self.x + self.width, self.y) glEnd() glDisable(GL_BLEND)