Example usage for com.badlogic.gdx.graphics GL20 GL_DEPTH_BUFFER_BIT

List of usage examples for com.badlogic.gdx.graphics GL20 GL_DEPTH_BUFFER_BIT

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics GL20 GL_DEPTH_BUFFER_BIT.

Prototype

int GL_DEPTH_BUFFER_BIT

To view the source code for com.badlogic.gdx.graphics GL20 GL_DEPTH_BUFFER_BIT.

Click Source Link

Usage

From source file:vault.q_bounce.screens.LoaderScreen.java

License:Open Source License

/**
 * Frame update./*from   w w  w  . j  av  a  2  s.c  o m*/
 * Update asset manager and render some loader screen stuff.
 * @param delta 
 */
@Override
public void render(float delta) {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); // #14
    //frame += Gdx.graphics.getDeltaTime();          
    currentFrame = animation.getKeyFrame(frame, true);
    spriteBatch.begin();
    spriteBatch.draw(currentFrame, 150, 150, //miejsce rysowania
            Gdx.graphics.getWidth() / 4.f, Gdx.graphics.getHeight() / 2.f); //wielkosc  

    font.setScale(2);
    font.draw(spriteBatch, "Please wait...", 400, 150);
    spriteBatch.end();

    frame += 1.f * delta;
    //((Game)Gdx.app.getApplicationListener()).setScreen(this.next);
    if (Game.assets.update()) {
        Game.app.setScreen(next);
    }

    // perform game systems
    Game.performSystems();
}

From source file:ve.ucv.ciens.ccg.nxtar.states.AutomaticActionState.java

License:Apache License

