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

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

Introduction

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

Prototype

public void glViewport(int x, int y, int width, int height);

Source Link

Usage

From source file:com.badlogicgames.superjumper.helpscreen.HelpScreen.java

License:Apache License

public void draw() {
    GL20 gl = Gdx.gl;
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    guiCam.update();/*from  w  w  w .  j a va2 s . co  m*/
    game.batch.setProjectionMatrix(guiCam.combined);
    game.batch.disableBlending();
    game.batch.begin();
    game.batch.draw(helpRegion, 0, 0);
    game.batch.end();

    game.batch.enableBlending();
    game.batch.begin();
    game.batch.draw(Assets.arrow, 320, 0, -64, 64);
    game.batch.end();
}

From source file:com.cyphercove.doublehelix.MainRenderer.java

License:Apache License

@Override
public void draw(float deltaTime, float xOffsetFake, float xOffsetLooping, float xOffsetSmooth, float yOffset) {
    deltaTime = Math.min(deltaTime, MAX_FRAME_TIME);
    if (screenshotPause)
        deltaTime = 0;//from   w  w w . j ava 2s .co  m

    float _xOffset = isPreview ? 0.5f
            : (Settings.pseudoScrolling ? xOffsetFake
                    : (Settings.smoothScrolling ? xOffsetSmooth : xOffsetLooping));

    GL20 gl = Gdx.gl;

    if (!firstFrameDrawn) {
        gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
        gl.glClearColor(0, 0, 0, 1);
        gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
        firstFrameDrawn = true;
        return;
    }

    if (needFinishCreate) {
        finishCreate();
        //film grain wasn't created til now so need to initialize its size
        filmGrain.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
        filmGrainForBloom.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    }

    if (settingsAdapter != null)
        settingsAdapter.updateInLoop(deltaTime);

    //UPDATES
    Texture.TextureFilter particleMinFilter = Settings.trilinearParticles
            ? Texture.TextureFilter.MipMapLinearLinear
            : Texture.TextureFilter.MipMapLinearNearest;
    particleATexture.setFilter(particleMinFilter, Texture.TextureFilter.Linear);
    particlePointTexture.setFilter(particleMinFilter, Texture.TextureFilter.Linear);

    mainHelixTransformManager.localEulers.z += deltaTime * MAIN_HELIX_ROTATION_DPS * Settings.speed;
    mainHelixTransformManager.apply();
    rearHelixTransformManager.localEulers.z += deltaTime * 0.5f * MAIN_HELIX_ROTATION_DPS * Settings.speed;
    rearHelixTransformManager.apply();

    cam.up.set(0, 1, 0);
    cam.direction.set(0, 0, -1);
    cam.rotate(-41.998f, 1, 0, 0);
    cam.rotate(146.964f, 0, 1, 0);
    cam.rotate(18.503f, 0, 0, 1);

    camPosition.set(0.45617f, 4.11359f, 0.14467f); //set it here and reapply when needed.
    if (cam.viewportWidth > cam.viewportHeight) {//landscape
        camPosition.rotate(Vector3.Z, -(_xOffset - 0.5f) * 47.5f - 15.0f);
    } else {//portrait
        camPosition.rotate(Vector3.Z, -(_xOffset - 0.5f) * 65f);
    }
    cam.position.set(camPosition); //temporarily apply it to get correct direction with lookAt
    cam.lookAt(-.4703f, 0f, 3.5032f);

    sssShader.lightDirection.set(1, 0, 0).rotate(Vector3.Y, lightH).rotate(Vector3.X, lightV);

    particles.update(deltaTime, sssShader.lightDirection); //MUST BE DONE WHILE CAM IS IN POSITION

    backgroundShader.color.set(Settings.backgroundColor);

    //BLOOM SURFACE DRAWING
    if (Settings.bloom) {
        bloom.begin();
        cam.position.set(0, 0, 0);
        cam.update();
        modelBatch.begin(cam);
        modelBatch.render(backgroundBloomModelInstance, unlitShader);
        modelBatch.end();

        cam.position.set(camPosition);
        cam.update();
        modelBatch.begin(cam);
        modelBatch.render(mainHelixModelInstance, blackShader);
        modelBatch.render(rearHelixModelInstance, blackShader);
        modelBatch.end();

        bloom.end();
    }

    //BLUR SURFACE DRAWING
    if (Settings.dof) {
        rearDOFBlur.setClearColor(tmpColor.set(Settings.backgroundColor).mul(AMBIENT_BRIGHTNESS));
        rearDOFBlur.begin();
        modelBatch.begin(cam);
        modelBatch.render(backgroundModelInstance, backgroundShader);
        modelBatch.end();

        cam.position.set(camPosition);
        cam.update();

        sssShader.setShouldFadeEnds(true);
        modelBatch.begin(cam);
        modelBatch.render(rearHelixModelInstance, sssShader);
        modelBatch.end();
        rearDOFBlur.end();
    }

    //MAIN DRAWING
    Gdx.gl.glClearColor(Settings.backgroundColor.r, Settings.backgroundColor.g, Settings.backgroundColor.b, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);

    if (Settings.dof) {
        rearDOFBlur.render();
    } else {
        modelBatch.begin(cam);
        modelBatch.render(backgroundModelInstance, backgroundShader);
        modelBatch.end();
    }

    cam.position.set(camPosition);
    cam.update();

    sssShader.setShouldFadeEnds(false);
    modelBatch.begin(cam);
    modelBatch.render(mainHelixModelInstance, sssShader);
    modelBatch.end();

    if (!Settings.dof) {
        sssShader.setShouldFadeEnds(true);
        modelBatch.begin(cam);
        modelBatch.render(rearHelixModelInstance, sssShader);
        modelBatch.end();
    }

    boolean doFilmGrain = Settings.filmGrain || Settings.scanLines || Settings.vignette;

    if (Settings.bloom) {
        if (doFilmGrain) {
            bloom.setCustomShaderPreparer(filmGrainForBloom);
            bloom.render(filmGrainForBloom.filmGrainShaderProgram);
        } else {
            bloom.setCustomShaderPreparer(null);
            bloom.render(bloomShaderProgram);
        }
    } else if (doFilmGrain) {
        filmGrain.render();
    }

    particles.draw(decalBatch, billboardDecalBatch);

    fader.render(deltaTime);
}

