int load_value (FILE *f, value *v, string *lnames) { value nv; int tag; if (!load_int (f, &tag)) return (0); nv = new_value (tag); nv -> dptr = (void *) lnames; switch (tag) { case string_value: if (!load_string (f, &nv -> u.str)) return (0); break; case integer_value: if (!load_int (f, &nv -> u.inum)) return (0); break; case real_value: if (!load_real(f, &nv -> u.rnum)) return (0); break; case tuple_value: if (!load_value_list (f, &nv -> u.tuple, lnames)) return (0); break; case small_lattice_value: if (!load_int (f, &nv -> u.slat)) return (0); break; case large_lattice_value: if (!load_int_list (f, &nv -> u.elat)) return (0); break; default: bad_tag (tag, "load_value"); }; *v = nv; return (1); };
// create default pool objects bool zz_texture::restore_device_objects () { if (!res.is_restore_device_objects()) { // skip managed, systemmem, scratch return true; } if (res.get_updated()) return true; if (!load_real(this)) return false; res.make_updated(); return true; }
// create managed/systemmem/scratch pool objects bool zz_texture::init_device_objects () { if (!res.is_init_device_objects()) { // skip default return true; } if (res.get_updated()) return true; if (!load_real(this)) return false; res.make_updated(); return true; }