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

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

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

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

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

示例1: GML_RECMUTEX_LOCK

void CGroupHandler::RemoveGroup(CGroup* group){	GML_RECMUTEX_LOCK(sel); // RemoveGroup	GML_STDMUTEX_LOCK(group); // RemoveGroup	if(group->id<10){		logOutput.Print("Warning trying to remove hotkey group %i",group->id);		return;	}	if(selectedUnits.selectedGroup==group->id)		selectedUnits.ClearSelected();	groups[group->id]=0;	freeGroups.push_back(group->id);	delete group;}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:15,


示例2: GML_RECMUTEX_LOCK

void CGroupHandler::RemoveGroup(CGroup* group){	GML_RECMUTEX_LOCK(grpsel); // RemoveGroup	if (group->id < FIRST_SPECIAL_GROUP) {		LOG_L(L_WARNING, "Trying to remove hot-key group %i", group->id);		return;	}	if (selectedUnits.selectedGroup == group->id) {		selectedUnits.ClearSelected();	}	groups[group->id] = NULL;	freeGroups.push_back(group->id);	delete group;}
开发者ID:FriedRice,项目名称:spring,代码行数:15,


示例3: GML_RECMUTEX_LOCK

void CSelectedUnits::ClearSelected(){	GML_RECMUTEX_LOCK(sel); // ClearSelected	CUnitSet::iterator ui;	for (ui = selectedUnits.begin(); ui != selectedUnits.end(); ++ui) {		(*ui)->isSelected = false;		DeleteDeathDependence(*ui, DEPENDENCE_SELECTED);	}	selectedUnits.clear();	selectionChanged = true;	possibleCommandsChanged = true;	selectedGroup = -1;}
开发者ID:atamanokuklu,项目名称:spring,代码行数:15,


示例4: GetMyTeamUnit

bool CAICallback::AddUnitToGroup(int unitId, int groupId){	bool added = false;	CUnit* unit = GetMyTeamUnit(unitId);	if (unit) {		GML_RECMUTEX_LOCK(group); // AddUnitToGroup		if (CHECK_GROUPID(groupId) && gh->groups[groupId]) {			added = unit->SetGroup(gh->groups[groupId]);		}	}	return added;}
开发者ID:AlexDiede,项目名称:spring,代码行数:15,


示例5: GML_RECMUTEX_LOCK

void CGroupHandler::GroupCommand(int num){	GML_RECMUTEX_LOCK(sel); // GroupCommand	GML_STDMUTEX_LOCK(group); // GroupCommand	if (keys[SDLK_LCTRL]) {		if (!keys[SDLK_LSHIFT]) {			groups[num]->ClearUnits();		}		const CUnitSet& selUnits = selectedUnits.selectedUnits;		CUnitSet::const_iterator ui;		for(ui = selUnits.begin(); ui != selUnits.end(); ++ui) {			(*ui)->SetGroup(groups[num]);		}	}	else if (keys[SDLK_LSHIFT])  {		// do not select the group, just add its members to the current selection		CUnitSet::const_iterator gi;		for (gi = groups[num]->units.begin(); gi != groups[num]->units.end(); ++gi) {			selectedUnits.AddUnit(*gi);		}		return;	}	else if (keys[SDLK_LALT] || keys[SDLK_LMETA])  {		// do not select the group, just toggle its members with the current selection		const CUnitSet& selUnits = selectedUnits.selectedUnits;		CUnitSet::const_iterator gi;		for (gi = groups[num]->units.begin(); gi != groups[num]->units.end(); ++gi) {			if (selUnits.find(*gi) == selUnits.end()) {				selectedUnits.AddUnit(*gi);			} else {				selectedUnits.RemoveUnit(*gi);			}		}		return;	}	if(selectedUnits.selectedGroup==num && !groups[num]->units.empty()){		float3 p(0,0,0);		for(CUnitSet::iterator gi=groups[num]->units.begin();gi!=groups[num]->units.end();++gi){			p+=(*gi)->pos;		}		p/=groups[num]->units.size();		camHandler->GetCurrentController().SetPos(p);	}	selectedUnits.SelectGroup(num);}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:48,


示例6: GML_RECMUTEX_LOCK

void CFeatureDrawer::Draw(){	ISky::SetupFog();	GML_RECMUTEX_LOCK(feat); // Draw	CBaseGroundDrawer* gd = readmap->GetGroundDrawer();	if (gd->DrawExtraTex()) {		glActiveTextureARB(GL_TEXTURE2_ARB);		glEnable(GL_TEXTURE_2D);		glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD_SIGNED_ARB);		glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);		SetTexGen(1.0f / (gs->pwr2mapx * SQUARE_SIZE), 1.0f / (gs->pwr2mapy * SQUARE_SIZE), 0.0f, 0.0f);		glBindTexture(GL_TEXTURE_2D, gd->infoTex);		glActiveTextureARB(GL_TEXTURE0_ARB);	}	unitDrawer->SetupForUnitDrawing();	GetVisibleFeatures(0, true);	for (int modelType = MODELTYPE_3DO; modelType < MODELTYPE_OTHER; modelType++) {		opaqueModelRenderers[modelType]->PushRenderState();		DrawOpaqueFeatures(modelType);		opaqueModelRenderers[modelType]->PopRenderState();	}	unitDrawer->CleanUpUnitDrawing();	farTextureHandler->Draw();	if (gd->DrawExtraTex()) {		glActiveTextureARB(GL_TEXTURE2_ARB);		glDisable(GL_TEXTURE_2D);		glDisable(GL_TEXTURE_GEN_S);		glDisable(GL_TEXTURE_GEN_T);		glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);		glActiveTextureARB(GL_TEXTURE0_ARB);	}	glDisable(GL_TEXTURE_2D);	glDisable(GL_FOG);#ifdef USE_GML	DrawFeatureStats();#endif}
开发者ID:Tastyfish-Studios,项目名称:Red-Herring-Engine,代码行数:48,


示例7: GML_RECMUTEX_LOCK

CGroup* CGroupHandler::CreateNewGroup(){	GML_RECMUTEX_LOCK(group); // GroupCommand	if (freeGroups.empty()) {		CGroup* group = new CGroup(firstUnusedGroup++, this);		groups.push_back(group);		return group;	} else {		int id = freeGroups.back();		freeGroups.pop_back();		CGroup* group = new CGroup(id, this);		groups[id] = group;		return group;	}}
开发者ID:niavok,项目名称:spring,代码行数:16,


示例8: GML_RECMUTEX_LOCK

void CWaitCommandsAI::AddTimeWait(const Command& cmd){	GML_RECMUTEX_LOCK(sel); // AddTimeWait	// save the current selection	const CUnitSet tmpSet = selectedUnits.selectedUnits;	CUnitSet::const_iterator it;	for (it = tmpSet.begin(); it != tmpSet.end(); ++it) {		InsertWaitObject(TimeWait::New(cmd, *it));	}	// restore the selection	selectedUnits.ClearSelected();	for (it = tmpSet.begin(); it != tmpSet.end(); ++it) {		selectedUnits.AddUnit(*it);	}}
开发者ID:DarksidedStudios,项目名称:spring,代码行数:16,


示例9: assert

void CQuadField::AddProjectile(CProjectile* p){    assert(p->synced);    GML_RECMUTEX_LOCK(quad); // AddProjectile    CProjectile::QuadFieldCellData qfcd;    typedef CQuadField::Quad Cell;    typedef std::list<CProjectile*> List;    if (p->hitscan) {        // all coordinates always map to a valid quad        qfcd.SetCoor(0, int2(CELL_IDX_X(p->pos.x                    ), CELL_IDX_Z(p->pos.z                    )));        qfcd.SetCoor(1, int2(CELL_IDX_X(p->pos.x + p->speed.x * 0.5f), CELL_IDX_Z(p->pos.z + p->speed.z * 0.5f)));        qfcd.SetCoor(2, int2(CELL_IDX_X(p->pos.x + p->speed.x       ), CELL_IDX_Z(p->pos.z + p->speed.z       )));        Cell& cell = baseQuads[numQuadsX * qfcd.GetCoor(0).y + qfcd.GetCoor(0).x];        List& list = cell.projectiles;        // projectiles are point-objects so they exist        // only in a single cell EXCEPT hit-scan types        qfcd.SetIter(0, list.insert(list.end(), p));        for (unsigned int n = 1; n < 3; n++) {            Cell& ncell = baseQuads[numQuadsX * qfcd.GetCoor(n).y + qfcd.GetCoor(n).x];            List& nlist = ncell.projectiles;            // prevent possible double insertions (into the same quad-list)            // if case p->speed is not large enough to reach adjacent quads            if (qfcd.GetCoor(n) != qfcd.GetCoor(n - 1)) {                qfcd.SetIter(n, nlist.insert(nlist.end(), p));            } else {                qfcd.SetIter(n, nlist.end());            }        }    } else {        qfcd.SetCoor(0, int2(CELL_IDX_X(p->pos.x), CELL_IDX_Z(p->pos.z)));        Cell& cell = baseQuads[numQuadsX * qfcd.GetCoor(0).y + qfcd.GetCoor(0).x];        List& list = cell.projectiles;        qfcd.SetIter(0, list.insert(list.end(), p));    }    p->SetQuadFieldCellData(qfcd);}
开发者ID:AMDmi3,项目名称:spring,代码行数:47,


示例10: glPushAttrib

void CFeatureDrawer::DrawFadeFeatures(bool noAdvShading){	const bool oldAdvShading = unitDrawer->advShading;	{		unitDrawer->advShading = unitDrawer->advShading && !noAdvShading;		if (unitDrawer->advShading) {			unitDrawer->SetupForUnitDrawing();		} else {			unitDrawer->SetupForGhostDrawing();		}		glPushAttrib(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);		glDepthMask(GL_TRUE);		glEnable(GL_ALPHA_TEST);		glAlphaFunc(GL_GREATER, 0.5f);		if (globalRendering->drawFog) {			glEnable(GL_FOG);			glFogfv(GL_FOG_COLOR, mapInfo->atmosphere.fogColor);		}		{			GML_RECMUTEX_LOCK(feat); // DrawFadeFeatures			for (int modelType = MODELTYPE_3DO; modelType < MODELTYPE_OTHER; modelType++) {				cloakedModelRenderers[modelType]->PushRenderState();				DrawFadeFeaturesHelper(modelType);				cloakedModelRenderers[modelType]->PopRenderState();			}		}		glDisable(GL_FOG);		glPopAttrib();		if (unitDrawer->advShading) {			unitDrawer->CleanUpUnitDrawing();		} else {			unitDrawer->CleanUpGhostDrawing();		}		unitDrawer->advShading = oldAdvShading;	}}
开发者ID:Mocahteam,项目名称:SpringPP,代码行数:46,


示例11: glDisable

void CFeatureDrawer::DrawShadowPass(){	glDisable(GL_CULL_FACE); //FIXME: enable culling for s3o models	glPolygonOffset(1.0f, 1.0f);	glEnable(GL_POLYGON_OFFSET_FILL);	Shader::IProgramObject* po =		shadowHandler->GetShadowGenProg(CShadowHandler::SHADOWGEN_PROGRAM_MODEL);	po->Enable();	{		GML_RECMUTEX_LOCK(feat); // DrawShadowPass		// note: for the shadow-pass, we want to make sure		// out-of-view features casting frustum-intersecting		// shadows are still rendered, but this is expensive		// and does not make much difference		//		// GetVisibleFeatures(1, false);		// need the alpha-mask for transparent features		glEnable(GL_TEXTURE_2D);		glPushAttrib(GL_COLOR_BUFFER_BIT);		glEnable(GL_ALPHA_TEST);		glAlphaFunc(GL_GREATER, 0.5f);		// needed for 3do models (else they will use any currently bound texture)		// note: texture0 is by default a 1x1 texture with rgba(0,0,0,255)		// (we are just interested in the 255 alpha here)		glBindTexture(GL_TEXTURE_2D, 0);		for (int modelType = MODELTYPE_3DO; modelType < MODELTYPE_OTHER; modelType++) {			DrawOpaqueFeatures(modelType);		}		glPopAttrib();		glDisable(GL_TEXTURE_2D);	}	po->Disable();	glDisable(GL_POLYGON_OFFSET_FILL);	glEnable(GL_CULL_FACE);}
开发者ID:spring-multiverse,项目名称:spring,代码行数:45,


示例12: GML_RECMUTEX_LOCK

float CGameHelper::GuiTraceRayFeature(const float3& start, const float3& dir, float length, CFeature*& feature){    float nearHit = length;    GML_RECMUTEX_LOCK(quad); // GuiTraceRayFeature    std::vector<int> quads = qf->GetQuadsOnRay(start, dir, length);    std::vector<int>::iterator qi;    for (qi = quads.begin(); qi != quads.end(); ++qi) {        const CQuadField::Quad& quad = qf->GetQuad(*qi);        std::list<CFeature*>::const_iterator ui;        // NOTE: switch this to custom volumes fully?        // (not used for any LOF checks, maybe wasteful)        for (ui = quad.features.begin(); ui != quad.features.end(); ++ui) {            CFeature* f = *ui;            if (!gu->spectatingFullView && !f->IsInLosForAllyTeam(gu->myAllyTeam)) {                continue;            }            if (f->noSelect) {                continue;            }            CollisionVolume* cv = f->collisionVolume;            const float3& midPosOffset = cv? cv->GetOffsets(): ZeroVector;            const float3 dif = (f->midPos + midPosOffset) - start;            float closeLength = dif.dot(dir);            if (closeLength < 0)                continue;            if (closeLength > nearHit)                continue;            float3 closeVect = dif - dir * closeLength;            if (closeVect.SqLength() < f->sqRadius) {                nearHit = closeLength;                feature = f;            }        }    }    return nearHit;}
开发者ID:javaphoon,项目名称:spring,代码行数:45,


示例13: GML_RECMUTEX_LOCK

CGroup* CGroupHandler::CreateNewGroup(){	GML_RECMUTEX_LOCK(group); // GroupCommand	if(freeGroups.empty()){		CGroup* group=new CGroup(firstUnusedGroup++, this);		groups.push_back(group);		if(group!=groups[group->id]){			handleerror(0,"Id error when creating group","Error",0);		}		return group;	} else {		int id=freeGroups.back();		freeGroups.pop_back();		CGroup* group=new CGroup(id, this);		groups[id]=group;		return group;	}}
开发者ID:DeadnightWarrior,项目名称:spring,代码行数:19,


示例14: glPushAttrib

void CFeatureDrawer::DrawFadeFeatures(bool noAdvShading){	const bool oldAdvShading = unitDrawer->UseAdvShading();	{		unitDrawer->SetUseAdvShading(unitDrawer->UseAdvShading() && !noAdvShading);		if (unitDrawer->UseAdvShading()) {			unitDrawer->SetupForUnitDrawing(false);		} else {			unitDrawer->SetupForGhostDrawing();		}		glPushAttrib(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);		glDepthMask(GL_TRUE);		glEnable(GL_ALPHA_TEST);		glAlphaFunc(GL_GREATER, 0.5f);		ISky::SetupFog();		{			GML_RECMUTEX_LOCK(feat); // DrawFadeFeatures			for (int modelType = MODELTYPE_3DO; modelType < MODELTYPE_OTHER; modelType++) {				cloakedModelRenderers[modelType]->PushRenderState();				DrawFadeFeaturesHelper(modelType);				cloakedModelRenderers[modelType]->PopRenderState();			}		}		glDisable(GL_FOG);		glPopAttrib();		if (unitDrawer->UseAdvShading()) {			unitDrawer->CleanUpUnitDrawing(false);		} else {			unitDrawer->CleanUpGhostDrawing();		}		unitDrawer->SetUseAdvShading(oldAdvShading);	}}
开发者ID:AMDmi3,项目名称:spring,代码行数:43,


示例15: GML_RECMUTEX_LOCK

void CSelectedUnits::SendCommand(const Command& c){	if (selectionChanged) {		// send new selection		GML_RECMUTEX_LOCK(sel); // SendSelection		// first, convert CUnit* to unit IDs.		std::vector<short> selectedUnitIDs(selectedUnits.size());		std::vector<short>::iterator i = selectedUnitIDs.begin();		CUnitSet::const_iterator ui = selectedUnits.begin();		for(; ui != selectedUnits.end(); ++i, ++ui) {			*i = (*ui)->id;		}		net->Send(CBaseNetProtocol::Get().SendSelect(gu->myPlayerNum, selectedUnitIDs));		selectionChanged = false;	}	net->Send(CBaseNetProtocol::Get().SendCommand(gu->myPlayerNum, c.GetID(), c.options, c.params));}
开发者ID:lordelven,项目名称:spring,代码行数:19,


示例16: GML_RECMUTEX_LOCK

void C3DModelLoader::Update() {	if (GML::SimEnabled() && !GML::ShareLists()) {		GML_RECMUTEX_LOCK(model); // Update		for (std::list<S3DModelPiece*>::iterator it = createLists.begin(); it != createLists.end(); ++it) {			CreateListsNow(*it);		}		createLists.clear();		for (std::list<LocalModel*>::iterator i = fixLocalModels.begin(); i != fixLocalModels.end(); ++i) {			(*i)->ReloadDisplayLists();		}		fixLocalModels.clear();		for (std::list<LocalModel*>::iterator i = deleteLocalModels.begin(); i != deleteLocalModels.end(); ++i) {			delete *i;		}		deleteLocalModels.clear();	}}
开发者ID:Anarchid,项目名称:spring,代码行数:20,


示例17: GML_RECMUTEX_LOCK

void CQuadField::RemoveUnit(CUnit* unit){    GML_RECMUTEX_LOCK(quad); // RemoveUnit    std::vector<int>::const_iterator qi;    for (qi = unit->quads.begin(); qi != unit->quads.end(); ++qi) {        std::list<CUnit*>& quadUnits     = baseQuads[*qi].units;        std::list<CUnit*>& quadAllyUnits = baseQuads[*qi].teamUnits[unit->allyteam];        std::list<CUnit*>::iterator ui;        ui = std::find(quadUnits.begin(), quadUnits.end(), unit);        if (ui != quadUnits.end())            quadUnits.erase(ui);        ui = std::find(quadAllyUnits.begin(), quadAllyUnits.end(), unit);        if (ui != quadAllyUnits.end())            quadAllyUnits.erase(ui);    }    unit->quads.clear();}
开发者ID:AMDmi3,项目名称:spring,代码行数:20,


示例18: GML_RECMUTEX_LOCK

void CQuadField::RemoveUnit(CUnit* unit){	GML_RECMUTEX_LOCK(quad); // RemoveUnit	std::vector<int>::iterator qi;	for (qi = unit->quads.begin(); qi != unit->quads.end(); ++qi) {		std::list<CUnit*>::iterator ui;		for (ui = baseQuads[*qi].units.begin(); ui != baseQuads[*qi].units.end(); ++ui) {			if(*ui==unit){				baseQuads[*qi].units.erase(ui);				break;			}		}		for(ui=baseQuads[*qi].teamUnits[unit->allyteam].begin();ui!=baseQuads[*qi].teamUnits[unit->allyteam].end();++ui){			if(*ui==unit){				baseQuads[*qi].teamUnits[unit->allyteam].erase(ui);				break;			}		}	}}
开发者ID:achoum,项目名称:spring,代码行数:20,


示例19: GML_RECMUTEX_LOCK

void CQuadField::MovedUnit(CUnit *unit){	vector<int> newQuads=GetQuads(unit->pos,unit->radius);	//! compare if the quads have changed, if not stop here	if(newQuads.size()==unit->quads.size()){		vector<int>::iterator qi1,qi2;		qi1=unit->quads.begin();		for(qi2=newQuads.begin();qi2!=newQuads.end();++qi2){			if(*qi1!=*qi2)				break;			++qi1;		}		if(qi2==newQuads.end())			return;	}	GML_RECMUTEX_LOCK(quad); // MovedUnit - possible performance hog	std::vector<int>::iterator qi;	for (qi = unit->quads.begin(); qi != unit->quads.end(); ++qi) {		std::list<CUnit*>::iterator ui;		for (ui = baseQuads[*qi].units.begin(); ui != baseQuads[*qi].units.end(); ++ui) {			if(*ui==unit){				baseQuads[*qi].units.erase(ui);				break;			}		}		for(ui=baseQuads[*qi].teamUnits[unit->allyteam].begin();ui!=baseQuads[*qi].teamUnits[unit->allyteam].end();++ui){			if(*ui==unit){				baseQuads[*qi].teamUnits[unit->allyteam].erase(ui);				break;			}		}	}	for(qi=newQuads.begin();qi!=newQuads.end();++qi){		baseQuads[*qi].units.push_front(unit);		baseQuads[*qi].teamUnits[unit->allyteam].push_front(unit);	}	unit->quads=newQuads;}
开发者ID:DeadnightWarrior,项目名称:spring,代码行数:41,


示例20: GML_RECMUTEX_LOCK

void CMiniMap::SelectUnits(int x, int y) const{	GML_RECMUTEX_LOCK(sel); //FIXME redundant? (selectedUnits already has mutexes)	if (!keyInput->IsKeyPressed(SDLK_LSHIFT) && !keyInput->IsKeyPressed(SDLK_LCTRL)) {		selectedUnits.ClearSelected();	}	CMouseHandler::ButtonPressEvt& bp = mouse->buttons[SDL_BUTTON_LEFT];	if (fullProxy && (bp.movement > 4)) {		// use a selection box		const float3 newPos = GetMapPosition(x, y);		const float3 oldPos = GetMapPosition(bp.x, bp.y);		const float xmin = std::min(oldPos.x, newPos.x);		const float xmax = std::max(oldPos.x, newPos.x);		const float zmin = std::min(oldPos.z, newPos.z);		const float zmax = std::max(oldPos.z, newPos.z);		const float4  planeRight(-1.0f, 0.0f,  0.0f,  xmin);		const float4   planeLeft( 1.0f, 0.0f,  0.0f, -xmax);		const float4    planeTop( 0.0f, 0.0f,  1.0f, -zmax);		const float4 planeBottom( 0.0f, 0.0f, -1.0f,  zmin);		selectedUnits.HandleUnitBoxSelection(planeRight, planeLeft, planeTop, planeBottom);	}	else {		// Single unit		const float size = unitSelectRadius;		const float3 pos = GetMapPosition(x, y);		CUnit* unit;		if (gu->spectatingFullSelect) {			unit = helper->GetClosestUnit(pos, size);		} else {			unit = helper->GetClosestFriendlyUnit(pos, size, gu->myAllyTeam);		}		selectedUnits.HandleSingleUnitClickSelection(unit, false);	}}
开发者ID:azotlikid,项目名称:spring,代码行数:41,


示例21: GML_RECMUTEX_LOCK

void COpenALSound::Update(){	GML_RECMUTEX_LOCK(sound); // Update	oggStream.Update();	for (int a = 0; a < maxSounds; a++) {		if (Sources[a]) {			ALint state;			alGetSourcei(Sources[a], AL_SOURCE_STATE, &state);			if (state == AL_STOPPED) {				alDeleteSources(1, &Sources[a]);				Sources[a] = 0;			}		}	}	CheckError("COpenALSound::Update");	UpdateListener();}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:21,


示例22: Wait

CWaitCommandsAI::GatherWait::GatherWait(const Command& cmd): Wait(CMD_WAITCODE_GATHERWAIT){	GML_RECMUTEX_LOCK(sel); // GatherWait	if (!cmd.params.empty()) {		return;	}	// only add valid units	const CUnitSet& selUnits = selectedUnits.selectedUnits;	CUnitSet::const_iterator sit;	for (sit = selUnits.begin(); sit != selUnits.end(); ++sit) {		CUnit* unit = *sit;		const UnitDef* ud = unit->unitDef;		if (ud->canmove && (dynamic_cast<CFactory*>(unit) == NULL)) {			waitUnits.insert(unit);		}	}	if (waitUnits.size() < 2) {		return; // one man does not a gathering make	}	valid = true;	key = GetNewKey();	Command waitCmd(CMD_WAIT, SHIFT_KEY);	waitCmd.params.push_back(code);	waitCmd.params.push_back(GetFloatFromKey(key));	selectedUnits.GiveCommand(waitCmd, true);	CUnitSet::iterator wit;	for (wit = waitUnits.begin(); wit != waitUnits.end(); ++wit) {		AddDeathDependence((CObject*)(*wit));	}	return;}
开发者ID:DarksidedStudios,项目名称:spring,代码行数:39,


示例23: glDisable

void CProjectileDrawer::DrawShadowPass(){	Shader::IProgramObject* po =		shadowHandler->GetShadowGenProg(CShadowHandler::SHADOWGEN_PROGRAM_PROJECTILE);	glDisable(GL_TEXTURE_2D);	po->Enable();	CProjectile::inArray = false;	CProjectile::va = GetVertexArray();	CProjectile::va->Initialize();	{		GML_RECMUTEX_LOCK(proj); // DrawShadowPass		for (int modelType = MODELTYPE_3DO; modelType < MODELTYPE_OTHER; modelType++) {			DrawProjectilesShadow(modelType);		}		// draw the model-less projectiles		DrawProjectilesSetShadow(renderProjectiles);	}	if (CProjectile::inArray) {		glEnable(GL_TEXTURE_2D);		textureAtlas->BindTexture();		glColor4f(1.0f, 1.0f, 1.0f, 1.0f);		glAlphaFunc(GL_GREATER,0.3f);		glEnable(GL_ALPHA_TEST);		glShadeModel(GL_SMOOTH);		ph->currentParticles += CProjectile::DrawArray();	}	po->Disable();	glShadeModel(GL_FLAT);	glDisable(GL_ALPHA_TEST);	glDisable(GL_TEXTURE_2D);}
开发者ID:DarksidedStudios,项目名称:spring,代码行数:39,



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


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