void TestMessageFormat::sample() { MessageFormat *form = 0; UnicodeString buffer1, buffer2; UErrorCode success = U_ZERO_ERROR; form = new MessageFormat("There are {0} files on {1}", success); if (U_FAILURE(success)) { errln("Err: Message format creation failed"); logln("Sample message format creation failed."); return; } UnicodeString abc("abc"); UnicodeString def("def"); Formattable testArgs1[] = { abc, def }; FieldPosition fieldpos(0); assertEquals("format", "There are abc files on def", form->format(testArgs1, 2, buffer2, fieldpos, success)); assertSuccess("format", success); delete form; }
void ZeroLengthSection::computeSectionDefs(void) { // Get nodal displacements const Vector &u1 = theNodes[0]->getTrialDisp(); const Vector &u2 = theNodes[1]->getTrialDisp(); // Compute differential displacements const Vector diff = u2 - u1; // Set some references to make the syntax nicer Vector &def = *v; const Matrix &tran = *A; def.Zero(); // Compute element basic deformations ... v = A*(u2-u1) for (int i = 0; i < order; i++) for (int j = 0; j < numDOF/2; j++) def(i) += -diff(j)*tran(i,j); }
void init_openravepy_spacesampler() { { scope spacesampler = class_<PySpaceSamplerBase, boost::shared_ptr<PySpaceSamplerBase>, bases<PyInterfaceBase> >("SpaceSampler", DOXY_CLASS(SpaceSamplerBase), no_init) .def("SetSeed",&PySpaceSamplerBase::SetSeed, args("seed"), DOXY_FN(SpaceSamplerBase,SetSeed)) .def("SetSpaceDOF",&PySpaceSamplerBase::SetSpaceDOF, args("dof"), DOXY_FN(SpaceSamplerBase,SetSpaceDOF)) .def("GetDOF",&PySpaceSamplerBase::GetDOF, DOXY_FN(SpaceSamplerBase,GetDOF)) .def("GetNumberOfValues",&PySpaceSamplerBase::GetNumberOfValues, args("seed"), DOXY_FN(SpaceSamplerBase,GetNumberOfValues)) .def("Supports",&PySpaceSamplerBase::Supports, args("seed"), DOXY_FN(SpaceSamplerBase,Supports)) .def("GetLimits",&PySpaceSamplerBase::GetLimits, args("seed"), DOXY_FN(SpaceSamplerBase,GetLimits)) .def("SampleSequence",&PySpaceSamplerBase::SampleSequence, SampleSequence_overloads(args("type", "num","interval"), DOXY_FN(SpaceSamplerBase,SampleSequence "std::vector; size_t; IntervalType"))) .def("SampleSequence2D",&PySpaceSamplerBase::SampleSequence2D, SampleSequence2D_overloads(args("type", "num","interval"), DOXY_FN(SpaceSamplerBase,SampleSequence "std::vector; size_t; IntervalType"))) .def("SampleSequenceOneReal", &PySpaceSamplerBase::SampleSequenceOneReal, SampleSequenceOneReal_overloads(args("interval"), DOXY_FN(SpaceSamplerBase,SampleSequenceOneReal))) .def("SampleSequenceOneUInt32", &PySpaceSamplerBase::SampleSequenceOneUInt32, DOXY_FN(SpaceSamplerBase,SampleSequenceOneUInt32)) .def("SampleComplete",&PySpaceSamplerBase::SampleComplete, SampleComplete_overloads(args("type", "num","interval"), DOXY_FN(SpaceSamplerBase,SampleComplete "std::vector; size_t; IntervalType"))) .def("SampleComplete2D",&PySpaceSamplerBase::SampleComplete2D, SampleComplete2D_overloads(args("type", "num","interval"), DOXY_FN(SpaceSamplerBase,SampleComplete "std::vector; size_t; IntervalType"))) ; } def("RaveCreateSpaceSampler",openravepy::RaveCreateSpaceSampler,args("env","name"),DOXY_FN1(RaveCreateSpaceSampler)); }
std::shared_ptr<Font> Font::get(ResourceManager& rm, const std::string& path, int size) { if(path.empty()) { LOG(LogError) << "Tried to get font with no path!"; return std::shared_ptr<Font>(); } std::pair<std::string, int> def(path, size); auto foundFont = sFontMap.find(def); if(foundFont != sFontMap.end()) { if(!foundFont->second.expired()) return foundFont->second.lock(); } std::shared_ptr<Font> font = std::shared_ptr<Font>(new Font(rm, path, size)); sFontMap[def] = std::weak_ptr<Font>(font); rm.addReloadable(font); return font; }
//--------------------------------------------------------------------------- int XsltPolicy::create_policy_from_mi(const std::string& report) { Xslt s(no_https); xmlSetGenericErrorFunc(&s, &s.manage_generic_error); xmlDocPtr doc = xmlParseMemory(report.c_str(), report.length()); xmlSetGenericErrorFunc(NULL, NULL); if (!doc) { // maybe put the errors from s.errors error = "The MediaInfo report given cannot be parsed"; return -1; } xmlNodePtr root = xmlDocGetRootElement(doc); if (!root) { error = "No root node, leaving"; xmlFreeDoc(doc); return 0; } for (xmlNodePtr child = root->children; child; child = child->next) { std::string def("media"); if (child->type == XML_TEXT_NODE || !child->name || def.compare((const char*)child->name)) continue; if (find_media_track_node(child) < 0) { xmlFreeDoc(doc); return -1; } break; } xmlFreeDoc(doc); return 0; }
/** * Displays a window. * - Arg 1: WML table describing the window. * - Arg 2: function called at pre-show. * - Arg 3: function called at post-show. * - Ret 1: integer. */ int show_dialog(lua_State *L, CVideo & video) { config def_cfg = luaW_checkconfig(L, 1); gui2::twindow_builder::tresolution def(def_cfg); scoped_dialog w(L, gui2::build(video, &def)); if (!lua_isnoneornil(L, 2)) { lua_pushvalue(L, 2); lua_call(L, 0, 0); } int v = scoped_dialog::current->window->show(true, 0); if (!lua_isnoneornil(L, 3)) { lua_pushvalue(L, 3); lua_call(L, 0, 0); } lua_pushinteger(L, v); return 1; }
void dee(int x) { node *p,*q; if (head->data==x) def(); else { q=head; p=q->next; while ((p->data!=x) && (p!=tail)) { q=p; p=p->next; } if (p!=tail) { q->next=p->next; free(p); } else if (tail->data==x){q->next=NULL; free(tail);} } }
int main() { int x; char s[20]; FILE *g; g=fopen("input.dat","r"); while (fscanf(g,"%s",&s)==1) { if (strcmp("AF",s)==0) { fscanf(g,"%d",&x); adf(x); } else if (strcmp("AL",s)==0) { fscanf(g,"%d",&x); adl(x); } else if (strcmp("DF",s)==0) def(); else if (strcmp("DL",s)==0) del(); else if (strcmp("DE",s)==0) {fscanf(g,"%d",&x); dee(x);} else if (strcmp("PRINT_ALL",s)==0) print_alll(); else if (strcmp("PRINT_F",s)==0) { fscanf(g,"%d",&x); print_fi(x); } else if (strcmp("PRINT_L",s)==0) { fscanf(g,"%d",&x); print_la(x); } else if (strcmp("DOOM_THE_LIST",s)==0) doom_the_listt(); } return 0; }
//--------------------------------------------------------------------- bool PFile::isPolygonDefinitionListValid( void ) { Ogre::Log::Stream log( Ogre::LogManager::getSingleton().stream() ); size_t vertex_count( m_vertices.size() ) ,normal_count( m_normals.size() ) ,edge_count ( m_edges.size() ); for( size_t p( m_polygon_definitions.size() ); p--; ) { PolygonDefinition& def( m_polygon_definitions[p] ); for( int i(3); i--; ) { if( def.vertex[i] >= vertex_count ) { log << "Error: index to vertex is out of Bounds " << " m_polygon_definitions[" << p << "]" << ".vertex[" << i << "]: " << def.vertex[i]; return false; } if( def.normal[i] >= normal_count ) { log << "Error: index to normal is out of Bounds " << " m_polygon_definitions[" << p << "]" << ".normal[" << i << "]: " << def.normal[i]; return false; } if( def.edge[i] >= edge_count ) { log << "Error: index to edge is out of Bounds " << " m_polygon_definitions[" << p << "]" << ".edge[" << i << "]: " << def.edge[i]; return false; } } } return true; }
void AddOneTwoInt() { class_<ERIMethod>("ERI_method", init<>()) .def("use_symmetry",&ERIMethod::set_symmetry, return_self<>()) .def("coef_R_memo", &ERIMethod::set_coef_R_memo, return_self<>()); def("calc_mat_complex", CalcMat_Complex); def("calc_mat_hermite", CalcMat_Hermite); def("calc_mat", CalcMat); def("calc_ERI_complex", CalcERI_Complex); def("calc_ERI_hermite", CalcERI_Hermite); def("calc_ERI", CalcERI); }
void init_openravepy_physicsengine() { class_<PyPhysicsEngineBase, boost::shared_ptr<PyPhysicsEngineBase>, bases<PyInterfaceBase> >("PhysicsEngine", DOXY_CLASS(PhysicsEngineBase), no_init) .def("GetPhysicsOptions",&PyPhysicsEngineBase::GetPhysicsOptions, DOXY_FN(PhysicsEngineBase,GetPhysicsOptions)) .def("SetPhysicsOptions",&PyPhysicsEngineBase::SetPhysicsOptions, DOXY_FN(PhysicsEngineBase,SetPhysicsOptions "int")) .def("InitEnvironment",&PyPhysicsEngineBase::InitEnvironment, DOXY_FN(PhysicsEngineBase,InitEnvironment)) .def("DestroyEnvironment",&PyPhysicsEngineBase::DestroyEnvironment, DOXY_FN(PhysicsEngineBase,DestroyEnvironment)) .def("InitKinBody",&PyPhysicsEngineBase::InitKinBody, DOXY_FN(PhysicsEngineBase,InitKinBody)) .def("SetLinkVelocity",&PyPhysicsEngineBase::SetLinkVelocity, args("link","velocity"), DOXY_FN(PhysicsEngineBase,SetLinkVelocity)) .def("SetLinkVelocities",&PyPhysicsEngineBase::SetLinkVelocity, args("body","velocities"), DOXY_FN(PhysicsEngineBase,SetLinkVelocities)) .def("GetLinkVelocity",&PyPhysicsEngineBase::GetLinkVelocity, DOXY_FN(PhysicsEngineBase,GetLinkVelocity)) .def("GetLinkVelocities",&PyPhysicsEngineBase::GetLinkVelocity, DOXY_FN(PhysicsEngineBase,GetLinkVelocities)) .def("SetBodyForce",&PyPhysicsEngineBase::SetBodyForce, DOXY_FN(PhysicsEngineBase,SetBodyForce)) .def("SetBodyTorque",&PyPhysicsEngineBase::SetBodyTorque, DOXY_FN(PhysicsEngineBase,SetBodyTorque)) .def("AddJointTorque",&PyPhysicsEngineBase::AddJointTorque, DOXY_FN(PhysicsEngineBase,AddJointTorque)) .def("GetLinkForceTorque",&PyPhysicsEngineBase::GetLinkForceTorque, DOXY_FN(PhysicsEngineBase,GetLinkForceTorque)) .def("SetGravity",&PyPhysicsEngineBase::SetGravity, DOXY_FN(PhysicsEngineBase,SetGravity)) .def("GetGravity",&PyPhysicsEngineBase::GetGravity, DOXY_FN(PhysicsEngineBase,GetGravity)) .def("SimulateStep",&PyPhysicsEngineBase::SimulateStep, DOXY_FN(PhysicsEngineBase,SimulateStep)) ; def("RaveCreatePhysicsEngine",openravepy::RaveCreatePhysicsEngine,args("env","name"),DOXY_FN1(RaveCreatePhysicsEngine)); }
int main(void) { IndexBufferSet *ibs = new IndexBufferSet(); TermBufferSet tbset; TermBuffer t1("a"); TermBuffer t2("b"); TermBuffer t3("c"); tbset.insert(t1); tbset.insert(t2); tbset.insert(t3); std::string def("default"); ibs->merge(def, tbset); TBIterator itr = tbset.find(t2); if (itr == tbset.end()) { std::cerr << "error" << std::endl; } return 0; }
bool AlarmTableDefs::populate_map(std::string path, std::map<unsigned int, unsigned int>& dup_check) { std::string error; std::vector<AlarmDef::AlarmDefinition> alarm_definitions; bool rc = JSONAlarms::validate_alarms_from_json(path, error, alarm_definitions); if (!rc) { TRC_ERROR("%s", error.c_str()); return rc; } std::vector<AlarmDef::AlarmDefinition>::const_iterator a_it; for (a_it = alarm_definitions.begin(); a_it != alarm_definitions.end(); a_it++) { if (dup_check.count(a_it->_index)) { TRC_ERROR("alarm %d.*: is multiply defined", a_it->_index); rc = false; break; } else { dup_check[a_it->_index] = 1; } std::vector<AlarmDef::SeverityDetails>::const_iterator s_it; for (s_it = a_it->_severity_details.begin(); s_it != a_it->_severity_details.end(); s_it++) { AlarmTableDef def(*a_it, *s_it); AlarmTableDefs::insert_def(def); } } return rc; }
int main(int argc, const char *argv[]) { FILE *source, *dest; const char *source_filename; char *dest_filename; if (argc != 2) { fprintf(stderr, "usage: ./zpipe filename\n"); exit(EXIT_FAILURE); } source_filename = argv[1]; dest_filename = malloc(strlen(source_filename) + 5 + 1); strcat(dest_filename, source_filename); strcat(dest_filename, ".zlib"); source = fopen(SOURCE, "rb"); if (source == NULL) { fprintf(stderr, "Can't open file %s", source_filename); exit(EXIT_FAILURE); } dest = fopen(dest_filename, "wb"); if (dest == NULL) { fprintf(stderr, "Can't open file %s", dest_filename); fclose(source); exit(EXIT_FAILURE); } def(source , dest, Z_DEFAULT_COMPRESSION); fclose(source); fclose(dest); return 0; }
Status ViewCatalog::_reloadIfNeeded_inlock(OperationContext* txn) { if (_valid.load()) return Status::OK(); LOG(1) << "reloading view catalog for database " << _durable->getName(); // Need to reload, first clear our cache. _viewMap.clear(); Status status = _durable->iterate(txn, [&](const BSONObj& view) { NamespaceString viewName(view["_id"].str()); ViewDefinition def( viewName.db(), viewName.coll(), view["viewOn"].str(), view["pipeline"].Obj()); _viewMap[viewName.ns()] = std::make_shared<ViewDefinition>(def); }); _valid.store(status.isOK()); if (!status.isOK()) { LOG(0) << "could not load view catalog for database " << _durable->getName() << ": " << status; } return status; }
v8Function TS_fileRead(V8ARGS) { if(args.Length()<2){ THROWERROR("[scriptfs] TS_fileRead Error: Called with fewer than 2 arguments!\n"); } CHECK_ARG_STR(0); CHECK_ARG_STR(1); v8::String::AsciiValue key(args[0]); v8::String::AsciiValue def(args[1]); v8::Local<v8::Object> self = args.Holder(); v8::Local<v8::External> wrap = v8::Local<v8::External>::Cast(self->GetInternalField(0)); void* ptr = wrap->Value(); const char * keyval = static_cast<T5_file*>(ptr)->getValue(*key); if(keyval==NULL){ static_cast<T5_file*>(ptr)->writeValue(*key, *def); return v8::String::New(*def); } if(args[1]->IsNumber()){ return v8::Number::New(atof(keyval)); } else{ return v8::String::New(keyval); } }
void TemplateTable::def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(Operation op), Operation op) { def(code, flags, in, out, (Template::generator)gen, (int)op); }
void TemplateTable::def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(), char filler) { assert(filler == ' ', "just checkin'"); def(code, flags, in, out, (Template::generator)gen, 0); }
void WriteSave(const char *fn, SAVESTATE_t* save, int compress) { int i; FILE* ofile; FILE* cfile; char temp_save[PATH_MAX]; if (!save) { return; } if (compress == 0) { ofile = fopen(fn, "wb"); } else { GetAppDataString(temp_save, PATH_MAX - 1 - strlen(tmpSuffix)); strcat(temp_save, tmpSuffix); mkstemp(temp_save); ofile = fopen(temp_save,"wb"); } if (!ofile) { return; } fputs(DETECT_STR, ofile); fputi(SAVE_HEADERSIZE, ofile); fputi(save->version_major, ofile); fputi(save->version_minor, ofile); fputi(save->version_build, ofile); fputi(save->model, ofile); fputi(save->chunk_count, ofile); fwrite(save->author, 1,32, ofile); fwrite(save->comment, 1, 64, ofile); for(i = 0; i < save->chunk_count; i++) { fputc(save->chunks[i]->tag[0], ofile); fputc(save->chunks[i]->tag[1], ofile); fputc(save->chunks[i]->tag[2], ofile); fputc(save->chunks[i]->tag[3], ofile); fputi(save->chunks[i]->size,ofile); fwrite(save->chunks[i]->data, 1, save->chunks[i]->size, ofile); } fclose(ofile); if (compress) { cfile = fopen(fn, "wb"); if (!cfile) { return; } ofile = fopen(temp_save,"rb"); if (!ofile) { return; } //int error; fputs(DETECT_CMP_STR, cfile); switch(compress) { #ifdef ZLIB_WINAPI case ZLIB_CMP: { fputc(ZLIB_CMP, cfile); int error = def(ofile, cfile, 9); break; } #endif default: break; } fclose(ofile); fclose(cfile); remove(temp_save); } }
Def* IdentityAnalyzer::coerceIdentity(UnaryStmt* instr, const Type* to_type) { Def* value_in = def(instr->value_in()); if (subtypeof(type(value_in), to_type)) return identity(instr, value_in); return def_; }
/// Analyze lexical lookup instructions HR_findprop and HR_findpropstrict. /// Def* IdentityAnalyzer::doFindStmt(NaryStmt3* instr) { int index; if (findScope(lattice_, instr, &index) == kScopeLocal) return identity(instr, def(instr->vararg(index))); return def_; }
void bindMessageHandler() { def( "msg", (void (*)( MessageHandler::Level, const std::string &, const std::string &))&msg ); object mh = RefCountedClass<MessageHandler, RefCounted, MessageHandlerWrapPtr>( "MessageHandler" ) .def( init<>() ) .def( "handle", pure_virtual( &MessageHandler::handle ) ) .def( "setDefaultHandler", &MessageHandler::setDefaultHandler ) .staticmethod( "setDefaultHandler" ) .def( "getDefaultHandler", &getDefaultHandler ) .staticmethod( "getDefaultHandler" ) .def( "currentHandler", ¤tHandler ) .staticmethod( "currentHandler" ) .def( "output", (void (*)( MessageHandler::Level, const std::string &, const std::string &))&MessageHandler::output ) .staticmethod( "output" ) .def( "levelAsString", MessageHandler::levelAsString ) .staticmethod( "levelAsString" ) .def( "stringAsLevel", MessageHandler::stringAsLevel ) .staticmethod( "stringAsLevel" ) ; RefCountedClass<NullMessageHandler, MessageHandler>( "NullMessageHandler" ) . def( init<>() ) ; RefCountedClass<OStreamMessageHandler, MessageHandler>( "OStreamMessageHandler" ) .def( "cErrHandler", &OStreamMessageHandler::cErrHandler ) .staticmethod( "cErrHandler" ) .def( "cOutHandler", &OStreamMessageHandler::cOutHandler ) .staticmethod( "cOutHandler" ) ; RefCountedClass<CompoundMessageHandler, MessageHandler>( "CompoundMessageHandler" ) .def( init<>() ) .def( "addHandler", &addHandler ) .def( "removeHandler", &removeHandler ) ; RefCountedClass<FilteredMessageHandler, MessageHandler>( "FilteredMessageHandler" ) ; RefCountedClass<LevelFilteredMessageHandler, FilteredMessageHandler>( "LevelFilteredMessageHandler" ) .def( "__init__", make_constructor( &levelFilteredMessageHandlerConstructor ) ) .def( "setLevel", &LevelFilteredMessageHandler::setLevel ) .def( "getLevel", &LevelFilteredMessageHandler::getLevel ) .def( "defaultLevel", &LevelFilteredMessageHandler::defaultLevel ).staticmethod( "defaultLevel" ) ; scope mhS( mh ); enum_<MessageHandler::Level>( "Level" ) .value( "Error", MessageHandler::Error ) .value( "Warning", MessageHandler::Warning ) .value( "Info", MessageHandler::Info ) .value( "Debug", MessageHandler::Debug ) .value( "Invalid", MessageHandler::Invalid ) ; class_<MessageHandler::Scope, boost::noncopyable>( "_Scope", init<MessageHandler *>() ) ; }
void TemplateTable::def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(Condition cc), Condition cc) { def(code, flags, in, out, (Template::generator)gen, (int)cc); }
void TemplateTable::def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(bool arg ), bool arg) { def(code, flags, in, out, (Template::generator)gen, (int)arg); }
void TemplateTable::def(Bytecodes::Code code, int flags, TosState in, TosState out, void (*gen)(TosState tos), TosState tos) { def(code, flags, in, out, (Template::generator)gen, (int)tos); }
/// Return the identity def for the given instruction, which will either /// be effect_in, or the given value_in. /// Def* IdentityAnalyzer::identity(BinaryStmt* instr, Def* value_in) { return def_ == instr->effect_out() ? def(instr->effect_in()) : value_in; }
void TemplateTable::initialize() { if (_is_initialized) return; // Initialize table TraceTime timer("TemplateTable initialization", TraceStartupTime); _bs = Universe::heap()->barrier_set(); // For better readability const char _ = ' '; const int ____ = 0; const int ubcp = 1 << Template::uses_bcp_bit; const int disp = 1 << Template::does_dispatch_bit; const int clvm = 1 << Template::calls_vm_bit; const int iswd = 1 << Template::wide_bit; // interpr. templates // Java spec bytecodes ubcp|disp|clvm|iswd in out generator argument def(Bytecodes::_nop , ____|____|____|____, vtos, vtos, nop , _ ); def(Bytecodes::_aconst_null , ____|____|____|____, vtos, atos, aconst_null , _ ); def(Bytecodes::_iconst_m1 , ____|____|____|____, vtos, itos, iconst , -1 ); def(Bytecodes::_iconst_0 , ____|____|____|____, vtos, itos, iconst , 0 ); def(Bytecodes::_iconst_1 , ____|____|____|____, vtos, itos, iconst , 1 ); def(Bytecodes::_iconst_2 , ____|____|____|____, vtos, itos, iconst , 2 ); def(Bytecodes::_iconst_3 , ____|____|____|____, vtos, itos, iconst , 3 ); def(Bytecodes::_iconst_4 , ____|____|____|____, vtos, itos, iconst , 4 ); def(Bytecodes::_iconst_5 , ____|____|____|____, vtos, itos, iconst , 5 ); def(Bytecodes::_lconst_0 , ____|____|____|____, vtos, ltos, lconst , 0 ); def(Bytecodes::_lconst_1 , ____|____|____|____, vtos, ltos, lconst , 1 ); def(Bytecodes::_fconst_0 , ____|____|____|____, vtos, ftos, fconst , 0 ); def(Bytecodes::_fconst_1 , ____|____|____|____, vtos, ftos, fconst , 1 ); def(Bytecodes::_fconst_2 , ____|____|____|____, vtos, ftos, fconst , 2 ); def(Bytecodes::_dconst_0 , ____|____|____|____, vtos, dtos, dconst , 0 ); def(Bytecodes::_dconst_1 , ____|____|____|____, vtos, dtos, dconst , 1 ); def(Bytecodes::_bipush , ubcp|____|____|____, vtos, itos, bipush , _ ); def(Bytecodes::_sipush , ubcp|____|____|____, vtos, itos, sipush , _ ); def(Bytecodes::_ldc , ubcp|____|clvm|____, vtos, vtos, ldc , false ); def(Bytecodes::_ldc_w , ubcp|____|clvm|____, vtos, vtos, ldc , true ); def(Bytecodes::_ldc2_w , ubcp|____|____|____, vtos, vtos, ldc2_w , _ ); def(Bytecodes::_iload , ubcp|____|clvm|____, vtos, itos, iload , _ ); def(Bytecodes::_lload , ubcp|____|____|____, vtos, ltos, lload , _ ); def(Bytecodes::_fload , ubcp|____|____|____, vtos, ftos, fload , _ ); def(Bytecodes::_dload , ubcp|____|____|____, vtos, dtos, dload , _ ); def(Bytecodes::_aload , ubcp|____|clvm|____, vtos, atos, aload , _ ); def(Bytecodes::_iload_0 , ____|____|____|____, vtos, itos, iload , 0 ); def(Bytecodes::_iload_1 , ____|____|____|____, vtos, itos, iload , 1 ); def(Bytecodes::_iload_2 , ____|____|____|____, vtos, itos, iload , 2 ); def(Bytecodes::_iload_3 , ____|____|____|____, vtos, itos, iload , 3 ); def(Bytecodes::_lload_0 , ____|____|____|____, vtos, ltos, lload , 0 ); def(Bytecodes::_lload_1 , ____|____|____|____, vtos, ltos, lload , 1 ); def(Bytecodes::_lload_2 , ____|____|____|____, vtos, ltos, lload , 2 ); def(Bytecodes::_lload_3 , ____|____|____|____, vtos, ltos, lload , 3 ); def(Bytecodes::_fload_0 , ____|____|____|____, vtos, ftos, fload , 0 ); def(Bytecodes::_fload_1 , ____|____|____|____, vtos, ftos, fload , 1 ); def(Bytecodes::_fload_2 , ____|____|____|____, vtos, ftos, fload , 2 ); def(Bytecodes::_fload_3 , ____|____|____|____, vtos, ftos, fload , 3 ); def(Bytecodes::_dload_0 , ____|____|____|____, vtos, dtos, dload , 0 ); def(Bytecodes::_dload_1 , ____|____|____|____, vtos, dtos, dload , 1 ); def(Bytecodes::_dload_2 , ____|____|____|____, vtos, dtos, dload , 2 ); def(Bytecodes::_dload_3 , ____|____|____|____, vtos, dtos, dload , 3 ); def(Bytecodes::_aload_0 , ubcp|____|clvm|____, vtos, atos, aload_0 , _ ); def(Bytecodes::_aload_1 , ____|____|____|____, vtos, atos, aload , 1 ); def(Bytecodes::_aload_2 , ____|____|____|____, vtos, atos, aload , 2 ); def(Bytecodes::_aload_3 , ____|____|____|____, vtos, atos, aload , 3 ); def(Bytecodes::_iaload , ____|____|____|____, itos, itos, iaload , _ ); def(Bytecodes::_laload , ____|____|____|____, itos, ltos, laload , _ ); def(Bytecodes::_faload , ____|____|____|____, itos, ftos, faload , _ ); def(Bytecodes::_daload , ____|____|____|____, itos, dtos, daload , _ ); def(Bytecodes::_aaload , ____|____|____|____, itos, atos, aaload , _ ); def(Bytecodes::_baload , ____|____|____|____, itos, itos, baload , _ ); def(Bytecodes::_caload , ____|____|____|____, itos, itos, caload , _ ); def(Bytecodes::_saload , ____|____|____|____, itos, itos, saload , _ ); def(Bytecodes::_istore , ubcp|____|clvm|____, itos, vtos, istore , _ ); def(Bytecodes::_lstore , ubcp|____|____|____, ltos, vtos, lstore , _ ); def(Bytecodes::_fstore , ubcp|____|____|____, ftos, vtos, fstore , _ ); def(Bytecodes::_dstore , ubcp|____|____|____, dtos, vtos, dstore , _ ); def(Bytecodes::_astore , ubcp|____|clvm|____, vtos, vtos, astore , _ ); def(Bytecodes::_istore_0 , ____|____|____|____, itos, vtos, istore , 0 ); def(Bytecodes::_istore_1 , ____|____|____|____, itos, vtos, istore , 1 ); def(Bytecodes::_istore_2 , ____|____|____|____, itos, vtos, istore , 2 ); def(Bytecodes::_istore_3 , ____|____|____|____, itos, vtos, istore , 3 ); def(Bytecodes::_lstore_0 , ____|____|____|____, ltos, vtos, lstore , 0 ); def(Bytecodes::_lstore_1 , ____|____|____|____, ltos, vtos, lstore , 1 ); def(Bytecodes::_lstore_2 , ____|____|____|____, ltos, vtos, lstore , 2 ); def(Bytecodes::_lstore_3 , ____|____|____|____, ltos, vtos, lstore , 3 ); def(Bytecodes::_fstore_0 , ____|____|____|____, ftos, vtos, fstore , 0 ); def(Bytecodes::_fstore_1 , ____|____|____|____, ftos, vtos, fstore , 1 ); def(Bytecodes::_fstore_2 , ____|____|____|____, ftos, vtos, fstore , 2 ); def(Bytecodes::_fstore_3 , ____|____|____|____, ftos, vtos, fstore , 3 ); def(Bytecodes::_dstore_0 , ____|____|____|____, dtos, vtos, dstore , 0 ); def(Bytecodes::_dstore_1 , ____|____|____|____, dtos, vtos, dstore , 1 ); def(Bytecodes::_dstore_2 , ____|____|____|____, dtos, vtos, dstore , 2 ); def(Bytecodes::_dstore_3 , ____|____|____|____, dtos, vtos, dstore , 3 ); def(Bytecodes::_astore_0 , ____|____|____|____, vtos, vtos, astore , 0 ); def(Bytecodes::_astore_1 , ____|____|____|____, vtos, vtos, astore , 1 ); def(Bytecodes::_astore_2 , ____|____|____|____, vtos, vtos, astore , 2 ); def(Bytecodes::_astore_3 , ____|____|____|____, vtos, vtos, astore , 3 ); def(Bytecodes::_iastore , ____|____|____|____, itos, vtos, iastore , _ ); def(Bytecodes::_lastore , ____|____|____|____, ltos, vtos, lastore , _ ); def(Bytecodes::_fastore , ____|____|____|____, ftos, vtos, fastore , _ ); def(Bytecodes::_dastore , ____|____|____|____, dtos, vtos, dastore , _ ); def(Bytecodes::_aastore , ____|____|clvm|____, vtos, vtos, aastore , _ ); def(Bytecodes::_bastore , ____|____|____|____, itos, vtos, bastore , _ ); def(Bytecodes::_castore , ____|____|____|____, itos, vtos, castore , _ ); def(Bytecodes::_sastore , ____|____|____|____, itos, vtos, sastore , _ ); def(Bytecodes::_pop , ____|____|____|____, vtos, vtos, pop , _ ); def(Bytecodes::_pop2 , ____|____|____|____, vtos, vtos, pop2 , _ ); def(Bytecodes::_dup , ____|____|____|____, vtos, vtos, dup , _ ); def(Bytecodes::_dup_x1 , ____|____|____|____, vtos, vtos, dup_x1 , _ ); def(Bytecodes::_dup_x2 , ____|____|____|____, vtos, vtos, dup_x2 , _ ); def(Bytecodes::_dup2 , ____|____|____|____, vtos, vtos, dup2 , _ ); def(Bytecodes::_dup2_x1 , ____|____|____|____, vtos, vtos, dup2_x1 , _ ); def(Bytecodes::_dup2_x2 , ____|____|____|____, vtos, vtos, dup2_x2 , _ ); def(Bytecodes::_swap , ____|____|____|____, vtos, vtos, swap , _ ); def(Bytecodes::_iadd , ____|____|____|____, itos, itos, iop2 , add ); def(Bytecodes::_ladd , ____|____|____|____, ltos, ltos, lop2 , add ); def(Bytecodes::_fadd , ____|____|____|____, ftos, ftos, fop2 , add ); def(Bytecodes::_dadd , ____|____|____|____, dtos, dtos, dop2 , add ); def(Bytecodes::_isub , ____|____|____|____, itos, itos, iop2 , sub ); def(Bytecodes::_lsub , ____|____|____|____, ltos, ltos, lop2 , sub ); def(Bytecodes::_fsub , ____|____|____|____, ftos, ftos, fop2 , sub ); def(Bytecodes::_dsub , ____|____|____|____, dtos, dtos, dop2 , sub ); def(Bytecodes::_imul , ____|____|____|____, itos, itos, iop2 , mul ); def(Bytecodes::_lmul , ____|____|____|____, ltos, ltos, lmul , _ ); def(Bytecodes::_fmul , ____|____|____|____, ftos, ftos, fop2 , mul ); def(Bytecodes::_dmul , ____|____|____|____, dtos, dtos, dop2 , mul ); def(Bytecodes::_idiv , ____|____|____|____, itos, itos, idiv , _ ); def(Bytecodes::_ldiv , ____|____|____|____, ltos, ltos, ldiv , _ ); def(Bytecodes::_fdiv , ____|____|____|____, ftos, ftos, fop2 , div ); def(Bytecodes::_ddiv , ____|____|____|____, dtos, dtos, dop2 , div ); def(Bytecodes::_irem , ____|____|____|____, itos, itos, irem , _ ); def(Bytecodes::_lrem , ____|____|____|____, ltos, ltos, lrem , _ ); def(Bytecodes::_frem , ____|____|____|____, ftos, ftos, fop2 , rem ); def(Bytecodes::_drem , ____|____|____|____, dtos, dtos, dop2 , rem ); def(Bytecodes::_ineg , ____|____|____|____, itos, itos, ineg , _ ); def(Bytecodes::_lneg , ____|____|____|____, ltos, ltos, lneg , _ ); def(Bytecodes::_fneg , ____|____|____|____, ftos, ftos, fneg , _ ); def(Bytecodes::_dneg , ____|____|____|____, dtos, dtos, dneg , _ ); def(Bytecodes::_ishl , ____|____|____|____, itos, itos, iop2 , shl ); def(Bytecodes::_lshl , ____|____|____|____, itos, ltos, lshl , _ ); def(Bytecodes::_ishr , ____|____|____|____, itos, itos, iop2 , shr ); def(Bytecodes::_lshr , ____|____|____|____, itos, ltos, lshr , _ ); def(Bytecodes::_iushr , ____|____|____|____, itos, itos, iop2 , ushr ); def(Bytecodes::_lushr , ____|____|____|____, itos, ltos, lushr , _ ); def(Bytecodes::_iand , ____|____|____|____, itos, itos, iop2 , _and ); def(Bytecodes::_land , ____|____|____|____, ltos, ltos, lop2 , _and ); def(Bytecodes::_ior , ____|____|____|____, itos, itos, iop2 , _or ); def(Bytecodes::_lor , ____|____|____|____, ltos, ltos, lop2 , _or ); def(Bytecodes::_ixor , ____|____|____|____, itos, itos, iop2 , _xor ); def(Bytecodes::_lxor , ____|____|____|____, ltos, ltos, lop2 , _xor ); def(Bytecodes::_iinc , ubcp|____|clvm|____, vtos, vtos, iinc , _ ); def(Bytecodes::_i2l , ____|____|____|____, itos, ltos, convert , _ ); def(Bytecodes::_i2f , ____|____|____|____, itos, ftos, convert , _ ); def(Bytecodes::_i2d , ____|____|____|____, itos, dtos, convert , _ ); def(Bytecodes::_l2i , ____|____|____|____, ltos, itos, convert , _ ); def(Bytecodes::_l2f , ____|____|____|____, ltos, ftos, convert , _ ); def(Bytecodes::_l2d , ____|____|____|____, ltos, dtos, convert , _ ); def(Bytecodes::_f2i , ____|____|____|____, ftos, itos, convert , _ ); def(Bytecodes::_f2l , ____|____|____|____, ftos, ltos, convert , _ ); def(Bytecodes::_f2d , ____|____|____|____, ftos, dtos, convert , _ ); def(Bytecodes::_d2i , ____|____|____|____, dtos, itos, convert , _ ); def(Bytecodes::_d2l , ____|____|____|____, dtos, ltos, convert , _ ); def(Bytecodes::_d2f , ____|____|____|____, dtos, ftos, convert , _ ); def(Bytecodes::_i2b , ____|____|____|____, itos, itos, convert , _ ); def(Bytecodes::_i2c , ____|____|____|____, itos, itos, convert , _ ); def(Bytecodes::_i2s , ____|____|____|____, itos, itos, convert , _ ); def(Bytecodes::_lcmp , ____|____|____|____, ltos, itos, lcmp , _ ); def(Bytecodes::_fcmpl , ____|____|____|____, ftos, itos, float_cmp , -1 ); def(Bytecodes::_fcmpg , ____|____|____|____, ftos, itos, float_cmp , 1 ); def(Bytecodes::_dcmpl , ____|____|____|____, dtos, itos, double_cmp , -1 ); def(Bytecodes::_dcmpg , ____|____|____|____, dtos, itos, double_cmp , 1 ); def(Bytecodes::_ifeq , ubcp|____|clvm|____, itos, vtos, if_0cmp , equal ); def(Bytecodes::_ifne , ubcp|____|clvm|____, itos, vtos, if_0cmp , not_equal ); def(Bytecodes::_iflt , ubcp|____|clvm|____, itos, vtos, if_0cmp , less ); def(Bytecodes::_ifge , ubcp|____|clvm|____, itos, vtos, if_0cmp , greater_equal); def(Bytecodes::_ifgt , ubcp|____|clvm|____, itos, vtos, if_0cmp , greater ); def(Bytecodes::_ifle , ubcp|____|clvm|____, itos, vtos, if_0cmp , less_equal ); def(Bytecodes::_if_icmpeq , ubcp|____|clvm|____, itos, vtos, if_icmp , equal ); def(Bytecodes::_if_icmpne , ubcp|____|clvm|____, itos, vtos, if_icmp , not_equal ); def(Bytecodes::_if_icmplt , ubcp|____|clvm|____, itos, vtos, if_icmp , less ); def(Bytecodes::_if_icmpge , ubcp|____|clvm|____, itos, vtos, if_icmp , greater_equal); def(Bytecodes::_if_icmpgt , ubcp|____|clvm|____, itos, vtos, if_icmp , greater ); def(Bytecodes::_if_icmple , ubcp|____|clvm|____, itos, vtos, if_icmp , less_equal ); def(Bytecodes::_if_acmpeq , ubcp|____|clvm|____, atos, vtos, if_acmp , equal ); def(Bytecodes::_if_acmpne , ubcp|____|clvm|____, atos, vtos, if_acmp , not_equal ); def(Bytecodes::_goto , ubcp|disp|clvm|____, vtos, vtos, _goto , _ ); def(Bytecodes::_jsr , ubcp|disp|____|____, vtos, vtos, jsr , _ ); // result is not an oop, so do not transition to atos def(Bytecodes::_ret , ubcp|disp|____|____, vtos, vtos, ret , _ ); def(Bytecodes::_tableswitch , ubcp|disp|____|____, itos, vtos, tableswitch , _ ); def(Bytecodes::_lookupswitch , ubcp|disp|____|____, itos, itos, lookupswitch , _ ); def(Bytecodes::_ireturn , ____|disp|clvm|____, itos, itos, _return , itos ); def(Bytecodes::_lreturn , ____|disp|clvm|____, ltos, ltos, _return , ltos ); def(Bytecodes::_freturn , ____|disp|clvm|____, ftos, ftos, _return , ftos ); def(Bytecodes::_dreturn , ____|disp|clvm|____, dtos, dtos, _return , dtos ); def(Bytecodes::_areturn , ____|disp|clvm|____, atos, atos, _return , atos ); def(Bytecodes::_return , ____|disp|clvm|____, vtos, vtos, _return , vtos ); def(Bytecodes::_getstatic , ubcp|____|clvm|____, vtos, vtos, getstatic , f1_byte ); def(Bytecodes::_putstatic , ubcp|____|clvm|____, vtos, vtos, putstatic , f2_byte ); def(Bytecodes::_getfield , ubcp|____|clvm|____, vtos, vtos, getfield , f1_byte ); def(Bytecodes::_putfield , ubcp|____|clvm|____, vtos, vtos, putfield , f2_byte ); def(Bytecodes::_invokevirtual , ubcp|disp|clvm|____, vtos, vtos, invokevirtual , f2_byte ); def(Bytecodes::_invokespecial , ubcp|disp|clvm|____, vtos, vtos, invokespecial , f1_byte ); def(Bytecodes::_invokestatic , ubcp|disp|clvm|____, vtos, vtos, invokestatic , f1_byte ); def(Bytecodes::_invokeinterface , ubcp|disp|clvm|____, vtos, vtos, invokeinterface , f1_byte ); def(Bytecodes::_invokedynamic , ubcp|disp|clvm|____, vtos, vtos, invokedynamic , f1_oop ); def(Bytecodes::_new , ubcp|____|clvm|____, vtos, atos, _new , _ ); def(Bytecodes::_newarray , ubcp|____|clvm|____, itos, atos, newarray , _ ); def(Bytecodes::_anewarray , ubcp|____|clvm|____, itos, atos, anewarray , _ ); def(Bytecodes::_arraylength , ____|____|____|____, atos, itos, arraylength , _ ); def(Bytecodes::_athrow , ____|disp|____|____, atos, vtos, athrow , _ ); def(Bytecodes::_checkcast , ubcp|____|clvm|____, atos, atos, checkcast , _ ); def(Bytecodes::_instanceof , ubcp|____|clvm|____, atos, itos, instanceof , _ ); def(Bytecodes::_monitorenter , ____|disp|clvm|____, atos, vtos, monitorenter , _ ); def(Bytecodes::_monitorexit , ____|____|clvm|____, atos, vtos, monitorexit , _ ); def(Bytecodes::_wide , ubcp|disp|____|____, vtos, vtos, wide , _ ); def(Bytecodes::_multianewarray , ubcp|____|clvm|____, vtos, atos, multianewarray , _ ); def(Bytecodes::_ifnull , ubcp|____|clvm|____, atos, vtos, if_nullcmp , equal ); def(Bytecodes::_ifnonnull , ubcp|____|clvm|____, atos, vtos, if_nullcmp , not_equal ); def(Bytecodes::_goto_w , ubcp|____|clvm|____, vtos, vtos, goto_w , _ ); def(Bytecodes::_jsr_w , ubcp|____|____|____, vtos, vtos, jsr_w , _ ); // wide Java spec bytecodes def(Bytecodes::_iload , ubcp|____|____|iswd, vtos, itos, wide_iload , _ ); def(Bytecodes::_lload , ubcp|____|____|iswd, vtos, ltos, wide_lload , _ ); def(Bytecodes::_fload , ubcp|____|____|iswd, vtos, ftos, wide_fload , _ ); def(Bytecodes::_dload , ubcp|____|____|iswd, vtos, dtos, wide_dload , _ ); def(Bytecodes::_aload , ubcp|____|____|iswd, vtos, atos, wide_aload , _ ); def(Bytecodes::_istore , ubcp|____|____|iswd, vtos, vtos, wide_istore , _ ); def(Bytecodes::_lstore , ubcp|____|____|iswd, vtos, vtos, wide_lstore , _ ); def(Bytecodes::_fstore , ubcp|____|____|iswd, vtos, vtos, wide_fstore , _ ); def(Bytecodes::_dstore , ubcp|____|____|iswd, vtos, vtos, wide_dstore , _ ); def(Bytecodes::_astore , ubcp|____|____|iswd, vtos, vtos, wide_astore , _ ); def(Bytecodes::_iinc , ubcp|____|____|iswd, vtos, vtos, wide_iinc , _ ); def(Bytecodes::_ret , ubcp|disp|____|iswd, vtos, vtos, wide_ret , _ ); def(Bytecodes::_breakpoint , ubcp|disp|clvm|____, vtos, vtos, _breakpoint , _ ); // JVM bytecodes def(Bytecodes::_fast_agetfield , ubcp|____|____|____, atos, atos, fast_accessfield , atos ); def(Bytecodes::_fast_bgetfield , ubcp|____|____|____, atos, itos, fast_accessfield , itos ); def(Bytecodes::_fast_cgetfield , ubcp|____|____|____, atos, itos, fast_accessfield , itos ); def(Bytecodes::_fast_dgetfield , ubcp|____|____|____, atos, dtos, fast_accessfield , dtos ); def(Bytecodes::_fast_fgetfield , ubcp|____|____|____, atos, ftos, fast_accessfield , ftos ); def(Bytecodes::_fast_igetfield , ubcp|____|____|____, atos, itos, fast_accessfield , itos ); def(Bytecodes::_fast_lgetfield , ubcp|____|____|____, atos, ltos, fast_accessfield , ltos ); def(Bytecodes::_fast_sgetfield , ubcp|____|____|____, atos, itos, fast_accessfield , itos ); def(Bytecodes::_fast_aputfield , ubcp|____|____|____, atos, vtos, fast_storefield , atos ); def(Bytecodes::_fast_bputfield , ubcp|____|____|____, itos, vtos, fast_storefield , itos ); def(Bytecodes::_fast_cputfield , ubcp|____|____|____, itos, vtos, fast_storefield , itos ); def(Bytecodes::_fast_dputfield , ubcp|____|____|____, dtos, vtos, fast_storefield , dtos ); def(Bytecodes::_fast_fputfield , ubcp|____|____|____, ftos, vtos, fast_storefield , ftos ); def(Bytecodes::_fast_iputfield , ubcp|____|____|____, itos, vtos, fast_storefield , itos ); def(Bytecodes::_fast_lputfield , ubcp|____|____|____, ltos, vtos, fast_storefield , ltos ); def(Bytecodes::_fast_sputfield , ubcp|____|____|____, itos, vtos, fast_storefield , itos ); def(Bytecodes::_fast_aload_0 , ____|____|____|____, vtos, atos, aload , 0 ); def(Bytecodes::_fast_iaccess_0 , ubcp|____|____|____, vtos, itos, fast_xaccess , itos ); def(Bytecodes::_fast_aaccess_0 , ubcp|____|____|____, vtos, atos, fast_xaccess , atos ); def(Bytecodes::_fast_faccess_0 , ubcp|____|____|____, vtos, ftos, fast_xaccess , ftos ); def(Bytecodes::_fast_iload , ubcp|____|____|____, vtos, itos, fast_iload , _ ); def(Bytecodes::_fast_iload2 , ubcp|____|____|____, vtos, itos, fast_iload2 , _ ); def(Bytecodes::_fast_icaload , ubcp|____|____|____, vtos, itos, fast_icaload , _ ); def(Bytecodes::_fast_invokevfinal , ubcp|disp|clvm|____, vtos, vtos, fast_invokevfinal , f2_byte ); def(Bytecodes::_fast_linearswitch , ubcp|disp|____|____, itos, vtos, fast_linearswitch , _ ); def(Bytecodes::_fast_binaryswitch , ubcp|disp|____|____, itos, vtos, fast_binaryswitch , _ ); def(Bytecodes::_fast_aldc , ubcp|____|clvm|____, vtos, atos, fast_aldc , false ); def(Bytecodes::_fast_aldc_w , ubcp|____|clvm|____, vtos, atos, fast_aldc , true ); def(Bytecodes::_return_register_finalizer , ____|disp|clvm|____, vtos, vtos, _return , vtos ); def(Bytecodes::_shouldnotreachhere , ____|____|____|____, vtos, vtos, shouldnotreachhere , _ ); // platform specific bytecodes pd_initialize(); _is_initialized = true; }
/// Return the identity def for the given instruction, which will either /// be effect_in, or the given value_in. /// Def* IdentityAnalyzer::identity(UnaryStmt* instr) { return def(def_ == instr->effect_out() ? instr->effect_in() : instr->value_in()); }
//--------------------------------------------------------------------- TexturePtr CompositorManager::getPooledTexture(const String& name, const String& localName, size_t w, size_t h, PixelFormat f, uint aa, const String& aaHint, bool srgb, CompositorManager::UniqueTextureSet& texturesAssigned, CompositorInstance* inst, CompositionTechnique::TextureScope scope) { if (scope == CompositionTechnique::TS_GLOBAL) { OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "Global scope texture can not be pooled.", "CompositorManager::getPooledTexture"); } TextureDef def(w, h, f, aa, aaHint, srgb); if (scope == CompositionTechnique::TS_CHAIN) { StringPair pair = std::make_pair(inst->getCompositor()->getName(), localName); TextureDefMap& defMap = mChainTexturesByDef[pair]; TextureDefMap::iterator it = defMap.find(def); if (it != defMap.end()) { return it->second; } // ok, we need to create a new one TexturePtr newTex = TextureManager::getSingleton().createManual( name, ResourceGroupManager::INTERNAL_RESOURCE_GROUP_NAME, TEX_TYPE_2D, (uint)w, (uint)h, 0, f, TU_RENDERTARGET, 0, srgb, aa, aaHint); defMap.insert(TextureDefMap::value_type(def, newTex)); return newTex; } TexturesByDef::iterator i = mTexturesByDef.find(def); if (i == mTexturesByDef.end()) { TextureList* texList = OGRE_NEW_T(TextureList, MEMCATEGORY_GENERAL); i = mTexturesByDef.insert(TexturesByDef::value_type(def, texList)).first; } CompositorInstance* previous = inst->getChain()->getPreviousInstance(inst); CompositorInstance* next = inst->getChain()->getNextInstance(inst); TexturePtr ret; TextureList* texList = i->second; // iterate over the existing textures and check if we can re-use for (TextureList::iterator t = texList->begin(); t != texList->end(); ++t) { TexturePtr& tex = *t; // check not already used if (texturesAssigned.find(tex.get()) == texturesAssigned.end()) { bool allowReuse = true; // ok, we didn't use this one already // however, there is an edge case where if we re-use a texture // which has an 'input previous' pass, and it is chained from another // compositor, we can end up trying to use the same texture for both // so, never allow a texture with an input previous pass to be // shared with its immediate predecessor in the chain if (isInputPreviousTarget(inst, localName)) { // Check whether this is also an input to the output target of previous // can't use CompositorInstance::mPreviousInstance, only set up // during compile if (previous && isInputToOutputTarget(previous, tex)) allowReuse = false; } // now check the other way around since we don't know what order they're bound in if (isInputToOutputTarget(inst, localName)) { if (next && isInputPreviousTarget(next, tex)) allowReuse = false; } if (allowReuse) { ret = tex; break; } } } if (ret.isNull()) { // ok, we need to create a new one ret = TextureManager::getSingleton().createManual( name, ResourceGroupManager::INTERNAL_RESOURCE_GROUP_NAME, TEX_TYPE_2D, (uint)w, (uint)h, 0, f, TU_RENDERTARGET, 0, srgb, aa, aaHint); texList->push_back(ret); } // record that we used this one in the requester's list texturesAssigned.insert(ret.get()); return ret; }
Def* IdentityAnalyzer::identity(NaryStmt3* instr, Def* value_in) { return (def_ == instr->effect_out() ? def(instr->effect_in()) : value_in); }