本文整理汇总了C++中idList::RemoveIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ idList::RemoveIndex方法的具体用法?C++ idList::RemoveIndex怎么用?C++ idList::RemoveIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类idList
的用法示例。
在下文中一共展示了idList::RemoveIndex方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RemoveModel
/*
=================
idRenderModelManagerLocal::RemoveModel
=================
*/
void idRenderModelManagerLocal::RemoveModel( idRenderModel* model )
{
int index = models.FindIndex( model );
if( index != -1 )
{
hash.RemoveIndex( hash.GenerateKey( model->Name(), false ), index );
models.RemoveIndex( index );
}
}
示例2: ExecuteCommandBuffer
/*
============
idCmdSystemLocal::ExecuteCommandBuffer
============
*/
void idCmdSystemLocal::ExecuteCommandBuffer( void ) {
int i;
char * text;
int quotes;
idCmdArgs args;
while( textLength ) {
if ( wait ) {
// skip out while text still remains in buffer, leaving it for next frame
wait--;
break;
}
// find a \n or ; line break
text = (char *)textBuf;
quotes = 0;
for ( i = 0; i < textLength; i++ ) {
if ( text[i] == '"' ) {
quotes++;
}
if ( !( quotes & 1 ) && text[i] == ';' ) {
break; // don't break if inside a quoted string
}
if ( text[i] == '\n' || text[i] == '\r' || text[i] == 0 ) {
break;
}
}
text[i] = 0;
if ( !idStr::Cmp( text, "_execTokenized" ) ) {
args = tokenizedCmds[ 0 ];
tokenizedCmds.RemoveIndex( 0 );
} else {
args.TokenizeString( text, false );
}
// delete the text from the command buffer and move remaining commands down
// this is necessary because commands (exec) can insert data at the
// beginning of the text buffer
if ( i == textLength ) {
textLength = 0;
memset (textBuf, 0, MAX_CMD_BUFFER);
} else {
i++;
textLength -= i;
memmove( text, text+i, textLength );
}
// execute the command line that we have already tokenized
ExecuteTokenizedString( args );
}
}
示例3: Sys_GetEvent
/*
================
Sys_GetEvent
================
*/
sysEvent_t Sys_GetEvent() {
SDL_Event ev;
sysEvent_t res = { };
byte key;
static const sysEvent_t res_none = { SE_NONE, 0, 0, 0, NULL };
// process any overflow.
if (event_overflow.Num() > 0)
{
res = event_overflow[0];
event_overflow.RemoveIndex(0);
return res;
}
// overflow text input.
static char *s = NULL;
static size_t s_pos = 0;
if (s) {
res.evType = SE_CHAR;
res.evValue = s[s_pos];
s_pos++;
if (!s[s_pos]) {
free(s);
s = NULL;
s_pos = 0;
}
return res;
}
static byte c = 0;
if (c) {
res.evType = SE_CHAR;
res.evValue = c;
c = 0;
return res;
}
bool getNext = true;
while (SDL_PollEvent(&ev) && getNext) {
getNext = false;
switch (ev.type) {
#ifdef __WINDOWS__ // on windows we need to grab the hwnd.
case SDL_SYSWMEVENT:
if (win32.hWnd == NULL)
{
win32.hWnd = ev.syswm.msg->msg.win.hwnd;
}
getNext = true; // try to get a decent event.
break;
#endif
case SDL_WINDOWEVENT:
switch (ev.window.event) {
case SDL_WINDOWEVENT_FOCUS_GAINED: {
// unset modifier, in case alt-tab was used to leave window and ALT is still set
// as that can cause fullscreen-toggling when pressing enter...
SDL_Keymod currentmod = SDL_GetModState();
int newmod = KMOD_NONE;
if (currentmod & KMOD_CAPS) // preserve capslock
newmod |= KMOD_CAPS;
SDL_SetModState((SDL_Keymod)newmod);
} // new context because visual studio complains about newmod and currentmod not initialized because of the case SDL_WINDOWEVENT_FOCUS_LOST
GLimp_GrabInput(GRAB_ENABLE | GRAB_REENABLE | GRAB_HIDECURSOR);
break;
case SDL_WINDOWEVENT_FOCUS_LOST:
GLimp_GrabInput(0);
break;
}
return res_none;
case SDL_KEYDOWN:
if (ev.key.keysym.sym == SDLK_RETURN && (ev.key.keysym.mod & KMOD_ALT) > 0) {
cvarSystem->SetCVarBool("r_fullscreen", !renderSystem->IsFullScreen());
PushConsoleEvent("vid_restart");
return res_none;
}
// fall through
case SDL_KEYUP:
key = mapkey(ev.key.keysym.sym);
if(!key) {
if (ev.key.keysym.scancode == SDL_SCANCODE_GRAVE) {
key = Sys_GetConsoleKey(true);
} else {
if (ev.type == SDL_KEYDOWN) {
//.........这里部分代码省略.........
示例4: R_LoadPreprocessed
static idStr R_LoadPreprocessed( const idStr& filename, idList<idStr>& previoulsyLoadedFiles, idList<idStr>& includeStack ) {
includeStack.Append( filename );
previoulsyLoadedFiles.Append( filename );
const int fileIndex = previoulsyLoadedFiles.Num() - 1;
idStr content = R_ReadFile(filename.c_str());
idStr ret;
fhStrRef ptr = fhStrRef( content.c_str(), content.Length() );
fhStrRef remaining = ptr;
int currentLine = 1;
int currentColumn = 1;
bool isLineComment = false;
for (; !ptr.IsEmpty(); ++ptr) {
if (ptr[0] == '\n') {
++currentLine;
currentColumn = 1;
isLineComment = false;
continue;
}
if (isLineComment) {
continue;
}
if (ptr.StartsWith( "//" )) {
isLineComment = true;
continue;
}
static const fhStrRef includeDirective = "#include \"";
if (currentColumn == 1 && ptr.StartsWith( includeDirective )) {
fhStrRef includeFilename = ptr.Substr( includeDirective.Length() );
for (int i = 0; i < includeFilename.Length() + 1; ++i) {
if (i == includeFilename.Length())
throw fhParseException( filename, currentLine, currentColumn, "unexpected end-of-file in preprocessor include" );
if (includeFilename[i] == '\n')
throw fhParseException( filename, currentLine, currentColumn, "unexpected end-of-line in preprocessor include" );
if (includeFilename[i] == '"') {
includeFilename = includeFilename.Substr( 0, i );
break;
}
}
if (includeFilename.IsEmpty())
throw fhParseException( filename, currentLine, currentColumn, "empty filename in preprocessor include" );
if (includeStack.FindIndex( includeFilename.ToString() ) >= 0)
throw fhParseException( filename, currentLine, currentColumn, "circular preprocessor include" );
idStr includeContent;
//try to load included shader relative to current file. If that fails try to load included shader from root directory.
try {
idStr includeFilePath;
filename.ExtractFilePath(includeFilePath);
includeFilePath.AppendPath( includeFilename.c_str(), includeFilename.Length() );
includeContent = R_LoadPreprocessed( includeFilePath, previoulsyLoadedFiles, includeStack );
ret.Append( remaining.c_str(), ptr.c_str() - remaining.c_str() );
ret.Append( includeContent );
//ret.Append( "\n#line " + toString( currentLine + 1 ) + " \"" + filename + "\"" );
} catch (const fhFileNotFoundException& e) {
try {
includeContent = R_LoadPreprocessed( includeFilename.ToString(), previoulsyLoadedFiles, includeStack );
ret.Append( remaining.c_str(), ptr.c_str() - remaining.c_str() );
ret.Append( includeContent );
//ret.append( "\n#line " + ToString( currentLine + 1 ) + " \"" + filename + "\"" );
} catch (const fhFileNotFoundException& e) {
throw fhParseException( filename, currentLine, currentColumn, idStr( "include file not found: " ) + includeFilename.ToString() );
}
}
//skip rest of the line
while (!ptr.IsEmpty() && ptr[0] != '\n') {
++ptr;
}
++currentLine;
currentColumn = 1;
remaining = ptr;
continue;
}
currentColumn++;
}
ret.Append( remaining.ToString() );
includeStack.RemoveIndex(includeStack.Num() - 1);
return ret;
}