您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ walker函数代码示例

51自学网 2021-06-03 09:51:51
  C++
这篇教程C++ walker函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中walker函数的典型用法代码示例。如果您正苦于以下问题:C++ walker函数的具体用法?C++ walker怎么用?C++ walker使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了walker函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: nextSibling

Node* nextSibling(const Node* node){    ComposedShadowTreeWalker walker(node);    if (node->isBeforePseudoElement()) {        walker.parent();        walker.firstChild();    } else        walker.nextSibling();    if (walker.get() || node->isAfterPseudoElement())        return walker.get();    Node* parent = walker.traverseParent(node);    if (parent && parent->isElementNode())        return toElement(parent)->pseudoElement(AFTER);    return 0;}
开发者ID:IllusionRom-deprecated,项目名称:android_platform_external_chromium_org_third_party_WebKit,代码行数:18,


示例2: walker

voidnsXULColorPickerAccessible::CacheChildren(){  nsAccTreeWalker walker(mWeakShell, mContent, PR_TRUE);  nsRefPtr<nsAccessible> child;  while ((child = walker.GetNextChild())) {    // XXX: do not call nsAccessible::GetRole() while accessible not in tree    // (bug 574588).    PRUint32 role = nsAccUtils::Role(child);    // Get an accessbile for menupopup or panel elements.    if (role == nsIAccessibleRole::ROLE_ALERT) {      AppendChild(child);      return;    }  }}
开发者ID:lofter2011,项目名称:Icefox,代码行数:18,


示例3: get_suif_env

void NonConstBoundDismantlerPass::do_file_set_block( FileSetBlock* file_set_block ) {    SuifEnv *env = get_suif_env();    ReplacingWalker walker(env);    ReverseMap rev_map;    NonConstDimExpressionWalker ew1(env,walker,rev_map,MultiDimArrayExpression::get_class_name());    NonConstDimExpressionWalker ew2(env,walker,rev_map,ArrayReferenceExpression::get_class_name());    NonConstBoundArrayTypeWalker  aw1(env,rev_map,MultiDimArrayType::get_class_name());    NonConstBoundArrayTypeWalker  aw2(env,rev_map,ArrayType::get_class_name());    walker.append_walker(ew1);    walker.append_walker(ew2);    file_set_block->walk(walker);    ReplacingWalker type_walker(env);    type_walker.append_walker(aw1);    type_walker.append_walker(aw2);    file_set_block->walk(type_walker);}
开发者ID:JehandadKhan,项目名称:roccc-2.0,代码行数:18,


示例4: walker

 void DebugManager::ValidateDebugAPICall() {     Js::JavascriptStackWalker walker(this->pThreadContext->GetScriptEntryExit()->scriptContext);     Js::JavascriptFunction* javascriptFunction = nullptr;     if (walker.GetCaller(&javascriptFunction))     {         if (javascriptFunction != nullptr)         {             void *topJsFrameAddr = (void *)walker.GetCurrentArgv();             Assert(this->dispatchHaltFrameAddress != nullptr);             if (topJsFrameAddr < this->dispatchHaltFrameAddress)             {                 // we found the script frame after the break mode.                 AssertMsg(false, "There are JavaScript frames between current API and dispatch halt");             }         }     } }
开发者ID:AlexElting,项目名称:ChakraCore,代码行数:18,


示例5: walker

APCHandle* APCObject::MakeAPCObject(    APCHandle* obj, size_t& size, const Variant& value) {  if (!value.is(KindOfObject) || obj->objAttempted()) {    return nullptr;  }  obj->setObjAttempted();  ObjectData *o = value.getObjectData();  DataWalker walker(DataWalker::LookupFeature::DetectSerializable);  DataWalker::DataFeature features = walker.traverseData(o);  if (features.isCircular() ||      features.hasCollection() ||      features.hasSerializableReference()) {    return nullptr;  }  APCHandle* tmp = APCHandle::Create(value, size, false, true, true);  tmp->setObjAttempted();  return tmp;}
开发者ID:AmineCherrai,项目名称:hhvm,代码行数:18,


示例6: walker

/*=====================================================================  Wire the vcc net.  VCCs originate from non-prims only.======================================================================*/void CLASS::xdlWirePower1(){//fprintf(stderr,"%s/n",__func__);  cMultiWireWalker walker(*hero->type->xwire);  while(!walker.isEnd()){    int pinst;int pindex;int busid;    walker.getInc(pinst,pindex,busid);    if(pinst==INST_MY){      switch(pindex){        case 0xFF: //vcc        case 0xFE: //gnd          xdlNetHeader(0,pindex);          xdlWireInner1(pinst,pindex,0,walker); //ground and vcc are scalars          fprintf(fout,";/n");      }   }   walker.seekNext();  }}
开发者ID:8l,项目名称:fpgasm,代码行数:21,


示例7: previousSiblingSlow

Node* previousSiblingSlow(const Node* node){    ComposedShadowTreeWalker walker(node);    if (node->isAfterPseudoElement()) {        walker.parent();        walker.lastChild();    } else        walker.previousSibling();    if (walker.get() || node->isBeforePseudoElement())        return walker.get();    Node* parent = walker.traverseParent(node);    if (parent && parent->isElementNode())        return toElement(parent)->pseudoElement(BEFORE);    return 0;}
开发者ID:Channely,项目名称:know-your-chrome,代码行数:18,


示例8: walker

void CombinedPass::do_file_set_block( FileSetBlock* file_set_block ) {    list<SymbolTable*> file_scope_tables;    for (Iter<FileBlock*> iter = file_set_block->get_file_block_iterator();	 iter.is_valid(); iter.next())       {	file_scope_tables.push_back(iter.current()->get_symbol_table());      }    file_scope_tables.push_back(file_set_block->get_file_set_symbol_table());        CollisionAvoider walker(get_suif_env(),			    file_set_block->get_external_symbol_table(),			    &file_scope_tables,                            (file_set_block->get_file_block(0))->                                get_source_file_name(),			    true);    file_set_block->walk(walker);    }
开发者ID:jrk,项目名称:suif2,代码行数:18,


示例9: walker

nsresult LocationStep::appendMatchingDescendantsRev(    const txXPathTreeWalker& aWalker, txIMatchContext* aContext,    txNodeSet* aNodes) {  txXPathTreeWalker walker(aWalker);  if (!walker.moveToLastChild()) {    return NS_OK;  }  do {    nsresult rv = appendMatchingDescendantsRev(walker, aContext, aNodes);    NS_ENSURE_SUCCESS(rv, rv);    rv = appendIfMatching(walker, aContext, aNodes);    NS_ENSURE_SUCCESS(rv, rv);  } while (walker.moveToPreviousSibling());  return NS_OK;}
开发者ID:jasonLaster,项目名称:gecko-dev,代码行数:18,


示例10: list_destroy

/* * Free all storage in a list, and optionally the pointed-to elements */voidlist_destroy(List *list, void (*walker)()){	ListCell   *cell;	cell = list_head(list);	while (cell != NULL)	{		ListCell   *tmp = cell;		cell = lnext(cell);		if (walker)			walker(lfirst(tmp));		free(tmp);	}	free(list);}
开发者ID:chuongnn,项目名称:pg_bulkload,代码行数:21,


示例11: SMART_ASSERT

//// 注释:在压缩包中查找文件,pathInPack为查找路径//       如果pathInPack为空,则在当前路径下查找//       如果pathInPack 为绝对路径,则从根目录下查找//       返回查找到的第一个文件,如果没有找到,返回NULL// //  op : find 0001.png /ui/0/    <= 绝对路径//       find 0001.png           <= 当前路径下//YCIAbstractFile* YCLYCPackSystem::find(const char* packFile, const char* pathInPack){	SMART_ASSERT(packFile != NULL);	if (packFile == NULL)	{		throw YCPackException(1002, "YCLYCFileSystem::find参数有误");	}	char nextPath[MAX_PATH] = {0};	if (!YCPathWalker::isAbsolutePath(pathInPack) && myCurrent != NULL)	{		sprintf(nextPath, "%s//%s", pathInPack, packFile);		return myCurrent->get(nextPath);	}	YCPathWalker walker(pathInPack);	int length;	YCPathWalker::E_FILE_TYPE type;	const char* first = walker.next(length, type);	if (first == NULL || type == YCPathWalker::DISK)	{		throw YCPackException(1002, "YCLYCFileSystem::find包路径有误");	}	YCIFileDirectory * position = NULL;	for (Item_List_T* item = myPackFiles->begin();			item != myPackFiles->end() && !position;			item = myPackFiles->next(item))	{		YCLYCFilePack* exists = (YCLYCFilePack*)myPackFiles->payload(item);		if (strnicmp(exists->getPackName(), first, length) == 0)		{			position = exists;		}	}	if (NULL == position)	{		throw YCPackException(1002, "YCLYCFileSystem::find包文件不存在");	}	sprintf(nextPath, "%s//%s", walker.remain(), packFile);	return position->get(nextPath);}
开发者ID:lovechen508,项目名称:GameClient,代码行数:53,


示例12: initImage

void KisTransparencyMaskTest::testMoveParentLayer(){    KisImageSP image;    KisPaintLayerSP layer;    KisPaintDeviceSP dev;    KisTransparencyMaskSP mask;    initImage(image, layer, dev, mask);    mask->initSelection(layer);    mask->selection()->pixelSelection()->invert();    mask->select(QRect(50, 50, 100, 100));    KisFullRefreshWalker walker(image->bounds());    KisAsyncMerger merger;    walker.collectRects(layer, image->bounds());    merger.startMerge(walker);    // image->projection()->convertToQImage(0, 0,0,300,300).save("proj_before.png");    QRect initialRect(0,0,200,100);    QCOMPARE(layer->exactBounds(), initialRect);    QCOMPARE(image->projection()->exactBounds(), QRect(50,50,100,50));    layer->setX(100);    layer->setY(100);    dbgKrita << "Sel. rect before:" << mask->selection()->selectedExactRect();    mask->setX(100);    mask->setY(100);    dbgKrita << "Sel. rect after:" << mask->selection()->selectedExactRect();    QRect finalRect(100,100,200,100);    QCOMPARE(layer->exactBounds(), finalRect);    walker.collectRects(layer, initialRect | finalRect);    merger.startMerge(walker);    // image->projection()->convertToQImage(0, 0,0,300,300).save("proj_after.png");    QCOMPARE(image->projection()->exactBounds(), QRect(150,150,100,50));}
开发者ID:ChrisJong,项目名称:krita,代码行数:44,


示例13: NS_ENSURE_SUCCESS

nsresulttxNamedAttributeStep::evaluate(txIEvalContext* aContext,                               txAExprResult** aResult){    *aResult = nsnull;    nsRefPtr<txNodeSet> nodes;    nsresult rv = aContext->recycler()->getNodeSet(getter_AddRefs(nodes));    NS_ENSURE_SUCCESS(rv, rv);    txXPathTreeWalker walker(aContext->getContextNode());    if (walker.moveToNamedAttribute(mLocalName, mNamespace)) {        rv = nodes->append(walker.getCurrentPosition());        NS_ENSURE_SUCCESS(rv, rv);    }    NS_ADDREF(*aResult = nodes);    return NS_OK;}
开发者ID:Anachid,项目名称:mozilla-central,代码行数:19,


示例14: walker

voidnsHTMLTableAccessible::CacheChildren(){  // Move caption accessible so that it's the first child. Check for the first  // caption only, because nsAccessibilityService ensures we don't create  // accessibles for the other captions, since only the first is actually  // visible.  nsAccTreeWalker walker(mWeakShell, mContent, GetAllowsAnonChildAccessibles());  nsRefPtr<nsAccessible> child;  while ((child = walker.GetNextChild())) {    if (nsAccUtils::Role(child) == nsIAccessibleRole::ROLE_CAPTION) {      InsertChildAt(0, child);      while ((child = walker.GetNextChild()) && AppendChild(child));      break;    }    AppendChild(child);  }}
开发者ID:jiaofeng,项目名称:Icefox,代码行数:19,


示例15: walker

void LocationStep::fromDescendantsRev(const txXPathNode& aNode,                                      txIMatchContext* aCs,                                      txNodeSet* aNodes){    txXPathTreeWalker walker(aNode);    if (!walker.moveToLastChild()) {        return;    }    do {        const txXPathNode& child = walker.getCurrentPosition();        fromDescendantsRev(child, aCs, aNodes);        if (mNodeTest->matches(child, aCs)) {            aNodes->append(child);        }    } while (walker.moveToPreviousSibling());}
开发者ID:ehsan,项目名称:mozilla-history,代码行数:19,


示例16: OutputInformation

void ConstQualedVarPropagationPass::do_procedure_definition(ProcedureDefinition* proc_def){  OutputInformation("Constant qualified variable propagation pass begins");  suif_map<VariableSymbol*, ValueBlock*> temp_const_defs;    if (proc_def){        DefinitionBlock *proc_def_block = proc_def->get_definition_block();        for(Iter<VariableDefinition*> iter = proc_def_block->get_variable_definition_iterator();            iter.is_valid(); iter.next()){            VariableDefinition *var_def = iter.current();            VariableSymbol *var_sym = var_def->get_variable_symbol();            QualifiedType *qualed_var_type = var_sym->get_type();            if(is_a<IntegerType>(qualed_var_type->get_base_type())){               bool found = 0;               for(Iter<LString> iter2 = qualed_var_type->get_qualification_iterator();                   iter2.is_valid(); iter2.next())                   if(iter2.current() == LString("const"))                      found = 1;               if(found){                  temp_const_defs.enter_value(var_sym, var_def->get_initialization());               }            }        }        for(Iter<StoreVariableStatement> iter = object_iterator<StoreVariableStatement>(proc_def->get_body());            iter.is_valid(); iter.next()){            StoreVariableStatement *store_var_stmt = &iter.current();            Expression *store_var_value = store_var_stmt->get_value();            if(!is_a<IntConstant>(store_var_value))               continue;            VariableSymbol *store_var_destination = store_var_stmt->get_destination();            if(!is_a<IntegerType>(store_var_destination->get_type()->get_base_type()))                 continue;            suif_map<VariableSymbol*,ValueBlock*>::iterator iter2 =                        temp_const_defs.find(to<LoadVariableExpression>(store_var_value)->get_source());            if(iter2 != temp_const_defs.end())               const_qualified_scalars.enter_value(store_var_destination, (*iter2).second);        }        cqvp_load_variable_expression_walker walker(get_suif_env());        proc_def->walk(walker);    }  OutputInformation("Constant qualified variable propagation pass ends");}
开发者ID:JehandadKhan,项目名称:roccc-2.0,代码行数:42,


示例17: apc_serialize

APCHandle::Pair APCCollection::Make(const ObjectData* obj,                                    APCHandleLevel level,                                    bool unserializeObj) {  auto bail = [&] {    return APCString::MakeSerializedObject(      apc_serialize(Variant(const_cast<ObjectData*>(obj)))    );  };  auto const array = collections::asArray(obj);  if (!array) return bail();  /*   * Create an uncounted array if we can.   *   * If this collection is an OuterHandle, then we need to do a full check on   * this array for things like circularity.  If we're an InnerHandle, someone   * already checked that, but we want to check for whether it's uncounted to   * use a better representation.  For the OuterHandle case, we just delegate   * to APCArray below (which will do the full DataWalker pass).   */  if (level == APCHandleLevel::Inner && apcExtension::UseUncounted &&      !array->empty()) {    DataWalker walker(DataWalker::LookupFeature::HasObjectOrResource);    auto const features = walker.traverseData(const_cast<ArrayData*>(array));    assert(!features.isCircular);    if (!features.hasObjectOrResource) {      return WrapArray(        { APCArray::MakeUncountedArray(const_cast<ArrayData*>(array)),          getMemSize(array) + sizeof(APCTypedValue) },        obj->collectionType()      );    }  }  return WrapArray(    APCArray::MakeSharedArray(const_cast<ArrayData*>(array),                              level,                              unserializeObj),    obj->collectionType()  );}
开发者ID:c9s,项目名称:hhvm,代码行数:42,


示例18: subtractBrushesFromUnselected

void subtractBrushesFromUnselected(const cmd::ArgumentList& args){	if (registry::getValue<bool>(RKEY_EMIT_CSG_SUBTRACT_WARNING))	{		wxutil::Messagebox::Show(_("This Is Not Dromed Warning"),			_("Note: be careful when using the CSG tool, as you might end up/n"			"with an unnecessary number of tiny brushes and/or leaks./n"			"This popup will not be shown again."), ui::IDialog::MESSAGE_CONFIRM);		// Disable this warning        registry::setValue(RKEY_EMIT_CSG_SUBTRACT_WARNING, false);	}	// Collect all selected brushes	BrushPtrVector brushes = selection::algorithm::getSelectedBrushes();	if (brushes.empty()) {		rMessage() << _("CSG Subtract: No brushes selected.") << std::endl;		wxutil::Messagebox::ShowError(_("CSG Subtract: No brushes selected."));		return;	}	rMessage() << "CSG Subtract: Subtracting " << brushes.size() << " brushes./n";	UndoableCommand undo("brushSubtract");	// subtract selected from unselected	std::size_t before = 0;	std::size_t after = 0;	// instantiate a scoped walker class	{		SubtractBrushesFromUnselected walker(brushes, before, after);		GlobalSceneGraph().root()->traverse(walker);	}	rMessage() << "CSG Subtract: Result: "		<< after << " fragment" << (after == 1 ? "" : "s")		<< " from " << before << " brush" << (before == 1 ? "" : "es") << "./n";	SceneChangeNotify();}
开发者ID:BielBdeLuna,项目名称:DarkRadiant,代码行数:42,


示例19: TEST_F

TEST_F(ToolsTestFileSystemWalker, Valid){      FtsHelper helper;   auto FtsRealHelper = [&](FTSENT* ptr, int flag){      return helper.FtsHelperAction(ptr, flag);   };         FileSystemWalker walker(mTestDirectory, FtsRealHelper);   EXPECT_FALSE(walker.Action().HasFailed());      EXPECT_EQ(helper.fileCounter, 0);   EXPECT_EQ(helper.ignoredCounter, 1); // directory we're in PRE-traversal   EXPECT_EQ(helper.directoryCounter, 1); // directory we're in POST-traversal      ASSERT_EQ(helper.names.size(), 1);   ASSERT_EQ(helper.names[0], "TempFileSystemWalker");      ASSERT_EQ(helper.rootNames.size(), 1);   ASSERT_EQ(helper.rootNames[0], "/tmp/TempFileSystemWalker");}
开发者ID:rkophs,项目名称:FileIO,代码行数:20,


示例20: eContext

/** * Selects from the descendants of the context node * all nodes that match the Expr**/nsresultPathExpr::evalDescendants(Expr* aStep, const txXPathNode& aNode,                          txIMatchContext* aContext, txNodeSet* resNodes){    txSingleNodeContext eContext(aNode, aContext);    nsRefPtr<txAExprResult> res;    nsresult rv = aStep->evaluate(&eContext, getter_AddRefs(res));    NS_ENSURE_SUCCESS(rv, rv);    if (res->getResultType() != txAExprResult::NODESET) {        //XXX ErrorReport: report nonnodeset error        return NS_ERROR_XSLT_NODESET_EXPECTED;    }    txNodeSet* oldSet = static_cast<txNodeSet*>                                   (static_cast<txAExprResult*>(res));    nsRefPtr<txNodeSet> newSet;    rv = aContext->recycler()->getNonSharedNodeSet(oldSet,                                                   getter_AddRefs(newSet));    NS_ENSURE_SUCCESS(rv, rv);    resNodes->addAndTransfer(newSet);    MBool filterWS = aContext->isStripSpaceAllowed(aNode);    txXPathTreeWalker walker(aNode);    if (!walker.moveToFirstChild()) {        return NS_OK;    }    do {        const txXPathNode& node = walker.getCurrentPosition();        if (!(filterWS && txXPathNodeUtils::isText(node) &&              txXPathNodeUtils::isWhitespace(node))) {            rv = evalDescendants(aStep, node, aContext, resNodes);            NS_ENSURE_SUCCESS(rv, rv);        }    } while (walker.moveToNextSibling());    return NS_OK;} //-- evalDescendants
开发者ID:Akin-Net,项目名称:mozilla-central,代码行数:45,


示例21: assert

bool MeshObjectWriter::write(    const MeshObject&   object,    const char*         object_name,    const char*         filename){    assert(filename);    Stopwatch<DefaultWallclockTimer> stopwatch;    stopwatch.start();    try    {        OBJMeshFileWriter writer(filename);        MeshObjectWalker walker(object, object_name);        writer.write(walker);    }    catch (const ExceptionIOError&)    {        RENDERER_LOG_ERROR(            "failed to write mesh file %s: i/o error.",            filename);        return false;    }    catch (const Exception& e)    {        RENDERER_LOG_ERROR(            "failed to write mesh file %s: %s.",            filename,            e.what());        return false;    }    stopwatch.measure();    RENDERER_LOG_INFO(        "wrote mesh file %s in %s.",        filename,        pretty_time(stopwatch.get_seconds()).c_str());    return true;}
开发者ID:EgoIncarnate,项目名称:appleseed,代码行数:41,


示例22: OutputInformation

void HW_SW_BoundaryMarkPass::do_procedure_definition(ProcedureDefinition* proc_def){  OutputInformation("Determination of Hardware/Software boundary pass begins");    if (proc_def){	SuifEnv *env = get_suif_env();        if(proc_def->lookup_annote_by_name("begin_hw"))           delete (to<BrickAnnote>(proc_def->remove_annote_by_name("begin_hw")));        if(proc_def->lookup_annote_by_name("end_hw"))           delete (to<BrickAnnote>(proc_def->remove_annote_by_name("end_hw")));        BrickAnnote *ba = create_brick_annote(env, "begin_hw");        proc_def->append_annote(ba);        ba = create_brick_annote(env, "end_hw");        proc_def->append_annote(ba);	hsbm_call_statement_walker walker(get_suif_env());	proc_def->walk(walker);    }  OutputInformation("Determination of Hardware/Software boundary pass ends");}
开发者ID:JehandadKhan,项目名称:roccc-2.0,代码行数:21,


示例23: if

void EventRetargeter::buildRelatedNodeMap(const Node* relatedNode, RelatedNodeMap& relatedNodeMap){    Vector<Node*, 32> relatedNodeStack;    TreeScope* lastTreeScope = 0;    for (EventPathWalker walker(relatedNode); walker.node(); walker.moveToParent()) {        Node* node = walker.node();        if (relatedNodeStack.isEmpty())            relatedNodeStack.append(node);        else if (walker.isVisitingInsertionPointInReprojection())            relatedNodeStack.append(relatedNodeStack.last());        TreeScope* scope = node->treeScope();        // Skips adding a node to the map if treeScope does not change. Just for the performance optimization.        if (scope != lastTreeScope)            relatedNodeMap.add(scope, relatedNodeStack.last());        lastTreeScope = scope;        if (node->isShadowRoot()) {            ASSERT(!relatedNodeStack.isEmpty());            relatedNodeStack.removeLast();        }    }}
开发者ID:Channely,项目名称:know-your-chrome,代码行数:21,


示例24: walker

Vector<String> PluginInfoStore::pluginPathsInDirectory(const String& directory){    Vector<String> paths;    PathWalker walker(directory, "*");    if (!walker.isValid())        return paths;    do {        if (walker.data().dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)            continue;        String filename = walker.data().cFileName;        if ((!filename.startsWith("np", false) || !filename.endsWith("dll", false)) && (!equalIgnoringCase(filename, "Plugin.dll") || !directory.endsWith("Shockwave 10", false)))            continue;        paths.append(directory + "//" + filename);    } while (walker.step());    return paths;}
开发者ID:dzhshf,项目名称:WebKit,代码行数:21,


示例25: setupForTextPainting

void Font::drawComplexText(GraphicsContext* gc, const TextRun& run,                           const FloatPoint& point, int from, int to) const{    if (!run.length())        return;    SkCanvas* canvas = gc->platformContext()->canvas();    int textMode = gc->platformContext()->getTextDrawingMode();    bool fill = textMode & cTextFill;    bool stroke = (textMode & cTextStroke)               && gc->platformContext()->getStrokeStyle() != NoStroke               && gc->platformContext()->getStrokeThickness() > 0;    if (!fill && !stroke)        return;    SkPaint strokePaint, fillPaint;    if (fill) {        gc->platformContext()->setupPaintForFilling(&fillPaint);        setupForTextPainting(&fillPaint, gc->fillColor().rgb());    }    if (stroke) {        gc->platformContext()->setupPaintForStroking(&strokePaint, 0, 0);        setupForTextPainting(&strokePaint, gc->strokeColor().rgb());    }    TextRunWalker walker(run, point.x(), this);    while (walker.nextScriptRun()) {        if (fill) {            walker.fontPlatformDataForScriptRun()->setupPaint(&fillPaint);            canvas->drawPosTextH(walker.glyphs(), walker.length() << 1, walker.xPositions(), point.y(), fillPaint);        }        if (stroke) {            walker.fontPlatformDataForScriptRun()->setupPaint(&strokePaint);            canvas->drawPosTextH(walker.glyphs(), walker.length() << 1, walker.xPositions(), point.y(), strokePaint);        }    }}
开发者ID:dzip,项目名称:webkit,代码行数:40,


示例26: run_one_or_two

  Graph run_one_or_two(std::mt19937 * mt, uint_fast32_t max_order, double p, uint_fast32_t initial_order, bool selfloop){    Graph graph(max_order);    initialize_complete_graph(graph, initial_order, selfloop);    std::uniform_real_distribution<> dist(0,1);    RandomWalker walker(mt, &graph);    while(graph.order() < max_order) {      walker.take_step();      // Take another step with probability 1-p      if(dist(*mt) > p){        walker.take_step();      }      graph.add_vertex();      graph.add_edge(graph.order()-1, walker.location());    }    return graph;  }
开发者ID:bamorim,项目名称:random_walk_generator,代码行数:22,


示例27: walker

APCHandle::PairAPCArray::MakeSharedArray(ArrayData* arr, APCHandleLevel level,                          bool unserializeObj) {  if (level == APCHandleLevel::Outer) {    // only need to call traverseData() on the toplevel array    DataWalker walker(DataWalker::LookupFeature::HasObjectOrResource);    DataWalker::DataFeature features = walker.traverseData(arr);    if (features.isCircular) {      String s = apc_serialize(Variant{arr});      return APCString::MakeSerializedArray(s.get());    }    if (apcExtension::UseUncounted && !features.hasObjectOrResource &&        !arr->empty()) {      return {MakeUncountedArray(arr),              getMemSize(arr) + sizeof(APCTypedValue)};    }  }  return arr->isVectorData() ? MakePacked(arr, unserializeObj) :         MakeHash(arr, unserializeObj);}
开发者ID:Thomascarette,项目名称:hhvm,代码行数:22,



注:本文中的walker函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ walkmonster_start函数代码示例
C++ walk_tree函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。