Hallo,
ich verwende zurzeit folgendes Script um mein Gameserver (HL2 Engine) mit mehr als 1000FPS laufen zu lassen. Leider muss ich beim einfügen von dieser Library (später mit gcc kompiliert) FPS=XXX (XXX=Anzahl der FPS) einfügen. Ich möchte dass ich das nich kann sondern dass ich direkt in dem Script definiere wieviel FPS es sind. Wäre nett wenn ihr weiterhelfen könntet!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <errno.h>
#include <signal.h>
#include <math.h>
static int init = 0;
static struct timespec reg;
static int nframes = 0;
void usleep(unsigned long usec) {
//
// Catch other usleeps
//
  if(usec == 0) return;
  if(usec != 1000) {
    struct timespec reg, rem;
    reg.tv_sec  = 0;
    reg.tv_nsec = 1000*usec;
    while(!nanosleep(®,&rem) && errno == EINTR) {
      reg.tv_sec = 0;
      reg.tv_nsec = rem.tv_nsec-1000;
    }
    return;
  }
//
// This is the fps relevant case
//
  if(!init) {
    nframes++;
    if(nframes < 2000) {
      reg.tv_sec  = 0;
      reg.tv_nsec = 1000000;
      nanosleep(®,NULL);
      return;
    }
    nframes = 0;
    init = 1;
//
    int nfps;
    char *envvar;
    envvar = getenv("FPS");
    if(envvar) {
      nfps = atoi(envvar);
    }
    else {
      nfps = 2000;
    }
//
    reg.tv_sec  = 0;
    reg.tv_nsec = 1000000000 / nfps;
}
//
// Do the sleep
//
  nanosleep(®,NULL);
}
Ich denke, dass hauptsächlich folgender Teil relevant ist:
int nfps;
    char *envvar;
    envvar = getenv("FPS");
    if(envvar) {
      nfps = atoi(envvar);
    }
    else {
      nfps = 2000;
    }
Vielen Dank für eure Mühe!
MfG Roy^
 
		