@Override
public void render(float delta) {
    int w, h;// w w  w .  ja  v a  2s . co  m
    byte[] frame;
    MarkerData data;
    TextureRegion region;
    float focalPointX, focalPointY, cameraCenterX, cameraCenterY;

    // Clear the screen.
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    // Render the background.
    core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
    core.batch.begin();
    {
        if (backgroundShader != null) {
            core.batch.setShader(backgroundShader);
            backgroundShader.setUniform2fv("u_scaling", uScaling, 0, 2);
        }
        background.draw(core.batch);
        if (backgroundShader != null)
            core.batch.setShader(null);
    }
    core.batch.end();

    // Fetch the current video frame.
    frame = frameMonitor.getCurrentFrame();
    w = frameMonitor.getFrameDimensions().getWidth();
    h = frameMonitor.getFrameDimensions().getHeight();

    // Create the 3D perspective camera and the frame buffer object if they don't exist.
    if (perspectiveCamera == null && frameBuffer == null) {
        frameBuffer = new FrameBuffer(Format.RGBA8888, w, h, true);
        frameBuffer.getColorBufferTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);

        perspectiveCamera = new CustomPerspectiveCamera(67, w, h);
        perspectiveCamera.translate(0.0f, 0.0f, 0.0f);
        perspectiveCamera.near = NEAR;
        perspectiveCamera.far = FAR;
        perspectiveCamera.lookAt(0.0f, 0.0f, -1.0f);
        perspectiveCamera.update();
    }

    // Attempt to find the markers in the current video frame.
    data = core.cvProc.findMarkersInFrame(frame);

    // If a valid frame was fetched.
    if (data != null && data.outFrame != null) {
        if (automaticActionEnabled)
            performAutomaticAction(data);

        // Set the camera to the correct projection.
        focalPointX = core.cvProc.getFocalPointX();
        focalPointY = core.cvProc.getFocalPointY();
        cameraCenterX = core.cvProc.getCameraCenterX();
        cameraCenterY = core.cvProc.getCameraCenterY();
        perspectiveCamera.setCustomARProjectionMatrix(focalPointX, focalPointY, cameraCenterX, cameraCenterY,
                NEAR, FAR, w, h);
        perspectiveCamera.update(perspectiveCamera.projection);

        // Update the game state.
        gameWorld.setDelta(Gdx.graphics.getDeltaTime() * 1000);
        gameWorld.getSystem(MarkerPositioningSystem.class).setMarkerData(data);
        gameWorld.process();

        // Decode the video frame.
        videoFrame = new Pixmap(data.outFrame, 0, w * h);
        videoFrameTexture = new Texture(videoFrame);
        videoFrameTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
        videoFrame.dispose();

        // Convert the decoded frame into a renderable texture.
        region = new TextureRegion(videoFrameTexture, 0, 0, w, h);
        if (renderableVideoFrame == null)
            renderableVideoFrame = new Sprite(region);
        else
            renderableVideoFrame.setRegion(region);
        renderableVideoFrame.setOrigin(renderableVideoFrame.getWidth() / 2,
                renderableVideoFrame.getHeight() / 2);
        renderableVideoFrame.setPosition(0, 0);

        // Set the 3D frame buffer for rendering.
        frameBuffer.begin();
        {
            // Set OpenGL state.
            Gdx.gl.glClearColor(0, 0, 0, 0);
            Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
            Gdx.gl.glDisable(GL20.GL_TEXTURE_2D);

            // Call rendering systems.
            markerRenderingSystem.begin(perspectiveCamera);
            markerRenderingSystem.process();
            markerRenderingSystem.end();
        }
        frameBuffer.end();

        // Set the frame buffer object texture to a renderable sprite.
        region = new TextureRegion(frameBuffer.getColorBufferTexture(), 0, 0, frameBuffer.getWidth(),
                frameBuffer.getHeight());
        region.flip(false, true);
        if (frameBufferSprite == null)
            frameBufferSprite = new Sprite(region);
        else
            frameBufferSprite.setRegion(region);
        frameBufferSprite.setOrigin(frameBufferSprite.getWidth() / 2, frameBufferSprite.getHeight() / 2);
        frameBufferSprite.setPosition(0, 0);

        // Set the position and orientation of the renderable video frame and the frame buffer.
        if (!Ouya.runningOnOuya) {
            renderableVideoFrame.setSize(1.0f,
                    renderableVideoFrame.getHeight() / renderableVideoFrame.getWidth());
            renderableVideoFrame.rotate90(true);
            renderableVideoFrame.translate(-renderableVideoFrame.getWidth() / 2,
                    0.5f - renderableVideoFrame.getHeight());

            frameBufferSprite.setSize(1.0f, frameBufferSprite.getHeight() / frameBufferSprite.getWidth());
            frameBufferSprite.rotate90(true);
            frameBufferSprite.translate(-frameBufferSprite.getWidth() / 2,
                    0.5f - frameBufferSprite.getHeight());
        } else {
            float xSize = Gdx.graphics.getHeight() * (w / h);
            renderableVideoFrame.setSize(xSize * ProjectConstants.OVERSCAN,
                    Utils.getScreenHeightWithOverscan());
            renderableVideoFrame.rotate90(true);
            renderableVideoFrame.translate(-renderableVideoFrame.getWidth() / 2,
                    -renderableVideoFrame.getHeight() / 2);

            frameBufferSprite.setSize(xSize * ProjectConstants.OVERSCAN, Utils.getScreenHeightWithOverscan());
            frameBufferSprite.rotate90(true);
            frameBufferSprite.translate(-frameBufferSprite.getWidth() / 2, -frameBufferSprite.getHeight() / 2);
        }

        // Set the correct camera for the device.
        if (!Ouya.runningOnOuya) {
            core.batch.setProjectionMatrix(unitaryOrthographicCamera.combined);
        } else {
            core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
        }

        // Render the video frame and the frame buffer.
        core.batch.begin();
        {
            renderableVideoFrame.draw(core.batch);
            frameBufferSprite.draw(core.batch);
        }
        core.batch.end();

        // Clear the video frame from memory.
        videoFrameTexture.dispose();
    }

    core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
    core.batch.begin();
    {
        startButton.draw(core.batch, 1.0f);
        if (Ouya.runningOnOuya)
            ouyaOButton.draw(core.batch);
    }
    core.batch.end();

    data = null;
}

From source file:ve.ucv.ciens.ccg.nxtar.states.InGameState.java

License:Apache License

