本文整理汇总了C++中ogre::FileInfoListPtr类的典型用法代码示例。如果您正苦于以下问题:C++ FileInfoListPtr类的具体用法?C++ FileInfoListPtr怎么用?C++ FileInfoListPtr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FileInfoListPtr类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: mSpeed
//---------------------------------------------------------------------------------------------------------
Vehicle::Vehicle(const std::string &fileName,Ogre::SceneManager* sm,
Ogre::RenderWindow* win, NxScene* ns,
const Ogre::Vector3 pos, const Ogre::Quaternion ori):
mSpeed(0), mAngle(0),mAngleDelta(0),mTurnLeft(0),mTurnRight(0),mRollAngle(0)
{
//初始化各种变量
mSceneMgr = sm;
mWindow = win;
mOriginalPos = pos;
mOriginalQuat = ori;
mNxScene = ns;
//mVehicleInfo.loadFromFile("carinfo.cfg");
mDecalShadow = NULL;
VehicleWheel vw;
mWheels.push_back(vw);
mWheels.push_back(vw);
mWheels.push_back(vw);
mWheels.push_back(vw);
loadScene(fileName);
//load parameter data from file
Ogre::FileInfoListPtr fp =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo("Popular", fileName + ".vpf");
Ogre::String total = fp->back().archive->getName() + "\\" + fileName + ".vpf";
mVehicleParam.loadFromFile(total);
refreshParameter();
mCarNode = mBaseCarNode;
//创建摄像机节点
mCameraDerivedNode = mCarNode->createChildSceneNode(Ogre::Vector3(0.0f, mBoundingBox.getSize().y, -mBoundingBox.getSize().z*2));
mVehicleCamer = new VehicleCamera(fileName + "VehicleCamera", mWindow, mSceneMgr);
mVehicleCamer->setTarget(mCameraDerivedNode, mCarNode);
mVehicleCamer->setTightness(2.5f);
//获取VehicleCamera计算后得到的CameraNode
mCameraNode = mVehicleCamer->getCameraNode();
//创建车的附加物体外设
createPeriphery();
CompositorManager::getSingleton().addCompositor(mWindow->getViewport(0), "Radial Blur");
CompositorManager::getSingleton().setCompositorEnabled(mWindow->getViewport(0), "Radial Blur", false);
tforce = ttortue = NxVec3(0, 0, 0);
isJet = false;
}
开发者ID:flair2005,项目名称:Racing-Game,代码行数:51,代码来源:Vehicle.cpp
示例2: setOperation
OgreNetworkReply::OgreNetworkReply(const QNetworkRequest &request)
{
setOperation(QNetworkAccessManager::GetOperation);
setRequest(request);
setUrl(request.url());
QString path = request.url().toString(QUrl::RemoveScheme);
// Remote slashes at the beginning
while (path.startsWith('/'))
path = path.mid(1);
qDebug() << "Opening" << path << "from ogre resource.";
Ogre::ResourceGroupManager &resourceManager = Ogre::ResourceGroupManager::getSingleton();
qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError");
/* Is it a directory? */
Ogre::FileInfoListPtr fileInfo = resourceManager.findResourceFileInfo("General", path.toStdString(), true);
if (fileInfo->size() > 0) {
QString msg = QString("Cannot open %1: Path is a directory").arg(path);
setError(ContentOperationNotPermittedError, msg);
QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection,
Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ContentOperationNotPermittedError));
QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection);
return;
}
try {
mDataStream = resourceManager.openResource(path.toStdString());
} catch (Ogre::FileNotFoundException &e) {
qWarning("Couldn't find %s: %s", qPrintable(path), e.getFullDescription().c_str());
setError(ContentNotFoundError, "Couldn't find " + path);
QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection,
Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ContentNotFoundError));
QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection);
return;
}
open(QIODevice::ReadOnly);
setHeader(QNetworkRequest::ContentLengthHeader, mDataStream->size());
QMetaObject::invokeMethod(this, "metaDataChanged", Qt::QueuedConnection);
QMetaObject::invokeMethod(this, "downloadProgress", Qt::QueuedConnection,
Q_ARG(qint64, mDataStream->size()), Q_ARG(qint64, mDataStream->size()));
QMetaObject::invokeMethod(this, "readyRead", Qt::QueuedConnection);
QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection);
}
开发者ID:GrognardsFromHell,项目名称:EvilTemple-Native,代码行数:50,代码来源:ogrenetworkaccessmanager.cpp
示例3:
const VectorString& Ogre2DataManager::getDataListNames(const std::string& _pattern, bool _fullpath)
{
static VectorString result;
result.clear();
VectorString search;
if (mAllGroups)
{
Ogre::StringVector sp = Ogre::ResourceGroupManager::getSingleton().getResourceGroups();
search.reserve(sp.size());
for (size_t i = 0; i < sp.size(); i++)
search.push_back(sp[i]);
}
else
search.push_back(mGroup);
std::vector<Ogre::FileInfoListPtr> pFileInfos;
int resultSize = 0;
for (size_t i = 0; i < search.size(); i++)
{
Ogre::FileInfoListPtr pFileInfo = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(search[i], _pattern);
resultSize += pFileInfo->size();
if (!pFileInfo->empty())
pFileInfos.push_back(pFileInfo);
else
pFileInfo.setNull();
}
result.reserve(resultSize);
for (size_t i = 0; i < pFileInfos.size(); i++)
{
Ogre::FileInfoListPtr pFileInfo = pFileInfos[i];
for (Ogre::FileInfoList::iterator fi = pFileInfo->begin(); fi != pFileInfo->end(); ++fi )
{
if (fi->path.empty())
{
bool found = false;
for (VectorString::iterator iter = result.begin(); iter != result.end(); ++iter)
{
if (*iter == fi->filename)
{
found = true;
break;
}
}
if (!found)
{
result.push_back(_fullpath ? fi->archive->getName() + "/" + fi->filename : fi->filename);
}
}
}
pFileInfo.setNull();
}
return result;
}
开发者ID:DotWolff,项目名称:mygui,代码行数:59,代码来源:MyGUI_Ogre2DataManager.cpp
示例4: wxEnumProperty
void
ObjectPropertyEditor::onSelectObject(const Fairy::ObjectPtr& object)
{
mPropertiesViewer->GetGrid()->Clear();
mCurrentObject = object;
if (mObjNameList.GetCount()<=0)
{
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.obj");
for(Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
const Ogre::String name = it->filename;
mObjNameList.AddString(name.c_str());
}
}
const Fairy::PropertyList& properties = object->getProperties();
for (Fairy::PropertyList::const_iterator it = properties.begin(); it != properties.end(); ++it)
{
const Fairy::PropertyDef& propertyDef = *it;
Fairy::uint propertyFlags = object->getPropertyFlags(propertyDef.name);
wxPGId id;
if (propertyDef.name == "actor name")
{
wxPGProperty* property = NULL;
wxString name = propertyDef.name.c_str();
property = wxEnumProperty(name, name, mObjNameList);
property->SetValueFromString(propertyDef.defaultValue.c_str(),0);
id = AddPropertyRecursive(property);
}
else
{
id = AddPropertyRecursive(mPropertyManager->CreateProperty(propertyDef));
}
wxPGIdToPtr(id)->SetValueFromString(AS_STRING(object->getPropertyAsString(propertyDef.name)), wxPG_FULL_VALUE);
if (propertyFlags & Fairy::PF_READONLY)
{
mPropertiesViewer->DisableProperty(id);
}
}
mPropertiesViewer->Refresh();
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:49,代码来源:ObjectPropertyEditor.cpp
示例5: move
std::vector<std::wstring> ManipulatorEffect::GetAttachEffectMeshNames()
{
std::vector<std::wstring> ret;
Ogre::FileInfoListPtr fileinfo = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
"Effect", "*.mesh");
for(auto iter=fileinfo->begin(); iter!=fileinfo->end(); ++iter)
{
const Ogre::FileInfo& info = *iter;
ret.push_back(Utility::EngineToUnicode(info.basename));
}
return std::move(ret);
}
开发者ID:mavaL,项目名称:MiniCraft,代码行数:15,代码来源:ManipulatorEffect.cpp
示例6: setFirstTextureGeneration
//.........这里部分代码省略.........
Ogre::String textureFileNameGeneration = getTextureFileNameGeneration (sequence); // returns full qualified filename
if (sequence == 0)
loadTextureGeneration(textureFileNameGeneration); // Don't check the filename if sequence is 0, because it is without path
else if (textureFileExists(textureFileNameGeneration))
loadTextureGeneration(textureFileNameGeneration);
}
//****************************************************************************/
void TextureLayer::loadTextureGeneration (const Ogre::String& filename)
{
// Assume the filename exists
mTextureOnWhichIsPainted.load(filename, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
mPixelboxTextureOnWhichIsPainted = mTextureOnWhichIsPainted.getPixelBox(0, 0);
mTextureOnWhichIsPaintedHasAlpha = mTextureOnWhichIsPainted.getHasAlpha();
mTextureOnWhichIsPaintedWidth = mPixelboxTextureOnWhichIsPainted.getWidth();
mTextureOnWhichIsPaintedHeight = mPixelboxTextureOnWhichIsPainted.getHeight();
// In theory, createCarbonCopyTexture() of all related paintlayers should be called,
// but the texture size doesn't change in practice.
blitTexture();
}
//****************************************************************************/
void TextureLayer::saveTextureGeneration (void)
{
// Increase the sequence
++mMaxSequence;
Ogre::String textureFileNameGeneration = getTextureFileNameGeneration (mMaxSequence); // returns full qualified filename
// Saving the Image must be done in the background, otherwise the painting stutters
QThread* thread = new QThread;
TextureSaveWorker* textureSaveWorker = new TextureSaveWorker (mTextureOnWhichIsPainted, textureFileNameGeneration);
textureSaveWorker->moveToThread(thread);
connect(thread, SIGNAL(started()), textureSaveWorker, SLOT(saveImage()));
connect(textureSaveWorker, SIGNAL(finished()), thread, SLOT(quit()));
connect(textureSaveWorker, SIGNAL(finished()), textureSaveWorker, SLOT(deleteLater()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
thread->start();
}
//****************************************************************************/
const Ogre::String& TextureLayer::saveTextureWithTimeStampToImportDir (void)
{
Ogre::String strippedTextureFileName = mTextureFileName;
Ogre::String extension = mTextureFileName;
strippedTextureFileName.erase(strippedTextureFileName.find_last_of("."), Ogre::String::npos); // Remove extension
if (strippedTextureFileName.find("_hlms") != Ogre::String::npos)
strippedTextureFileName.erase(strippedTextureFileName.find("_hlms"), Ogre::String::npos); // Remove earlier hlms editor additions
extension.erase(0, extension.find_last_of("."));
mHelperString = strippedTextureFileName +
"_hlms" +
Ogre::StringConverter::toString((size_t)time(0)) +
extension;
mTextureOnWhichIsPainted.save(DEFAULT_IMPORT_PATH.toStdString() + mHelperString); // Saving to the import dir doesn't have to be in the background
return mHelperString; // Return the basename
}
//****************************************************************************/
const Ogre::String& TextureLayer::getTextureFileNameGeneration (int sequence, bool fullQualified)
{
mHelperString = mTextureFileName;
// Do not go beyond the max sequence number
sequence = sequence > mMaxSequence ? mMaxSequence : sequence;
if (sequence > 0)
{
// Do not go below sequence number 1 (otherwise the original mTextureFileName (without path) is returned)
Ogre::String strippedTextureFileName = mTextureFileName;
Ogre::String extension = mTextureFileName;
strippedTextureFileName.erase(strippedTextureFileName.find_last_of("."), Ogre::String::npos);
extension.erase(0, extension.find_last_of("."));
mHelperString = strippedTextureFileName +
Ogre::StringConverter::toString(sequence) +
extension;
if (fullQualified)
mHelperString = TEMP_PATH + mHelperString;
}
return mHelperString;
}
//****************************************************************************/
bool TextureLayer::isTextureFileNameDefinedAsResource (const Ogre::String& filename)
{
Ogre::String path;
Ogre::FileInfoListPtr list = Ogre::ResourceGroupManager::getSingleton().listResourceFileInfo(Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) ;
Ogre::FileInfoList::iterator it;
Ogre::FileInfoList::iterator itStart = list->begin();
Ogre::FileInfoList::iterator itEnd = list->end();
for(it = itStart; it != itEnd; ++it)
{
Ogre::FileInfo& fileInfo = (*it);
if (fileInfo.basename == filename || fileInfo.filename == filename)
return true;
}
return false;
}
开发者ID:spookyboo,项目名称:HLMSEditor,代码行数:101,代码来源:texturelayer.cpp
示例7: wxT
void
ReshapeDialog::ReloadTextureList(void)
{
if (!Ogre::ResourceGroupManager::getSingletonPtr())
return;
Ogre::Codec::CodecIterator it = Ogre::Codec::getCodecIterator();
while (it.hasMoreElements())
{
const Ogre::String& ext = it.peekNextKey();
Ogre::Codec* codec = it.getNext();
if (codec->getDataType() != "ImageData")
continue;
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
AS_STRING(mResourceGroup),
"*." + ext);
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
Ogre::String path, baseName;
Ogre::StringUtil::splitFilename(it->filename, baseName, path);
// 把相对路径的最后一个/去掉
if (!path.empty() && path[path.length()-1] == '/')
path.erase(path.length() - 1);
Ogre::String value;
if(path.empty())
{
value = baseName;
}
else
{
value = path + "/" + baseName;
}
mCmbTexture->AppendString( wxT(baseName) );
pathNameMap.insert(make_pair(baseName,value));
}
}
}
开发者ID:rvpoochen,项目名称:wxsj2,代码行数:47,代码来源:ReshapeDialog.cpp
示例8:
const Ogre::StringVector& ManipulatorTerrain::GetAllLayerTexThumbnailNames()
{
m_vecLayerTex.clear();
Ogre::FileInfoListPtr fileinfo = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
"TerrainTextures", "*.png");
int i = 0;
m_vecLayerTex.resize(fileinfo->size());
for (auto iter=fileinfo->begin(); iter!=fileinfo->end(); ++iter)
{
const Ogre::FileInfo& info = (*iter);
m_vecLayerTex[i++] = info.archive->getName() + "/" + info.filename;
}
return m_vecLayerTex;
}
开发者ID:mavaL,项目名称:MiniCraft,代码行数:17,代码来源:ManipulatorTerrain.cpp
示例9: resolveFilePathForMesh
std::string AssetsManager::resolveFilePathForMesh(Ogre::MeshPtr meshPtr)
{
Ogre::ResourceGroupManager& manager = Ogre::ResourceGroupManager::getSingleton();
const std::multimap<std::string, std::string>& locations = EmberOgre::getSingleton().getResourceLocations();
for (std::multimap<std::string, std::string>::const_iterator I = locations.begin(); I != locations.end(); ++I) {
std::string group = I->first;
std::string fileName = meshPtr->getName();
Ogre::FileInfoListPtr files = manager.findResourceFileInfo(group, fileName, false);
for (Ogre::FileInfoList::const_iterator J = files->begin(); J != files->end(); ++J) {
if (J->filename == fileName) {
return I->second + J->filename;
}
}
}
return "";
}
开发者ID:Laefy,项目名称:ember,代码行数:18,代码来源:AssetsManager.cpp
示例10: openFile
void SoundBank::openFile(std::string path, std::string id, int index)
{
std::string foundPath = path;
Ogre::ResourceGroupManager* groupManager = Ogre::ResourceGroupManager::getSingletonPtr() ;
Ogre::String group = groupManager->findGroupContainingResource(path) ;
Ogre::FileInfoListPtr fileInfos = groupManager->findResourceFileInfo(group,foundPath);
Ogre::FileInfoList::iterator it = fileInfos->begin();
if(it != fileInfos->end())
{
foundPath = it->archive->getName() + "/" + foundPath;
}
else
{
foundPath = "";
}
this->addSound(new SoundChunk(foundPath), id, index);
}
开发者ID:simonkwong,项目名称:Shamoov,代码行数:18,代码来源:Sound.cpp
示例11: findFilePath
std::string findFilePath(const std::string& filename)
{
// on demand init
Model::initRessources() ;
std::string foundPath = filename;
Ogre::ResourceGroupManager* groupManager = Ogre::ResourceGroupManager::getSingletonPtr() ;
Ogre::String group = groupManager->findGroupContainingResource(filename) ;
Ogre::FileInfoListPtr fileInfos = groupManager->findResourceFileInfo(group,foundPath);
Ogre::FileInfoList::iterator it = fileInfos->begin();
if(it != fileInfos->end())
{
foundPath = it->archive->getName() + "/" + foundPath;
foundPath;
}
else
foundPath = "";
return foundPath;
}
开发者ID:BackupTheBerlios,项目名称:projet-univers-svn,代码行数:20,代码来源:manager.cpp
示例12: kXml
KBOOL Kylin::PathwayLoader::Load( KCCHAR* pScene )
{
Ogre::FileInfoListPtr resPtr = Ogre::ResourceGroupManager::getSingletonPtr()->findResourceFileInfo("General", pScene);
Ogre::FileInfo fInfo = (*(resPtr->begin()));
KSTR sName = StringUtils::replace(pScene,".xml","_pathway.xml");
KSTR sPath = fInfo.archive->getName();
sPath += "/" + sName;
XmlStream kXml(sPath.data());
if (!kXml.Open(XmlStream::Read))
return false;
KBOOL bScene = kXml.SetToFirstChild("pathway");
while (bScene)
{
Pathway* pPathway = KNEW Pathway;
KUINT id = kXml.GetAttrInt("id");
KBOOL bTurnback = kXml.GetAttrBool("turnback");
KBOOL bPoint = kXml.SetToFirstChild("point");
while (bPoint)
{
KFLOAT fX = kXml.GetAttrFloat("x");
KFLOAT fZ = kXml.GetAttrFloat("z");
pPathway->Add(KPoint3(fX,0,fZ));
bPoint = kXml.SetToNextChild("point");
}
m_kPathwayMap.insert(std::pair<KUINT,Pathway*>(id,pPathway));
bScene = kXml.SetToNextChild("pathway");
}
kXml.Close();
return true;
}
开发者ID:dzw,项目名称:kylin001v,代码行数:41,代码来源:PathwayLoader.cpp
示例13: InitMaterialCombo
void MaterialEditorDialog::InitMaterialCombo(void)
{
typedef std::list<Ogre::String> MaterialFileNameList;
MaterialFileNameList materialFileNameList;
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.material");
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
if ( it->archive->getName() == EFFECT_PATH)
{
materialFileNameList.push_back(it->filename);
}
}
Ogre::ResourceManager::ResourceMapIterator resourceMapIterator = Ogre::MaterialManager::getSingleton().getResourceIterator();
while ( resourceMapIterator.hasMoreElements() )
{
Ogre::String matName = resourceMapIterator.peekNextValue()->getName();
for ( MaterialFileNameList::iterator i = materialFileNameList.begin();
i != materialFileNameList.end(); ++i )
{
if ( *i == resourceMapIterator.peekNextValue()->getOrigin() )
{
mMaterialComboBox->Append(matName);
break;
}
}
resourceMapIterator.moveNext();
}
}
开发者ID:jjiezheng,项目名称:pap_full,代码行数:39,代码来源:WXMaterialEditorDialog.cpp
示例14: open
//-----------------------------------------------------------------------
DataStreamPtr ZipArchive::open(const String& filename, bool readOnly)
{
// zziplib is not threadsafe
OGRE_LOCK_AUTO_MUTEX;
String lookUpFileName = filename;
// Format not used here (always binary)
ZZIP_FILE* zzipFile =
zzip_file_open(mZzipDir, lookUpFileName.c_str(), ZZIP_ONLYZIP | ZZIP_CASELESS);
if (!zzipFile) // Try if we find the file
{
const Ogre::FileInfoListPtr fileNfo = findFileInfo(lookUpFileName, true);
if (fileNfo->size() == 1) // If there are more files with the same do not open anyone
{
Ogre::FileInfo info = fileNfo->at(0);
lookUpFileName = info.path + info.basename;
zzipFile = zzip_file_open(mZzipDir, lookUpFileName.c_str(), ZZIP_ONLYZIP | ZZIP_CASELESS); // When an error happens here we will catch it below
}
}
if (!zzipFile)
{
int zerr = zzip_error(mZzipDir);
String zzDesc = getZzipErrorDescription((zzip_error_t)zerr);
LogManager::getSingleton().logMessage(
mName + " - Unable to open file " + lookUpFileName + ", error was '" + zzDesc + "'", LML_CRITICAL);
// return null pointer
return DataStreamPtr();
}
// Get uncompressed size too
ZZIP_STAT zstat;
zzip_dir_stat(mZzipDir, lookUpFileName.c_str(), &zstat, ZZIP_CASEINSENSITIVE);
// Construct & return stream
return DataStreamPtr(OGRE_NEW ZipDataStream(lookUpFileName, zzipFile, static_cast<size_t>(zstat.st_size)));
}
开发者ID:Ketzer2002,项目名称:meridian59-engine,代码行数:40,代码来源:OgreZip.cpp
示例15: loadSceneFile
bool GameState::loadSceneFile(Ogre::String filename,NXU::NXU_FileType type)
{
bool success = false;
if (mPhysicsSDK)
{
Ogre::String totalname;
//获得完整文件路径
Ogre::FileInfoListPtr svp = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo("Popular", filename);
totalname = svp->back().archive->getName() + "/" + filename;
Ogre::StringVector sv = Ogre::StringUtil::split(totalname, "/");
totalname = sv[0];
for (unsigned int i = 1;i<sv.size();i++)
totalname += "\\\\" + sv[i];
//读取场景
NXU::NxuPhysicsCollection *c = NXU::loadCollection(totalname.c_str(), type );
if ( c )
{
if (mPhysicScene)
{
mPhysicsSDK->releaseScene(*mPhysicScene);
}
if (mPhysicsSDK)
{
success = NXU::instantiateCollection( c, *mPhysicsSDK, 0, 0, 0);
mPhysicScene = mPhysicsSDK->getScene(0);
}
NXU::releaseCollection(c);
}
else
{
}
}
return success;
}
开发者ID:flair2005,项目名称:Racing-Game,代码行数:39,代码来源:GameState.cpp
示例16: loadImpl
// Carga del recurso.
void Track::loadImpl() {
Ogre::LogManager* pLogManager = Ogre::LogManager::getSingletonPtr();
// Ruta al archivo.
Ogre::FileInfoListPtr info;
info = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(mGroup, mName);
for (Ogre::FileInfoList::const_iterator i = info->begin(); i != info->end(); ++i) {
_path = i->archive->getName() + "/" + i->filename;
}
// Archivo no encontrado...
if (_path == "") {
pLogManager->logMessage("Track::loadImpl() Imposible cargar el recurso de sonido.");
throw (Ogre::Exception(Ogre::Exception::ERR_FILE_NOT_FOUND,
"Archivo no encontrado", "Track::loadImpl()"));
}
cout << "\n\nPath: " << _path << "\n\n" << endl;
// Cargar el recurso de sonido.
if ((_pTrack = Mix_LoadMUS(_path.c_str())) == NULL) {
pLogManager->logMessage("Track::loadI() Imposible cargar el recurso de sonido.");
throw (Ogre::Exception(Ogre::Exception::ERR_FILE_NOT_FOUND,
"Archivo no encontrado", "Track::loadI()"));
}
// Cálculo del tamaño del recurso de sonido.
std::ifstream stream;
char byteBuffer;
stream.open(_path.c_str(), std::ios_base::binary);
while (stream >> byteBuffer) {
_size++;
}
stream.close();
}
开发者ID:RubenCardos,项目名称:CrackShot,代码行数:37,代码来源:Track.cpp
示例17: wxFlexGridSizer
void
MaterialPreviewDialog::InitPreviewGrids(void)
{
wxFlexGridSizer *item0 = new wxFlexGridSizer( 6, 0, 0 );
typedef std::list<Ogre::String> MaterialFileNameList;
MaterialFileNameList materialFileNameList;
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
"*.material");
for (Ogre::FileInfoList::const_iterator it = fileInfoList->begin(); it != fileInfoList->end(); ++it)
{
if ( it->archive->getName() == EFFECT_PATH)
{
materialFileNameList.push_back(it->filename);
}
}
wxComboBox *matCombo = mParentDialog->mMaterialComboBox;
assert (matCombo);
for ( int i=0; i<matCombo->GetCount(); ++i )
{
Ogre::String matName = matCombo->GetString(i);
Ogre::MaterialPtr mat = Ogre::MaterialManager::getSingleton().getByName(matName);
if (mat.isNull())
{
}
else
{
size_t numOfTex = mat->getTechnique(0)->getPass(0)->getNumTextureUnitStates();
if (numOfTex > 0)
{
Ogre::String texName = mat->getTechnique(0)->getPass(0)->getTextureUnitState(0)->getTextureName();
if (texName.empty() == false)
{
wxBoxSizer *item1 = new wxBoxSizer( wxVERTICAL );
wxStaticBitmap *item2 = new wxStaticBitmap( this, ID_STATICBITMAP, TexturePreview( 0 ), wxDefaultPosition, wxSize(64,64) );
item1->Add( item2, 0, wxALIGN_CENTER|wxALL, 5 );
wxStaticText *item3 = new wxStaticText( this, ID_TEXT_MATERIAL_NAME, _("text"), wxDefaultPosition, wxDefaultSize, 0 );
item1->Add( item3, 0, wxALIGN_CENTER|wxALL, 5 );
wxButton *item4 = new wxButton( this, ID_BUTTON_USE, _("Use"), wxDefaultPosition, wxDefaultSize, 0 );
item1->Add( item4, 0, wxALIGN_CENTER|wxALL, 5 );
item0->Add( item1, 0, wxALIGN_CENTER|wxALL, 5 );
buildPreviewBitmap( texName );
item2->SetBitmap(mCurrentPreviewImage);
item3->SetLabel(texName.c_str());
item4->SetLabel(matName.c_str());
}
}
}
}
this->SetSizer( item0 );
item0->SetSizeHints( this );
}
开发者ID:ueverything,项目名称:mmo-resourse,代码行数:66,代码来源:WXMaterialPreviewDialog.cpp
示例18: if
//.........这里部分代码省略.........
int option_id = it != co.possibleValues.end() ? std::distance(co.possibleValues.begin(), it) : 0;
if (ImGui::Combo(co.name.c_str(), &option_id, option_values.c_str()))
{
rs->setConfigOption(co.name, co.possibleValues[option_id]);
if (rs->validateConfigOptions().empty())
{
ogre_root->saveConfig();
}
}
}
}
else if (m_tab == SettingsTab::GENERAL)
{
ImGui::TextDisabled(_LC("GameSettings", "Application settings"));
#ifndef NOLANG
std::vector<std::pair<std::string, std::string>> languages = LanguageEngine::getSingleton().getLanguages();
std::string lang_values;
for (auto value : languages)
{
lang_values += value.first + '\0';
}
const auto it = std::find_if(languages.begin(), languages.end(),
[](const std::pair<std::string, std::string>& l) { return l.second == App::app_language.GetActive(); });
int lang_selection = it != languages.end() ? std::distance(languages.begin(), it) : 0;
if (ImGui::Combo(_LC("GameSettings", "Language"), &lang_selection, lang_values.c_str()))
{
App::app_language.SetActive(languages[lang_selection].second.c_str());
LanguageEngine::getSingleton().setup();
}
#endif
// Country selection
static Ogre::FileInfoListPtr fl = Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo("FlagsRG", "*");
if (!fl->empty())
{
static std::vector<std::string> countries;
if (countries.empty())
{
for (auto& file : *fl)
{
std::string country = Ogre::StringUtil::replaceAll(file.filename, ".png", "");
if (country.size() == 2) // RoR protocol limitation
{
countries.push_back(country);
}
}
std::sort(countries.begin(), countries.end());
}
std::string country_values;
for (auto value : countries)
{
country_values += value + '\0';
}
const auto it = std::find(countries.begin(), countries.end(), std::string(App::app_country.GetActive()));
int country_selection = it != countries.end() ? std::distance(countries.begin(), it) : 0;
if (ImGui::Combo(_LC("GameSettings", "Country"), &country_selection, country_values.c_str()))
{
App::app_country.SetActive(countries[country_selection].c_str());
}
}
int sshot_select = (std::strcmp(App::app_screenshot_format.GetActive(),"jpg") == 0) ? 1 : 0; // Hardcoded; TODO: list available formats.
/* Screenshot format: Can be png or jpg*/
if (ImGui::Combo(_LC("GameSettings", "Screenshot format"), &sshot_select, "png\0jpg\0\0"))
开发者ID:RigsOfRods,项目名称:rigs-of-rods,代码行数:67,代码来源:GUI_GameSettings.cpp
示例19: initialize
void gkDebugScreen::initialize()
{
if (m_isInit)
return;
try
{
m_font = new gkBuiltinFont;
Ogre::FontPtr fp = Ogre::FontManager::getSingleton().create("<gkBuiltin/Font>", GK_BUILTIN_GROUP, true, m_font);
fp->load();
#define FONT_MATERIAL 1
#if FONT_MATERIAL
#ifndef OGREKIT_USE_OLD
gkString ShareMaterail = "Examples/BumpMapping/MultiLight";
static int Use_Init_Once = 0;
if(Use_Init_Once < 2)
{
Ogre::FileInfoListPtr fileInfoList =
Ogre::ResourceGroupManager::getSingleton().findResourceFileInfo(
"",
"*.material");
for (Ogre::FileInfoList::const_iterator cit=fileInfoList->begin();
cit != fileInfoList->end();
++cit) {
const Ogre::String& name = cit->filename;
const Ogre::String& basename = cit->basename;
Ogre::String sType = cit->archive->getType();
Ogre::String sPath = cit->archive->getName();
if (sType=="Zip" || sType=="FileSystem") {
Ogre::DataStreamPtr pData=
Ogre::ResourceGroupManager::getSingleton().openResource(
basename,"");
Ogre::MaterialManager::getSingleton().parseScript(
pData, "");
Ogre::MaterialManager::getSingleton().load(basename,"");
}
}
Use_Init_Once++;
}
#endif
Ogre::MaterialPtr ShareMaterailPtr = Ogre::MaterialManager::getSingleton().getByName(ShareMaterail, "");
if (!ShareMaterailPtr.isNull())
{
ShareMaterailPtr->load();
//ShareMaterailPtr->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->setNamedConstant("textureCount",1);
}
Ogre::MaterialPtr oma = Ogre::MaterialManager::getSingleton().getByName("Fonts/<gkBuiltin/Font>");
if (!oma.isNull())
{
Ogre::Pass* pass1 = oma->getTechnique(0)->getPass(0);
Ogre::GpuProgramPtr vsPtr = Ogre::HighLevelGpuProgramManager::getSingleton().getByName("FixVs");
if (vsPtr.isNull())
{
LogManager::getSingleton().logMessage("GpuProgramPtr NULL");
}
gkString VertexProgramName = "FixVs";
gkString FragmentProgramName ="FixPs";
if (pass1)
{
pass1->setVertexProgram(VertexProgramName);
pass1->setFragmentProgram(FragmentProgramName);
Ogre::GpuProgramParametersSharedPtr vsParams = pass1->getVertexProgramParameters();
vsParams->copyMatchingNamedConstantsFrom(*ShareMaterailPtr->getTechnique(0)->getPass(0)->getVertexProgramParameters().get());
Ogre::GpuProgramParametersSharedPtr psParams = pass1->getFragmentProgramParameters();
psParams->copyMatchingNamedConstantsFrom(*ShareMaterailPtr->getTechnique(0)->getPass(0)->getFragmentProgramParameters().get());
//psParams->setNamedConstant("textureCount",1);
//psParams->setNamedConstant("AlphaValue",0.0f);
//vsParams->setNamedConstant("lightOpen",0);
LogManager::getSingleton().logMessage("set font es2.0");
}
}
#endif
Ogre::OverlayManager& mgr = Ogre::OverlayManager::getSingleton();
m_over = mgr.create("<gkBuiltin/gkDebugScreen>");
m_ele = mgr.createOverlayElement("TextArea", "<gkBuiltin/gkDebugScreen/TextArea>");
Ogre::OverlayContainer* cont = (Ogre::OverlayContainer*)mgr.createOverlayElement("BorderPanel", "<gkBuiltin/gkDebugScreen/Containter>");
cont->setMetricsMode(Ogre::GMM_PIXELS);
cont->setVerticalAlignment(Ogre::GVA_TOP);
const gkVector2& dims = gkWindowSystem::getSingleton().getMouse()->winsize;
m_ele->setMetricsMode(Ogre::GMM_PIXELS);
m_ele->setVerticalAlignment(Ogre::GVA_TOP);
m_ele->setPosition(0, 0);
m_ele->setDimensions(dims.x, dims.y);
Ogre::TextAreaOverlayElement* textArea = static_cast<Ogre::TextAreaOverlayElement*>(m_ele);
//.........这里部分代码省略.........
开发者ID:guozanhua,项目名称:github,代码行数:101,代码来源:gkDebugScreen.cpp
示例20: hasMoreElements
//.........这里部分代码省略.........
if (fname.empty())
{
gkLogMessage("BlendFile: File " << fname << " loading failed. File name is empty.");
return false;
}
#if OGREKIT_USE_BPARSE
utMemoryStream fs;
fs.open(fname.c_str(), utStream::SM_READ);
if (!fs.isOpen())
{
gkLogMessage("BlendFile: File " << fname << " loading failed. No such file.");
return false;
}
// Write contents and inflate.
utMemoryStream buffer(utStream::SM_WRITE);
fs.inflate(buffer);
m_file = new bParse::bBlenderFile((char*)buffer.ptr(), buffer.size());
m_file->parse(false);
if (!m_file->ok())
{
gkLogMessage("BlendFile: File " << fname << " loading failed. Data error.");
return false;
}
#else
m_file = new fbtBlend();
int status = m_file->parse(fname.c_str(), fbtFile::PM_COMPRESSED);
if (status != fbtFile::FS_OK)
{
delete m_file;
m_file = 0;
gkLogMessage("BlendFile: File " << fname << " loading failed. code: " << status);
//return false;
}
else
{
gkLogMessage("BlendFile: File " << fname << " loading end1" );
return true;
}
//gkLogMessage("BlendFile: File " << fname << " loading end" );
m_file = new fbtBlend();
Ogre::DataStreamPtr stream;
Ogre::ArchiveManager::ArchiveMapIterator beginItera = Ogre::ArchiveManager::getSingleton().getArchiveIterator();
while(beginItera.hasMoreElements())
{
typedef std::map<Ogre::String, Ogre::Archive*>::iterator ArchiveIterator;
ArchiveIterator arch = beginItera.current();
if (arch->second)
{
Ogre::FileInfoListPtr fileInfo = arch->second->findFileInfo(fname);
if (fileInfo->size() > 0)
{
stream = arch->second->open(fname);
gkLogMessage("BlendFile: File found create stream");
break;
}
}
beginItera.moveNext();
}
//gkLogMessage("malloc buffer");
unsigned char * buffer = new unsigned char[stream->size()];
//gkLogMessage(" stream->read ");
long sizeCount = stream->read(buffer,stream->size());
//gkLogMessage(" m_file->parse");
if(m_file) m_file->parse(buffer,sizeCount);
delete buffer;
//gkLogMessage(" m_file->parse end");
#endif
return true;
}
Blender::FileGlobal* gkBlendInternalFile::getFileGlobal()
{
GK_ASSERT(m_file);
#if OGREKIT_USE_BPARSE
return (Blender::FileGlobal*)m_file->getFileGlobal();
#else
return m_file->m_fg;
#endif
}
int gkBlendInternalFile::getVersion()
{
GK_ASSERT(m_file);
#if OGREKIT_USE_BPARSE
return m_file->getMain()->getVersion();
#else
return m_file->getVersion();
#endif
}
开发者ID:guozanhua,项目名称:github,代码行数:101,代码来源:gkBlendInternalFile.cpp
注:本文中的ogre::FileInfoListPtr类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论