本文整理汇总了C++中RequestBall类的典型用法代码示例。如果您正苦于以下问题:C++ RequestBall类的具体用法?C++ RequestBall怎么用?C++ RequestBall使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RequestBall类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: findNearest
RequestBall* Logstalgia::findNearest(Paddle* paddle, const std::string& paddle_token) {
float min_dist = -1.0f;
RequestBall* nearest = 0;
for(std::list<RequestBall*>::iterator it = balls.begin(); it != balls.end(); it++) {
RequestBall* ball = *it;
//special case if failed response code
if(!ball->le->successful) {
continue;
}
if(ball->le->successful && !ball->hasBounced()
&& (gPaddleMode <= PADDLE_SINGLE
|| gPaddleMode == PADDLE_VHOST && ball->le->vhost == paddle_token
|| gPaddleMode == PADDLE_PID && ball->le->pid == paddle_token
)
) {
float dist = (paddle->getX() - ball->getX())/ball->speed;
if(min_dist<0.0f || dist<min_dist) {
min_dist = dist;
nearest = ball;
}
}
}
return nearest;
}
示例2: vec2f
void Logstalgia::addBall(LogEntry* le, float start_offset) {
gHighscore++;
std::string hostname = le->hostname;
std::string pageurl = le->path;
//find appropriate summarizer for url
int nogroups = summGroups.size();
Summarizer* pageSummarizer= 0;
for(int i=0;i<nogroups;i++) {
if(summGroups[i]->supportedString(pageurl)) {
pageSummarizer = summGroups[i];
break;
}
}
if(pageSummarizer==0) return;
Paddle* entry_paddle = 0;
if(gPaddleMode > PADDLE_SINGLE) {
std::string paddle_token = (gPaddleMode == PADDLE_VHOST) ? le->vhost : le->pid;
entry_paddle = paddles[paddle_token];
if(entry_paddle == 0) {
vec2f paddle_pos = vec2f(display.width-(display.width/3), rand() % display.height);
Paddle* paddle = new Paddle(paddle_pos, paddle_colour, paddle_token);
entry_paddle = paddles[paddle_token] = paddle;
}
} else {
entry_paddle = paddles[""];
}
if(gHideURLPrefix) pageurl = filterURLHostname(pageurl);
float dest_y = pageSummarizer->getMiddlePosY(pageurl);
float pos_y = ipSummarizer->getMiddlePosY(hostname);
float start_x = -(entry_paddle->getX()/ 5.0f);
vec2f ball_start = vec2f(start_x, pos_y);
vec2f ball_dest = vec2f(entry_paddle->getX(), dest_y);
const std::string& match = ipSummarizer->getBestMatchStr(hostname);
vec3f colour = pageSummarizer->isColoured() ? pageSummarizer->getColour() : colourHash(match);
RequestBall* ball = new RequestBall(le, &fontMedium, balltex, colour, ball_start, ball_dest, simu_speed);
ball->setElapsed( start_offset );
balls.push_back(ball);
}
示例3: SDL_ShowCursor
void Logstalgia::logic(float t, float dt) {
float sdt = dt * settings.simulation_speed;
//increment clock
elapsed_time += sdt;
currtime = starttime + (long)(elapsed_time);
if(settings.stop_time && currtime > settings.stop_time) {
currtime = settings.stop_time;
}
if(mousehide_timeout>0.0f) {
mousehide_timeout -= dt;
if(mousehide_timeout<0.0f) {
SDL_ShowCursor(false);
}
}
infowindow.hide();
if(end_reached && balls.empty()) {
appFinished = true;
return;
}
//if paused, dont move anything, only check what is under mouse
if(paused) {
for(auto& it: paddles) {
Paddle* paddle = it.second;
if(paddle->mouseOver(infowindow, mousepos)) {
break;
}
}
for(RequestBall* ball : balls) {
if(ball->mouseOver(infowindow, mousepos)) {
break;
}
}
if(!ipSummarizer->mouseOver(infowindow,mousepos)) {
for(Summarizer* s: summarizers) {
if(s->mouseOver(infowindow, mousepos)) break;
}
}
return;
}
//next will fast forward clock to the time of the next entry,
//if the next entry is in the future
if(next || (!settings.disable_auto_skip && balls.empty())) {
if(!queued_entries.empty()) {
LogEntry* le = queued_entries.front();
long entrytime = le->timestamp;
if(entrytime > currtime) {
elapsed_time = entrytime - starttime;
currtime = starttime + (long)(elapsed_time);
}
}
next = false;
}
//recalc spawn speed each second by
if(currtime != lasttime) {
//dont bother reading the log if we dont need to
if(queued_entries.empty() || queued_entries.back()->timestamp <= currtime) {
readLog();
}
profile_start("determine new entries");
int items_to_spawn=0;
for(LogEntry* le : queued_entries) {
if(le->timestamp > currtime) break;
items_to_spawn++;
addStrings(le);
}
profile_stop();
//debugLog("items to spawn %d\n", items_to_spawn);
if(items_to_spawn > 0) {
profile_start("add new strings");
//re-summarize
ipSummarizer->summarize();
for(Summarizer* s : summarizers) {
//.........这里部分代码省略.........
示例4: glDisable
void Logstalgia::draw(float t, float dt) {
if(appFinished) return;
if(!settings.disable_progress) slider.logic(dt);
display.setClearColour(background);
display.clear();
glDisable(GL_FOG);
display.mode2D();
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glDisable(GL_LIGHTING);
profile_start("draw ip summarizer");
ipSummarizer->draw(dt, font_alpha);
profile_stop();
profile_start("draw groups");
drawGroups(dt, font_alpha);
profile_stop();
profile_start("draw balls");
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, balltex->textureid);
for(RequestBall* ball : balls) {
ball->draw();
}
profile_stop();
profile_start("draw response codes");
for(std::list<RequestBall*>::iterator it = balls.begin(); it != balls.end(); it++) {
RequestBall* r = *it;
if(!settings.hide_response_code && r->hasBounced()) {
r->drawResponseCode();
}
}
profile_stop();
glDisable(GL_TEXTURE_2D);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
if(settings.paddle_mode != PADDLE_NONE) {
//draw paddles shadows
for(auto& it: paddles) {
it.second->drawShadow();
}
//draw paddles
for(auto& it: paddles) {
it.second->draw();
}
}
if(settings.paddle_mode > PADDLE_SINGLE && !settings.hide_paddle_tokens) {
glEnable(GL_TEXTURE_2D);
//draw paddle tokens
for(auto& it: paddles) {
it.second->drawToken();
}
}
if(!settings.disable_glow) {
glBlendFunc (GL_ONE, GL_ONE);
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, glowtex->textureid);
for(std::list<RequestBall*>::iterator it = balls.begin(); it != balls.end(); it++) {
(*it)->drawGlow();
}
}
infowindow.draw();
glEnable(GL_BLEND);
//.........这里部分代码省略.........
示例5: glDisable
void Logstalgia::draw(float t, float dt) {
if(appFinished) return;
if(!gDisableProgress) slider.logic(dt);
display.setClearColour(background);
display.clear();
glDisable(GL_FOG);
display.mode2D();
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glDisable(GL_LIGHTING);
profile_start("draw ip summarizer");
ipSummarizer->draw(dt, font_alpha);
profile_stop();
profile_start("draw groups");
drawGroups(dt, font_alpha);
profile_stop();
profile_start("draw balls");
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, balltex->textureid);
for(std::list<RequestBall*>::iterator it = balls.begin(); it != balls.end(); it++) {
(*it)->draw(dt);
}
profile_stop();
profile_start("draw response codes");
for(std::list<RequestBall*>::iterator it = balls.begin(); it != balls.end(); it++) {
RequestBall* r = *it;
if(gResponseCode && r->hasBounced()) {
r->drawResponseCode();
}
}
profile_stop();
glDisable(GL_TEXTURE_2D);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
if(gPaddleMode != PADDLE_NONE) {
//draw paddles shadows
for(std::map<std::string, Paddle*>::iterator it= paddles.begin(); it!=paddles.end();it++) {
it->second->drawShadow();
}
//draw paddles
for(std::map<std::string, Paddle*>::iterator it= paddles.begin(); it!=paddles.end();it++) {
it->second->draw();
}
}
if(!gDisableGlow) {
glBlendFunc (GL_ONE, GL_ONE);
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, glowtex->textureid);
for(std::list<RequestBall*>::iterator it = balls.begin(); it != balls.end(); it++) {
(*it)->drawGlow();
}
}
infowindow.draw();
glEnable(GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_TEXTURE_2D);
if(uimessage_timer>0.1f) {
glColor4f(1.0,1.0,uimessage_timer/3.0f,uimessage_timer/3.0f);
int mwidth = fontLarge.getWidth(uimessage.c_str());
fontLarge.draw(display.width/2 - mwidth/2, display.height/2 - 20, uimessage.c_str());
uimessage_timer-=dt;
//.........这里部分代码省略.........