예제 #1
0
void CTyHMProxy::Ty_Serialize(CArchive &ar)
{
	if (ar.IsStoring())
	{
		ar<<m_x0<<m_y0<<m_x1<<m_y1;
		ar.Write((unsigned char *)m_hmname,sizeof(char)*33);
		ar<<m_display;
		ar.Write((unsigned char *)m_str1,sizeof(char)*33);
		ar.Write((unsigned char *)m_str2,sizeof(char)*33);
		ar<<m_color1<<m_color2<<m_bFlash<<m_FangXiang<<m_TextHeight<<m_TextWidth<<m_JqWidth;
		ar.Write((unsigned char *)m_TextFont,sizeof(char)*16);
		ar<<m_bTranslate1<<m_bTranslate2;
	} 
	else 
	{
		UnRegister();
		ar>>m_x0>>m_y0>>m_x1>>m_y1;
		ar.Read((unsigned char *)m_hmname,sizeof(char)*33);
		ar>>m_display;
		ar.Read((unsigned char *)m_str1,sizeof(char)*33);
		ar.Read((unsigned char *)m_str2,sizeof(char)*33);
		ar>>m_color1>>m_color2>>m_bFlash>>m_FangXiang>>m_TextHeight>>m_TextWidth>>m_JqWidth;
		ar.Read((unsigned char *)m_TextFont,sizeof(char)*16);
		ar>>m_bTranslate1>>m_bTranslate2;
		Register();
	}
}
예제 #2
0
void CParticleManager::Update( float deltaTime )
{
    for (uint32_t i = 0; i < m_particle.size(); ++i)
    {
        CParticle* pParticle = m_particle[i];
        if (pParticle != NULL)
        {
            if (pParticle->IsAlive())
            {
                pParticle->Update(deltaTime);
                if (pParticle->GetType() == ePT_Visual)
                {
                    Function<void(void)> func = Bind(*pParticle, &CParticle::PreRender);
                    CRenderManager::GetInstance()->SendQuadToCache(pParticle->GetPhysics()->GetWorldPos(),
                        pParticle->GetRadius(), 
                        pParticle->GetRadius(), 
                        pParticle->GetColor(), 
                        &func);
                }
            }
            else
            {
                UnRegister(pParticle);
            }
        }
    }
}
long GoodsTimerHandler::Register( CPlayer *pPlayer, const CGUID &goodsID, 
								 long lTrigerTime, long lInterval, void *arg )
{
	if( IsUnique() )
	{
		UnRegister( pPlayer, goodsID );
	}
	GoodsTimerTableT::iterator it = m_GoodsTimers.find( TimerKeyHandle( TimerKey( lTrigerTime ) ) );
	if( it == m_GoodsTimers.end() )
	{
		long lTimerID = GameManager::GetInstance()->Schedule( pPlayer, arg, lTrigerTime + timeGetTime(), lInterval );
		GoodsListT *pGoodsList = new GoodsListT();
		pGoodsList->push_back( goodsID );
		m_GoodsTimers.insert( GoodsTimerTableT::value_type( TimerKeyHandle( TimerKey( lTrigerTime ), lTimerID ), 
			pGoodsList ) );
		return lTimerID;
	}
	else
	{
		// add
		GoodsListT *pGoodsList = it->second;
		// be sure it's unique.
		GoodsListT::const_iterator git = std::find( pGoodsList->begin(), pGoodsList->end(), goodsID );
		if( git == pGoodsList->end() )
		{
			pGoodsList->push_back( goodsID );
		}		
	}
	return -1;
}
예제 #4
0
파일: TpnsMsg.cpp 프로젝트: lj8175/practice
CTpnsMsgManager::~CTpnsMsgManager()
{
    for(int i = 0; i < CMD_LIMIT; ++i)
    {
        UnRegister(i);
    }
}
예제 #5
0
void CTyHMProxy::OnEditProperties(CElecMapView * pView)
{
	CPropertySheet sheet( _T("对象..") );

	CTyHMProxyProp dlg;

	dlg.SetProp(m_hmname,m_display,m_bFlash,m_str1,
		          m_str2,m_color1,m_color2,m_FangXiang,
							m_TextHeight,m_TextWidth,m_JqWidth,
							m_TextFont,m_bTranslate1,m_bTranslate2);
	sheet.AddPage( (CPropertyPage*)&dlg );

	CPropPositionRect dlgpos;
	dlgpos.SetContent(m_x0,m_y0,m_x1,m_y1);
	sheet.AddPage( (CPropertyPage*)&dlgpos );


	if (sheet.DoModal() == IDOK)
	{
		Invalidate();
		UnRegister();
		dlg.GetProp(m_hmname,m_display,m_bFlash,m_str1,m_str2,
			          m_color1,m_color2,m_FangXiang,m_TextHeight,
								m_TextWidth,m_JqWidth,m_TextFont,m_bTranslate1,
								m_bTranslate2);
    if (strlen(m_str1)==0) strcpy(m_str1," ");
    if (strlen(m_str2)==0) strcpy(m_str2," ");

		dlgpos.GetContent(m_x0,m_y0,m_x1,m_y1);
		SetModifiedFlag();
		Invalidate();
		Register(); 
		return;
	}
}
예제 #6
0
void C4ValueMapData::Reset()
{
	// unreg from name list (if using one)
	if (pNames) UnRegister();
	pNames = nullptr;
	// free data
	delete[] pData;
	pData = nullptr;
}
예제 #7
0
파일: event.cpp 프로젝트: jerett/eventloop
void Event::Cancel() noexcept {
  auto sp_dispatcher = dispatcher_.lock();

  if (sp_dispatcher) {
    sp_dispatcher->UnRegister(shared_from_this());
  } else {
    LOG(INFO) << "weak dispatcher is invalid now";
  }
}
예제 #8
0
    // Destructor
    //-----------------------------------------------------------------------------
    CPUTMesh::~CPUTMesh()
    {
        // un-register the streams of this mesh from OpenGL
        UnRegister();

        if(m_pVertexBufferObjectIDs)
        {
            delete [] m_pVertexBufferObjectIDs;
            m_pVertexBufferObjectIDs = NULL;
        }    
    }
