本文整理汇总了C++中POVMS_Attribute::GetUCS2String方法的典型用法代码示例。如果您正苦于以下问题:C++ POVMS_Attribute::GetUCS2String方法的具体用法?C++ POVMS_Attribute::GetUCS2String怎么用?C++ POVMS_Attribute::GetUCS2String使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类POVMS_Attribute
的用法示例。
在下文中一共展示了POVMS_Attribute::GetUCS2String方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindFile
bool FileMessageHandler::FindFile(const list<Path>& lps, POVMS_Object& msg, POVMS_Object& result)
{
POVMS_List files;
Path path;
msg.Get(kPOVAttrib_ReadFile, files);
for(int i = 1; i <= files.GetListSize(); i++)
{
POVMS_Attribute attr;
files.GetNth(i, attr);
path = FindFilePath(lps, Path(attr.GetUCS2String()));
if(path.Empty() == false)
break;
}
result.SetUCS2String(kPOVAttrib_ReadFile, path().c_str());
return (path.Empty() == false);
}
示例2: SetOptions
// Sets the options to be used on the next render. Accepts a vfeRenderOptions
// instance as its only parameter, and returns any one of a number of possible
// error codes (and sets m_LastError), as documented below:
//
// vfeFailedToInitObject - this is an internal error
// vfeFailedToSetMaxThreads - self-explanatory
// vfeFailedToParseINI - an INI file specified could not be parsed
// vfeFailedToSetSource - the source file specified could not be set
// vfeFailedToParseCommand - a command-line option was invalid
// vfeNoInputFile - no input file specified either directly or via INI
// vfeRenderBlockSizeTooSmall - self-explanatory
// vfeFailedToWriteINI - a request to write the render options to an INI file failed
// vfeUnsupportedOptionCombination - unsupported option combination
//
// If vfeRenderOptions explicitly specifies a source file, it will override
// any set via a parsed INI file. Furthermore, any source file set via a
// command-line option overrides both of the above.
//
// Note that it is your responsibility to add any default INI files that should
// be processed to the INI file list; neither SetOptions() nor any other part
// of the VFE or POV-Ray code will do that for you. This includes non-platform
// specific files such as a potential povray.ini in the CWD.
int vfeSession::SetOptions (vfeRenderOptions& opts)
{
int err;
UCS2 str [MAX_PATH];
POVMSObject obj;
vfeProcessRenderOptions options(this);
m_OutputToFileSet = false;
m_UsingAlpha = false;
m_RenderingAnimation = false;
m_RealTimeRaytracing = false;
m_ClocklessAnimation = false;
m_RenderWidth = m_RenderHeight = 0;
ClearOptions();
if ((err = POVMSObject_New (&obj, kPOVObjectClass_RenderOptions)) != kNoErr)
return (m_LastError = vfeFailedToInitObject) ;
if ((err = POVMSUtil_SetInt (&obj, kPOVAttrib_MaxRenderThreads, opts.m_ThreadCount)) != kNoErr)
return (m_LastError = vfeFailedToSetMaxThreads) ;
// we set this here for potential use by the IO permissions path checking code
m_InputFilename = opts.m_SourceFile;
// most likely povray.ini will be the first INI file processed here (as it's included by default)
for (vector<UCS2String>::iterator i = opts.m_IniFiles.begin(); i != opts.m_IniFiles.end(); i++)
{
// we call TestAccessAllowed() here, even though ParseFile() will do it also, since if
// access is denied, the reason will not be obvious (ParseFile() just returns kCannotOpenFileErr).
if (!TestAccessAllowed (Path(*i), false))
return (m_LastError = vfeIORestrictionDeny);
if ((err = options.ParseFile (UCS2toASCIIString(*i).c_str(), &obj)) != kNoErr)
return (m_LastError = vfeFailedToParseINI) ;
// we keep this up to date since the IO permissions feature will use the current input
// filename to determine the path for default read/write permission in the scene dir.
int n = sizeof (str) ;
if ((err = POVMSUtil_GetUCS2String (&obj, kPOVAttrib_InputFile, str, &n)) == kNoErr)
if (m_InputFilename != str)
m_InputFilename = str;
}
// m_SourceFile overrides any source file set by the INI files
if (opts.m_SourceFile.empty() == false)
{
m_InputFilename = opts.m_SourceFile;
if ((err = POVMSUtil_SetUCS2String (&obj, kPOVAttrib_InputFile, opts.m_SourceFile.c_str())) != kNoErr)
return (m_LastError = vfeFailedToSetSource);
}
// any source file set on the command-line overrides a source file set another way
for (vector<string>::iterator i = opts.m_Commands.begin(); i != opts.m_Commands.end(); i++)
{
if ((err = options.ParseString (i->c_str(), &obj)) != kNoErr)
return (m_LastError = vfeFailedToParseCommand) ;
int n = sizeof (str) ;
if ((err = POVMSUtil_GetUCS2String (&obj, kPOVAttrib_InputFile, str, &n)) == kNoErr)
if (m_InputFilename != str)
m_InputFilename = str;
}
int n = sizeof (str) ;
if ((err = POVMSUtil_GetUCS2String (&obj, kPOVAttrib_InputFile, str, &n)) != kNoErr)
return (m_LastError = vfeNoInputFile);
m_InputFilename = str;
POVMSUtil_GetInt (&obj, kPOVAttrib_Width, &m_RenderWidth) ;
POVMSUtil_GetInt (&obj, kPOVAttrib_Height, &m_RenderHeight) ;
std::list<Path> libpaths;
POVMS_Object ropts (obj) ;
if (ropts.Exist (kPOVAttrib_LibraryPath))
{
POVMS_List pathlist;
ropts.Get (kPOVAttrib_LibraryPath, pathlist) ;
// we take the opportunity to remove any duplicates that are in the path list.
//.........这里部分代码省略.........