List of usage examples for com.badlogic.gdx.graphics GL20 GL_DEPTH_BUFFER_BIT
int GL_DEPTH_BUFFER_BIT
To view the source code for com.badlogic.gdx.graphics GL20 GL_DEPTH_BUFFER_BIT.
Click Source Link
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; }