예제 #9
0
void C4ValueMapData::Register(C4ValueMapNames *pnNames)
{
	// UnReg from old?
	if (pNames) UnRegister();

	if (pnNames) pnNames->Register(this);
	pNames = pnNames;

	// alloc data array
	ReAllocList();
}
예제 #10
0
void C4ValueMapNames::Reset()
{
	// unreg all data lists
	while (pFirst) UnRegister(pFirst);
	// free name list
	for (int32_t i = 0; i < iSize; i++)
		delete[] pNames[i];
	delete[] pNames;
	pNames = nullptr;
	iSize = 0;
}
예제 #11
0
hsKeyedObject::~hsKeyedObject()
{ 
    if( fpKey && fpKey->ObjectIsLoaded() )
    {
        // If our key is pointing to an object (presumably back to us),
        // then UnRegister will call SetObjectPtr(nil) will unregister the key (and us), which will
        // decrement our RefCnt. Unfortunately, we are here because of a call
        // to our destructor, in which case we don't want to go back into our
        // destructor again. So we'll just up the RefCnt, plKey::UnRegister will dec it back to 1.
        hsRefCnt_SafeRef(fpKey->ObjectIsLoaded());
    }
    UnRegister(); 
}
예제 #12
0
Object* HandlerServiceFactory::Create(
    const QString& serviceInterface, IServiceLocator* parentLocator,
    IServiceLocator* locator) const
{
  if (serviceInterface != qobject_interface_iid<IHandlerService*>())
  {
    return nullptr;
  }

  IWorkbenchLocationService* wls = locator->GetService<IWorkbenchLocationService>();
  IWorkbench* const wb = wls->GetWorkbench();
  if (wb == nullptr)
  {
    return nullptr;
  }

  Object* parent = parentLocator->GetService(serviceInterface);
  if (parent == nullptr)
  {
    ICommandService* commands = locator->GetService<ICommandService>();
    IEvaluationService* evals = locator->GetService<IEvaluationService>();
    auto   handlerService = new HandlerService(commands, evals, locator);
    handlerService->Register();
    handlerService->ReadRegistry();
    handlerService->UnRegister(false);
    return handlerService;
  }

  return nullptr;

  IWorkbenchWindow* const window = wls->GetWorkbenchWindow();
  IWorkbenchPartSite* const site = wls->GetPartSite();
  if (site == nullptr)
  {
    Expression::Pointer exp(new WorkbenchWindowExpression(window));
    return new SlaveHandlerService(dynamic_cast<IHandlerService*>(parent), exp);
  }

  if (SlaveHandlerService* slaveParent = dynamic_cast<SlaveHandlerService*>(parent))
  {
    Expression::Pointer parentExp = slaveParent->GetDefaultExpression();
    if (parentExp.Cast<ActivePartExpression>())
    {
      return new NestableHandlerService(dynamic_cast<IHandlerService*>(parent), parentExp);
    }
  }

  Expression::Pointer exp(new ActivePartExpression(site->GetPart().GetPointer()));
  return new SlaveHandlerService(dynamic_cast<IHandlerService*>(parent), exp);
}
예제 #13
0
CMasterFader::~CMasterFader()
{
	UnRegister();
	for (int i=0; i<NUM_FADERS; ++i)
		SAFE_DELETE(m_pHUDFader[i]);
}
예제 #14
0
//------------------------------------------------------------------------
CEGTrayIcon::~CEGTrayIcon(void)
{
	UnRegister();
}
예제 #15
0
파일: key.cpp 프로젝트: Jesna/jucpp
	Hotkey::~Hotkey(){
		UnRegister();
	}