From source file:com.github.fauu.helix.core.Renderer.java

License:Open Source License

public void render(Camera camera, Array<RenderableProvider> renderableProviders, Array<Decal> decals) {
    final GL20 gl = Gdx.graphics.getGL20();

    gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    gl.glClearColor(0.1f, 0.1f, 0.1f, 1);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    gl.glEnable(GL20.GL_BLEND);/* w ww. j  av  a 2  s. co  m*/
    gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    if (decalBatch == null) {
        defaultCameraGroupStrategy = new CameraGroupStrategy(camera);
        waterCameraGroupStrategy = new CameraGroupStrategy(waterCamera);

        decalBatch = new DecalBatch(defaultCameraGroupStrategy);
    }

    //waterCamera.moveTo(new Vector2(13, 19));
    /* Render objects to framebuffer */
    fb.begin();
    gl.glClearColor(0, 0, 0, 0);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    gl.glEnable(GL20.GL_BLEND);
    gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    renderContext.begin();
    modelBatch.begin(waterCamera);
    for (int i = 1; i < renderableProviders.size - 1; i++) {
        modelBatch.render(renderableProviders.get(i));
    }
    modelBatch.end();
    renderContext.end();

    decalBatch.setGroupStrategy(waterCameraGroupStrategy);
    if (decals != null) {
        decals.first().rotateX(50);
        decalBatch.add(decals.first());
        decalBatch.flush();
        decals.first().rotateX(-50);
    }

    //    Vector3 waterPos = waterCamera.project(new Vector3(8, 0, 19));
    //    reflectionPixmap = ScreenUtils.getFrameBufferPixmap((int) waterPos.x, (int) waterPos.y, 348, 261);
    //    reflectionPixmap = ScreenUtils.getFrameBufferPixmap(0, 0, 800, 600);

    fb.end();

    //    if (reflectionTexture == null) {
    //      reflectionTexture = new Texture(reflectionPixmap);
    //    } else {
    //      reflectionTexture.draw(reflectionPixmap, 0, 0);
    //    }

    ((WaterData) ((ModelInstance) renderableProviders
            .get(renderableProviders.size - 1)).userData).reflectionTexture = fb.getColorBufferTexture();

    /* Render objects and terrain to the screen */
    renderContext.begin();
    modelBatch.begin(camera);
    modelBatch.render(renderableProviders);
    modelBatch.end();
    renderContext.end();
    decalBatch.setGroupStrategy(defaultCameraGroupStrategy);
    if (decals != null) {
        decalBatch.add(decals.first());
    }
    decalBatch.flush();

    spriteBatch.begin();
    spriteBatch.enableBlending();
    spriteBatch.draw(fb.getColorBufferTexture(), 0, 0, 800, 600);
    spriteBatch.end();

}

From source file:com.mygdx.g3il.screens.HelpScreen.java

License:Apache License

@Override
public void draw(float delta) {
    GL20 gl = Gdx.gl;
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    camera.update();/*  ww  w. j a v  a2 s .  c o m*/
    game.batch.setProjectionMatrix(camera.combined);
    game.batch.disableBlending();
    game.batch.begin();
    game.batch.draw(background, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    game.batch.end();

    game.batch.enableBlending();
    game.batch.begin();
    game.batch.draw(board, camera.position.x, camera.position.y);
    game.batch.end();
}

From source file:com.mygdx.game.superjumper.screen.HelpScreen.java

License:Apache License

public void draw() {
    GL20 gl = Gdx.gl;
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    guiCam.update();/*from w ww.  j  av a 2s .c om*/
    game.batcher.setProjectionMatrix(guiCam.combined);
    game.batcher.disableBlending();
    game.batcher.begin();
    game.batcher.draw(helpRegion, 0, 0);
    game.batcher.end();

    game.batcher.enableBlending();
    game.batcher.begin();
    game.batcher.draw(Assets.arrow, 320, 0, -64, 64);
    game.batcher.end();
}

From source file:com.wilson.game.Screen.HelpScreen.java

License:Apache License

public void draw() {
    GL20 gl = Gdx.gl;
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    guiCam.update();/*from  ww  w  .  ja  va 2 s  .c om*/
    game.batcher.setProjectionMatrix(guiCam.combined);
    game.batcher.disableBlending();
    game.batcher.begin();
    game.batcher.draw(helpRegion, 0, 0);
    game.batcher.end();

    game.batcher.enableBlending();
    game.batcher.begin();
    game.batcher.draw(Assets.arrow, 320, 0, -30, 30);
    game.batcher.end();
}