Ejemplo n.º 1
0
void Game::run()
{
    while (window.isOpen())
    {
        showFps();
        process();
        render();
    }
}
Ejemplo n.º 2
0
    void updateFrame()
    {
        // フレームを取得する
        pxcStatus sts = senseManager->AcquireFrame( false );
        if ( sts < PXC_STATUS_NO_ERROR ) {
            return;
        }

		updateFaceFrame();

        // フレームを解放する
        senseManager->ReleaseFrame();

        // フレームレートを表示する
        showFps();
    }
Ejemplo n.º 3
0
void StateManager::run() {
    bool tick;
    bool render;
    while (_running) {
        tick = (SDL_GetTicks() - _lastTick >= _frameTime);
        render = (SDL_GetTicks() - _lastFrame >= 5);
        //200 fps cap
        if (tick) {
            input.poll();
            if (input._quit) {
                //TODO: State transitions?
                _running = false;
                break;
            }
            if (input.keyPressed(SDL_SCANCODE_LALT)
                    && input.keyDown(SDL_SCANCODE_RETURN)) {
                SDL.toggleFullscreen();
            }
            if (input.keyPressed(SDL_SCANCODE_LCTRL)
                    && input.keyDown(SDL_SCANCODE_F)) {
                _showFps = !_showFps;
            }
            _currentState->tick();
        }
        if (render) {
            SDL_Texture* t = _currentState->render();

            if (_showFps) {
                SDL_SetRenderTarget(SDL.getRenderer(), t);
                showFps();
            }

            SDL.renderTextureToWindow(t);
            _lastFrame = SDL_GetTicks();
            ++_framesRun;
        }
        if (tick) {
            _lastTick = SDL_GetTicks();
        }
        if (_switchState) {
            delete _currentState;
            _currentState = _newState;
            _switchState = false;
        }

    }
}
Ejemplo n.º 4
0
void Engine::ProcessInput() {
    sf::Event event;

    while (window->pollEvent(event)) {
        if (event.type == sf::Event::Closed)
            window->close();

        if (event.type == sf::Event::KeyPressed) {
            if (event.key.code == sf::Keyboard::Escape) {
                window->close();
            }
        }
    }
    entities.playerExecute();
    entities.npcMovement();
    showFps();
}
int PreviewStream::processFrame(CameraFrame *frame)
{
    status_t ret = NO_ERROR;

    if (mShowFps) {
        showFps();
    }

    ret = renderBuffer(frame);
    if (ret != NO_ERROR) {
        FLOGE("%s renderBuffer failed, state %d", __FUNCTION__, frame->getState());
        goto err_exit;
    }
    //the frame held in service.
    frame->addReference();

    StreamBuffer buffer;
    ret = requestBuffer(&buffer);
    if (ret != NO_ERROR) {
        FLOGE("%s requestBuffer failed", __FUNCTION__);
        goto err_exit;
    }

    for (int i = 0; i < mTotalBuffers; i++) {
        if (mCameraBuffer[i].mBufHandle == buffer.mBufHandle) {
            //release frame from service.
            mCameraBuffer[i].release();
            break;
        }
    }

err_exit:
    sem_post(&mRespondSem);

    return ret;
}