예제 #16
0
파일: TpnsMsg.cpp 프로젝트: lj8175/practice
void CTpnsMsgManager::Register(uint8_t cmd, CTpnsMsgBase* pPrototype)
{
    UnRegister(cmd);
    m_msgMap[cmd] = pPrototype;
}
예제 #17
0
DListener::~DListener()
{
	UnRegister();
}
//--------------------------------------------------------------------------------------------------
// Name: ~CLetterBoxHudEventListener
// Desc: Destructor
//--------------------------------------------------------------------------------------------------
CLetterBoxHudEventListener::~CLetterBoxHudEventListener()
{
	UnRegister();
}//-------------------------------------------------------------------------------------------------
예제 #19
0
plTempKey::~plTempKey() 
{ 
    UnRegister();
    delete fObjectPtr;
    fObjectPtr = nil;
}
예제 #20
0
CListener::~CListener()
{
	UnRegister();
}
void NFCGameServerToWorldModule::OnClientDisconnect( const int nAddress )
{
    UnRegister();
}
예제 #22
0
    // Register the buffer with OpenGL
    //-----------------------------------------------------------------------------
    CPUTResult CPUTMesh::Register(void** ppLayout)
    {
        CPUTResult result;
        result = UnRegister();
        if(CPUTFAILED(result))
            return result;

        int NumberOfVertexStreamsInThisMesh = GetVertexStreamCount();
        int NumberOfTotalStreamsInThisMesh=NumberOfVertexStreamsInThisMesh;

        // if indexed, we need one additional vbo
        if(IsIndexedMesh())
            NumberOfTotalStreamsInThisMesh++;

        // allocate the variables we'll need for this operation
        //m_ppDXBufferObjects = new ID3D11Buffer*[NumberOfVertexStreamsInThisMesh];
        //D3D11_INPUT_ELEMENT_DESC* layout = new D3D11_INPUT_ELEMENT_DESC[ NumberOfVertexStreamsInThisMesh ];
        //m_pStreamStrides = new UINT[NumberOfVertexStreamsInThisMesh];
        //m_pStreamOffsets = new UINT[NumberOfVertexStreamsInThisMesh];

        // generate 1 VAO (vertex array object) to hold all these streams
        glGenVertexArrays(1, &m_VertexArrayObjectID);

        // Bind VAO so you can 
        glBindVertexArray(m_VertexArrayObjectID);

        // generate 'stream' slots
        m_pVertexBufferObjectIDs = new GLuint[NumberOfTotalStreamsInThisMesh];   

        glGenBuffers(NumberOfTotalStreamsInThisMesh, m_pVertexBufferObjectIDs);


        for(int j=0; j<NumberOfVertexStreamsInThisMesh; j++)
        {
            // register each stream of each mesh, storing it's DX object pointer
            CPUTMeshStream* stream = GetVertexStream(j);

            if(CPUT_STREAM_ELEMENT_LAYOUT_UNIFORM == stream->GetStreamElementLayoutType())
            {
                // non-indexed
                CPUTMeshStreamUniform* uniformStream = (CPUTMeshStreamUniform*) stream;

                // deterimine the number of components per generic vertex attribute. Must be 1, 2, 3, or 4.  


                // bind this stream's data
                GLenum glDataType;
                void* pData = NULL;
                glDataType = ConvertCPUTFormatToGL(uniformStream->GetDataFormatElementType());
                glBindBuffer(GL_ARRAY_BUFFER, m_pVertexBufferObjectIDs[j]);
                uniformStream->Lock(&pData);
                glBufferData(GL_ARRAY_BUFFER, uniformStream->GetDataElementBlockSize() * uniformStream->GetNumberVerticies(), pData, GL_STATIC_DRAW);
                uniformStream->Unlock();
                glVertexAttribPointer((GLuint)j, uniformStream->GetNumberDataFormatElements(), glDataType, GL_FALSE, 0, 0); 
                glEnableVertexAttribArray(j); // slot number

                // Store the number of verticies
                // TODO: BUG - what if there diff number of elements/stream?
                m_NumberOfVerticies = uniformStream->GetNumberVerticies();

            } 
            else if(CPUT_STREAM_ELEMENT_LAYOUT_FLEXIBLE == stream->GetStreamElementLayoutType())
            {
                // TODO: fill this out with flexible streams
            }
            else
            {
                // TODO: ERROR
            }
        }

        // register any index stream (if there is one)
        if(IsIndexedMesh())
        {
            CPUTMeshStream* stream = GetIndexStream();

            if(CPUT_STREAM_ELEMENT_LAYOUT_UNIFORM == stream->GetStreamElementLayoutType())
            {
                void* pData = NULL;
                CPUTMeshStreamUniform* uniformStream = (CPUTMeshStreamUniform*) stream;

                // bind index stream and fill data
                // last m_pVertexBufferObjectID[] is always the Index buffer (if there is one)
                glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_pVertexBufferObjectIDs[NumberOfTotalStreamsInThisMesh-1]);
                uniformStream->Lock(&pData);
                glBufferData(GL_ELEMENT_ARRAY_BUFFER, uniformStream->GetDataElementBlockSize() * uniformStream->GetNumberVerticies(), pData, GL_STATIC_DRAW);
                uniformStream->Unlock();
                // this is an indexed mesh, so draw as such
                m_MeshDrawingType = CPUT_STREAM_TYPE_INDEX;
                m_NumberOfVerticies = uniformStream->GetNumberVerticies();
            }
        }

        // unbind what we were doing
        // todo: would be better to restore the user's state instead of just blast over it with 0
        glBindVertexArray(0);

        return CPUT_SUCCESS;
    }
예제 #23
0
 inline int UnRegister(ServiceT* pService)
 {
     return UnRegister(&pService->m_ServerInterface);
 }
예제 #24
0
void CNEOMemPoolWithLock::Free(void *pBlock)
{
    if(m_pMemPool)
        m_pMemPool->Free(pBlock);
    UnRegister(pBlock);
}