def test_texture_data_reference(): td = TestTextureData() tex = texture(data=td) tex_address = tex.address tex_data = tex.data assert(tex_address in get_tracked_memory()) del tex assert(tex_address in get_tracked_memory()) del tex_data assert(tex_address not in get_tracked_memory())
def test_bitmap_font_hold_font_reference(): def bitmap_font_load(font, size): return [[glyph(1)], 0] fnt = font(bitmap_font_load=bitmap_font_load) bmp_fnt_0 = fnt.get_bitmap_font(0) fnt_address = fnt.address assert(fnt_address in get_tracked_memory()) fnt = None assert(fnt_address in get_tracked_memory()) bmp_fnt_0 = None assert(fnt_address not in get_tracked_memory())
def test_yup_font_destroyed_resurect(): state = {} def destroyed(font): if "font" not in state: state["font"] = font fnt = YupFont(otf_file, 256, 1, create_yup_texture, destroyed=destroyed) fnt_address = fnt.address assert(fnt_address in get_tracked_memory()) del fnt assert(fnt_address in get_tracked_memory()) assert(state["font"].get_bitmap_font(12)) state["font"] = None assert(fnt_address not in get_tracked_memory())
def test_texture_destroyed_resurect(): state = {} def destroyed(texture): if "texture" not in state: state["texture"] = texture tex = texture(size=None, destroyed=destroyed) tex_address = tex.address assert(tex_address in get_tracked_memory()) del tex assert(tex_address in get_tracked_memory()) assert(state["texture"].data.to_python()) assert(state["texture"].size) state["texture"] = None assert(tex_address not in get_tracked_memory())
def test_font_destroyed_resurect(): state = {} data = object() def bitmap_font_load(font, size): return [[glyph(0)], 0] def destroyed(font): if "font" not in state: state["font"] = font fnt = font(bitmap_font_load, data=data, destroyed=destroyed) fnt_address = fnt.address assert(fnt_address in get_tracked_memory()) del fnt assert(fnt_address in get_tracked_memory()) assert(state["font"].data.to_python()) assert(state["font"].get_bitmap_font(0)) state["font"] = None assert(fnt_address not in get_tracked_memory())