Exemple #1
0
SkyDome::SkyDome(rs::Priority p): PostEffect(T_Skydome, p) {
	setScale(1, 1);
	setDivide(2e1f);
	setRayleighCoeff({680*1e-3f, 550*1e-3f, 480*1e-3f});
	setMieCoeff(0.9f, 0.1f);
	setLightPower(24.4f);
	setLightColor({1,1,1});
	setLightDir({0,-1,0});
}
void checkDivide(float div){
  setDivide(div);
  loop();
//   int pulses = div*16+1;
  int pulses = divider.value+1;
  int i;
  for(i=0; !divideIsHigh() && i<100; ++i)
    pulseClock();
  BOOST_CHECK_EQUAL(i, pulses);
  for(i=0; divideIsHigh() && i<100; ++i)
    pulseClock();
  BOOST_CHECK_EQUAL(i, pulses);
}
void checkDivideAndCount(float div, float cnt){
  setDivide(div);
  setDelay(cnt);
  loop();
  reset();
  int count = counter.value;
  int pulses = divider.value;
  BOOST_CHECK(pulses > count/2);
  int cycles = pulses*2+count*2+1;
  int i;
  for(i=0; !combinedIsHigh(); ++i)
    toggleClock();
  BOOST_CHECK_EQUAL(i, cycles);
  toggleClock();
  for(i=0; !combinedIsHigh(); ++i)
    toggleClock();
  BOOST_CHECK_EQUAL(i, pulses*2+1);
  toggleClock();
}
void checkSwing(float div, float del){
  setDivide(div);
  setDelay(del);
  setDelayMode();
  loop();
  int cycles = divider.value*2+1;
  int time = delay.value/2+1;
  int ticks = delay.value-time;
  int i;
  for(i=0; clockIsHigh() == combinedIsHigh() && i<1000; ++i)
    toggleClock();
  BOOST_CHECK_EQUAL(i, cycles);
  BOOST_CHECK(swinger.running == true);
  BOOST_CHECK(clockIsHigh());
  callTimer(time);
  setClock(false);
  for(i=0; !combinedIsHigh() && i<1000; ++i)
    callTimer();
  BOOST_CHECK_EQUAL(i, ticks);
  for(i=0; combinedIsHigh() && i<1000; ++i)
    callTimer();
  BOOST_CHECK_EQUAL(i, time);
}
 DefaultFixture(){
   loop();
   setDivide(0.0);
   setDelay(0.0);
   loop();
 }