@Override
public void render(float delta) {
    final float MIN_SLIDER_X = correctAngleLedOnSprite != null
            ? -(Utils.getScreenWidthWithOverscan() / 2) + 5 + correctAngleLedOnSprite.getWidth()
            : -(Utils.getScreenWidthWithOverscan() / 2) + 5;
    final float MAX_SLIDER_X = correctAngleLedOnSprite != null
            ? (Utils.getScreenWidthWithOverscan() / 2) - 5 - correctAngleLedOnSprite.getWidth()
            : (Utils.getScreenWidthWithOverscan() / 2) - 5;
    int w, h;/*  ww w. j  a  v a2 s .  co m*/
    float t, xSliderPos;
    byte[] frame;
    MarkerData data;
    TextureRegion region;
    float focalPointX, focalPointY, cameraCenterX, cameraCenterY;

    // Clear the screen.
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    // Render the background.
    core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
    core.batch.begin();
    {
        if (backgroundShader != null) {
            core.batch.setShader(backgroundShader);
            backgroundShader.setUniform2fv("u_scaling", uScaling, 0, 2);
        }
        background.draw(core.batch);
        if (backgroundShader != null)
            core.batch.setShader(null);
    }
    core.batch.end();

    // Fetch the current video frame.
    frame = frameMonitor.getCurrentFrame();
    w = frameMonitor.getFrameDimensions().getWidth();
    h = frameMonitor.getFrameDimensions().getHeight();

    // Create the 3D perspective camera and the frame buffer object if they don't exist.
    if (perspectiveCamera == null && frameBuffer == null) {
        frameBuffer = new FrameBuffer(Format.RGBA8888, w, h, true);
        frameBuffer.getColorBufferTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);

        perspectiveCamera = new CustomPerspectiveCamera(67, w, h);
        perspectiveCamera.translate(0.0f, 0.0f, 0.0f);
        perspectiveCamera.near = NEAR;
        perspectiveCamera.far = FAR;
        perspectiveCamera.lookAt(0.0f, 0.0f, -1.0f);
        perspectiveCamera.update();
    }

    // Attempt to find the markers in the current video frame.
    data = core.cvProc.findMarkersInFrame(frame);

    // If a valid frame was fetched.
    if (data != null && data.outFrame != null) {
        try {
            // Set the camera to the correct projection.
            focalPointX = core.cvProc.getFocalPointX();
            focalPointY = core.cvProc.getFocalPointY();
            cameraCenterX = core.cvProc.getCameraCenterX();
            cameraCenterY = core.cvProc.getCameraCenterY();
            perspectiveCamera.setCustomARProjectionMatrix(focalPointX, focalPointY, cameraCenterX,
                    cameraCenterY, NEAR, FAR, w, h);
            perspectiveCamera.update(perspectiveCamera.projection);

            // Update the game state.
            if (controlMode == robot_control_mode_t.ARM_CONTROL || Ouya.runningOnOuya)
                gameWorld.getSystem(CollisionDetectionSystem.class).enableCollisions();
            else
                gameWorld.getSystem(CollisionDetectionSystem.class).disableCollisions();

            gameWorld.setDelta(Gdx.graphics.getDeltaTime() * 1000);
            gameWorld.getSystem(MarkerPositioningSystem.class).setMarkerData(data);
            gameWorld.process();

            // Decode the video frame.
            videoFrame = new Pixmap(data.outFrame, 0, w * h);
            videoFrameTexture = new Texture(videoFrame);
            videoFrameTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
            videoFrame.dispose();

            // Convert the decoded frame into a renderable texture.
            region = new TextureRegion(videoFrameTexture, 0, 0, w, h);
            if (renderableVideoFrame == null)
                renderableVideoFrame = new Sprite(region);
            else
                renderableVideoFrame.setRegion(region);
            renderableVideoFrame.setOrigin(renderableVideoFrame.getWidth() / 2,
                    renderableVideoFrame.getHeight() / 2);
            renderableVideoFrame.setPosition(0, 0);

            // Set the 3D frame buffer for rendering.
            frameBuffer.begin();
            {
                // Set OpenGL state.
                Gdx.gl.glClearColor(0, 0, 0, 0);
                Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
                Gdx.gl.glDisable(GL20.GL_TEXTURE_2D);

                // Call rendering systems.
                markerRenderingSystem.begin(perspectiveCamera);
                markerRenderingSystem.process();
                markerRenderingSystem.end();

                if (controlMode.getValue() == robot_control_mode_t.ARM_CONTROL.getValue()
                        || Ouya.runningOnOuya) {
                    robotArmRenderingSystem.begin(perspectiveCamera);
                    robotArmRenderingSystem.process();
                    robotArmRenderingSystem.end();
                }
            }
            frameBuffer.end();

            // Set the frame buffer object texture to a renderable sprite.
            region = new TextureRegion(frameBuffer.getColorBufferTexture(), 0, 0, frameBuffer.getWidth(),
                    frameBuffer.getHeight());
            region.flip(false, true);
            if (frameBufferSprite == null)
                frameBufferSprite = new Sprite(region);
            else
                frameBufferSprite.setRegion(region);
            frameBufferSprite.setOrigin(frameBufferSprite.getWidth() / 2, frameBufferSprite.getHeight() / 2);
            frameBufferSprite.setPosition(0, 0);

            // Set the position and orientation of the renderable video frame and the frame buffer.
            if (!Ouya.runningOnOuya) {
                renderableVideoFrame.setSize(1.0f,
                        renderableVideoFrame.getHeight() / renderableVideoFrame.getWidth());
                renderableVideoFrame.rotate90(true);
                renderableVideoFrame.translate(-renderableVideoFrame.getWidth() / 2,
                        0.5f - renderableVideoFrame.getHeight());

                frameBufferSprite.setSize(1.0f, frameBufferSprite.getHeight() / frameBufferSprite.getWidth());
                frameBufferSprite.rotate90(true);
                frameBufferSprite.translate(-frameBufferSprite.getWidth() / 2,
                        0.5f - frameBufferSprite.getHeight());

            } else {
                float xSize = Gdx.graphics.getHeight() * (w / h);
                renderableVideoFrame.setSize(xSize * ProjectConstants.OVERSCAN,
                        Utils.getScreenHeightWithOverscan());
                renderableVideoFrame.rotate90(true);
                renderableVideoFrame.translate(-renderableVideoFrame.getWidth() / 2,
                        -renderableVideoFrame.getHeight() / 2);

                frameBufferSprite.setSize(xSize * ProjectConstants.OVERSCAN,
                        Utils.getScreenHeightWithOverscan());
                frameBufferSprite.rotate90(true);
                frameBufferSprite.translate(-frameBufferSprite.getWidth() / 2,
                        -frameBufferSprite.getHeight() / 2);
            }

            // Set the correct camera for the device.
            if (!Ouya.runningOnOuya) {
                core.batch.setProjectionMatrix(unitaryOrthographicCamera.combined);
            } else {
                core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
            }

            // Render the video frame and the frame buffer.
            core.batch.begin();
            {
                renderableVideoFrame.draw(core.batch);
                frameBufferSprite.draw(core.batch);
            }
            core.batch.end();

            // Clear the video frame from memory.
            videoFrameTexture.dispose();
        } catch (GdxRuntimeException e) {
            Gdx.app.error(TAG, CLASS_NAME + ".render(): Runtime exception caught: ", e);
        }
    }

    // Render the interface buttons.
    if (!Ouya.runningOnOuya) {
        core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
        core.batch.begin();
        {
            // Draw control mode button.
            if (controlMode.getValue() == robot_control_mode_t.WHEEL_CONTROL.getValue()) {
                // Draw motor control buttons.
                motorAButton.draw(core.batch);
                motorBButton.draw(core.batch);
                motorCButton.draw(core.batch);
                motorDButton.draw(core.batch);
                wheelControlButton.draw(core.batch);
            } else if (controlMode.getValue() == robot_control_mode_t.ARM_CONTROL.getValue()) {
                // Draw arm control buttons.
                armAButton.draw(core.batch);
                armBButton.draw(core.batch);
                armCButton.draw(core.batch);
                armDButton.draw(core.batch);
                armControlButton.draw(core.batch);
            } else {
                throw new IllegalStateException(
                        "Unrecognized control mode: " + Integer.toString(controlMode.getValue()));
            }

            headAButton.draw(core.batch);
            headBButton.draw(core.batch);
            headCButton.draw(core.batch);

            // Draw device rotation led.
            if (Utils.isDeviceRollValid()) {
                if (Math.abs(Gdx.input.getRoll()) < ProjectConstants.MAX_ABS_ROLL)
                    correctAngleLedOnSprite.draw(core.batch);
                else
                    correctAngleLedOffSprite.draw(core.batch);

                t = (Gdx.input.getRoll() + 60.0f) / 120.0f;
                xSliderPos = (MIN_SLIDER_X * t) + (MAX_SLIDER_X * (1.0f - t));
                xSliderPos = xSliderPos < MIN_SLIDER_X ? MIN_SLIDER_X
                        : (xSliderPos > MAX_SLIDER_X ? MAX_SLIDER_X : xSliderPos);
                orientationSlider.setPosition(xSliderPos, orientationSlider.getY());
                orientationSlider.draw(core.batch);
            } else {
                correctAngleLedOffSprite.draw(core.batch);
                orientationSlider.draw(core.batch);
            }
        }
        core.batch.end();
    }

    core.batch.setProjectionMatrix(pixelPerfectOrthographicCamera.combined);
    core.batch.begin();
    {
        hintButton.draw(core.batch);
    }
    core.batch.end();

    fadeEffectRenderingSystem.process();
    playerSystem.process();

    data = null;
}