List of usage examples for com.badlogic.gdx.graphics GL20 GL_TEXTURE_2D
int GL_TEXTURE_2D
To view the source code for com.badlogic.gdx.graphics GL20 GL_TEXTURE_2D.
Click Source Link
From source file:ta.firegreen.creation.creator.java
License:Apache License
@Override public void create() { batch = new SpriteBatch(); rendu = new ImmediateModeRenderer20(false, true, 0); renduTexture = new ImmediateModeRenderer20(false, true, 1); configF = new ConfigurationFrame(this); cam = new PerspectiveCamera(95, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); Gdx.gl20.glEnable(GL20.GL_TEXTURE_2D); Gdx.gl20.glEnable(GL20.GL_DEPTH_TEST); Gdx.gl20.glEnable(GL20.GL_BLEND);/*w w w .ja v a 2 s .c om*/ Gdx.gl20.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA); shape = new ShapeRenderer(); cam.near = 1; cam.far = 100; cam.direction.set(0, 1, 0); cam.position.set(posX, posY, posZ); cam.lookAt(cibleX, cibleY, cibleZ); cam.update(); configF.setVisible(true); trianglesSelected = new MeshTA(); }
From source file:ta.shape3D.mesh.MeshTA.java
License:Apache License
/** * draw all triangles of the Mesh in the OpenGL environment. * @param rendu the renderer which is used for drawing triangle, you don't need to call the begin() method of this renderer * before using this method./*from w w w . j a v a 2s . co m*/ * @param rendu * @param projectionMatrix The projection matrix in which the mesh will be represented */ final public void render(ImmediateModeRenderer20 rendu, Matrix4 projectionMatrix) { projectionMatrix.translate(tX, tY, tZ); projectionMatrix.rotateRad(Vector3.X, rX); projectionMatrix.rotateRad(Vector3.Y, rY); projectionMatrix.rotateRad(Vector3.Z, rZ); projectionMatrix.scale(scaleX, scaleY, scaleZ); if (image != null) { Gdx.gl20.glEnable(GL20.GL_TEXTURE_2D); Gdx.gl20.glBindTexture(image.glTarget, image.getTextureObjectHandle()); } rendu.begin(projectionMatrix, GL20.GL_TRIANGLES); for (Triangle3D t : triangles) { t.render(rendu); } rendu.end(); Gdx.gl20.glDisable(GL20.GL_TEXTURE_BINDING_2D); for (MeshTA m : sousMesh) { m.render(rendu, projectionMatrix); } projectionMatrix.scale(1 / scaleX, 1 / scaleY, 1 / scaleZ); projectionMatrix.rotateRad(Vector3.X, -rX); projectionMatrix.rotateRad(Vector3.Y, -rY); projectionMatrix.rotateRad(Vector3.Z, -rZ); projectionMatrix.translate(-tX, -tY, -tZ); }
From source file:ve.ucv.ciens.ccg.nxtar.states.AutomaticActionState.java
License:Apache License
@Override public void render(float delta) { int w, h;//www .ja va 2 s.com 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;//from w w w.j a va2 s. c o 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; }