예제 #1
0
/*
 * Main loop.
 */
void MainLoop() {
  LoopEventT event = LOOP_CONTINUE;

  SetVBlankCounter(0);

  do {
    int frameNumber = GetVBlankCounter();

    if (event != LOOP_CONTINUE) {
      CanvasFill(R_("Canvas"), 0);

      if (event == LOOP_NEXT)
        effect = (effect + 1) % lastEffect;
      if (event == LOOP_PREV) {
        effect--;
        if (effect < 0)
          effect += lastEffect;
      }
    }

    RenderVector(frameNumber);
    RenderChunky(frameNumber);
    RenderFrameNumber(frameNumber);

    DisplaySwap();
  } while ((event = ReadLoopEvent()) != LOOP_EXIT);
}
예제 #2
0
      void RenderPolygons()
      {
         for (fdword i = 0; i < polyPrimitiveCount; i++)
         {
            switch(polyPrimitives[i].m_type)
            {
            case PolyPrimitive::POLY_LINE:
               RenderLine(polyPrimitives[i]);
               break;

            case PolyPrimitive::POLY_VECTOR:
               RenderVector(polyPrimitives[i]);
               break;

            case PolyPrimitive::POLY_RECTANGLE:
               RenderRectangle(polyPrimitives[i]);
               break;

            case PolyPrimitive::POLY_CIRCLE:
               RenderCircle(polyPrimitives[i]);
               break;

            case PolyPrimitive::POLY_FILLED_RECTANGLE:
               RenderFilledRectangle(polyPrimitives[i]);
               break;

            case PolyPrimitive::POLY_FILLED_CIRCLE:
               RenderFilledCircle(polyPrimitives[i]);
               break;

            }
         }

         polyPrimitiveCount = 0;
      }