//! called during the initialization of the entity void ParticleGenerator::Init() { super::Init(); m_Pool = snew MemoryPool(m_PoolSize); VertexBuffer* pVertexBuffer = GraphicsDriver::Instance()->CreateVertexBuffer(); pVertexBuffer->SetVertexFlag(Vertex3D::VF_Pos); pVertexBuffer->SetVertexFlag(Vertex3D::VF_Color); pVertexBuffer->SetName(GetClassName()); pVertexBuffer->SetDynamic(true); pVertexBuffer->SetApplyWorldTransforms(m_bApplyWorldTransform); if(GraphicExtensionHandler::Instance()->HasExtension(GraphicExtensionHandler::E_PointSprite)) { pVertexBuffer->SetPrimitiveType(GraphicsDriver::PT_Point); pVertexBuffer->SetVertices(snew Vertex3D[m_MaxParticles], m_MaxParticles); pVertexBuffer->SetRenderStateSetter(snew PointSpriteStateSetter(m_fParticleSize)); } else { pVertexBuffer->SetPrimitiveType(GraphicsDriver::PT_Triangle); pVertexBuffer->SetVertices(snew Vertex3D[m_MaxParticles*6], m_MaxParticles*6); pVertexBuffer->SetVertexFlag(Vertex3D::VF_UV); } GetComponent<GraphicComponent>()->SetVertexBuffer(pVertexBuffer); }
MemoryPool* MemoryPool::createPool(MemoryPool* parentPool, MemoryStats& stats) { if (!parentPool) { parentPool = getDefaultMemoryPool(); } return FB_NEW(*parentPool) MemoryPool(*parentPool, stats); }
static ib_status_t ibpp_transformation_translator( ib_mpool_t* mp, const ib_field_t* fin, const ib_field_t** fout, void *cbdata ) { try { ConstTransformation::transformation_t transformation = data_to_value<ConstTransformation::transformation_t>(cbdata); ConstField result = transformation(MemoryPool(mp), ConstField(fin)); *fout = result.ib(); } catch (...) { return convert_exception(); } return IB_OK; }
MemoryPool Engine::temporary_memory_pool() const { return MemoryPool(ib_engine_pool_temp_get(ib())); }
MemoryPool Engine::configuration_memory_pool() const { return MemoryPool(ib_engine_pool_config_get(ib())); }
MemoryPool Engine::main_memory_pool() const { return MemoryPool(ib_engine_pool_main_get(ib())); }
MemoryPool ConstConnection::memory_pool() const { return MemoryPool(ib()->mp); }
MemoryPool MemoryPool::remove_const(const ConstMemoryPool& cmp) { return MemoryPool(const_cast<ib_mpool_t*>(cmp.ib())); }
MemoryPool ConstField::memory_pool() const { return MemoryPool(ib()->mp); }
MemoryPool ConstTransaction::memory_pool() const { return MemoryPool(ib()->mp); }