@Before public void setup() { screenQuad = new ScreenQuad(false); }
/** * Creates a ScreenQuad. * * @param segmentsW * The number of vertical segments * @param segmentsH * The number of horizontal segments * @param createTextureCoordinates * A boolean that indicates whether the texture coordinates should be calculated or not. * @param createVertexColorBuffer * A boolean that indicates whether a vertex color buffer should be created or not. * @param numTextureTiles * The number of texture tiles. If more than 1 the texture will be repeat by n times. * @param createVBOs * A boolean that indicates whether the VBOs should be created immediately. */ public ScreenQuad(int segmentsW, int segmentsH, boolean createTextureCoordinates, boolean createVertexColorBuffer, int numTextureTiles, boolean createVBOs, UVmapping mapping) { super(); mSegmentsW = segmentsW; mSegmentsH = segmentsH; mCreateTextureCoords = createTextureCoordinates; mCreateVertexColorBuffer = createVertexColorBuffer; mNumTextureTiles = numTextureTiles; init(createVBOs, mapping); }
public void render(@NonNull Scene scene, @NonNull Renderer renderer, @NonNull ScreenQuad screenQuad, @NonNull RenderTarget writeTarget, @NonNull RenderTarget readTarget, @IntRange(from = 0) long elapsedTime, @FloatRange(from = 0d) double deltaTime) { mReadTarget = readTarget; mWriteTarget = writeTarget; screenQuad.setMaterial(mMaterial); screenQuad.setEffectPass(this); if (mRenderToScreen) { scene.render(elapsedTime, deltaTime, null); } else { scene.render(elapsedTime, deltaTime, writeTarget); } }
mLeftQuad = new ScreenQuad(); mLeftQuad.setScaleX(.5); mLeftQuad.setX(-.25); mLeftQuad.setMaterial(mLeftQuadMaterial); mSideBySideScene.addChild(mLeftQuad); mRightQuad = new ScreenQuad(); mRightQuad.setScaleX(.5); mRightQuad.setX(.25); mRightQuad.setMaterial(mRightQuadMaterial); mSideBySideScene.addChild(mRightQuad);
setData(vertices, normals, textureCoords, colors, indices, createVBOs);
@Test public void testVertices() { float[] expected = new float[]{ -0.5f, -0.5f, 0, -0.5f, 0.5f, 0, 0.5f, -0.5f, 0, 0.5f, 0.5f, 0, }; float[] result = new float[4 * 3]; screenQuad.getGeometry().getVertices().get(result); for (int i = 0; i < result.length; i++) { assertEquals(expected[i], result[i], 1e-10); } }
mLeftQuad = new ScreenQuad(); mLeftQuad.setScaleX(.5); mLeftQuad.setX(-.25); mLeftQuad.setMaterial(mLeftQuadMaterial); mSideBySideScene.addChild(mLeftQuad); mRightQuad = new ScreenQuad(); mRightQuad.setScaleX(.5); mRightQuad.setX(.25); mRightQuad.setMaterial(mRightQuadMaterial); mSideBySideScene.addChild(mRightQuad);
int[] indices = new int[] { 0, 2, 1, 0, 3, 2 }; setData(vertices, normals, textureCoords, null, indices, createVBOs);
@Test public void testTextureCoords() { float[] expected = new float[]{ 0, 1, 0, 0, 1, 1, 1, 0, }; float[] result = new float[4 * 2]; screenQuad.getGeometry().getTextureCoords().get(result); for (int i = 0; i < result.length; i++) { assertEquals(expected[i], result[i], 1e-10); } } }
public void render(RajawaliScene scene, RajawaliRenderer renderer, ScreenQuad screenQuad, RenderTarget writeTarget, RenderTarget readTarget, long ellapsedTime, double deltaTime) { mReadTarget = readTarget; mWriteTarget = writeTarget; screenQuad.setMaterial(mMaterial); screenQuad.setEffectPass(this); if(mRenderToScreen) scene.render(ellapsedTime, deltaTime, null); else scene.render(ellapsedTime, deltaTime, writeTarget); }
public PostProcessingManager(@NonNull Renderer renderer, @IntRange(from = -1) int width, @IntRange(from = -1) int height) { mRenderer = renderer; if (width == -1 && height == -1) { width = mRenderer.getViewportWidth(); height = mRenderer.getViewportHeight(); } mWidth = width; mHeight = height; mScreenQuad = new ScreenQuad(ScreenQuad.UVmapping.CW); mScene = new Scene(mRenderer, GRAPH_TYPE.NONE); mRenderTarget1 = new RenderTarget("rt1" + hashCode(), width, height, 0, 0, false, false, GLES20.GL_TEXTURE_2D, Config.ARGB_8888, FilterType.LINEAR, WrapType.CLAMP); mRenderTarget2 = new RenderTarget("rt2" + hashCode(), width, height, 0, 0, false, false, GLES20.GL_TEXTURE_2D, Config.ARGB_8888, FilterType.LINEAR, WrapType.CLAMP); mWriteBuffer = mRenderTarget1; mReadBuffer = mRenderTarget2; mCopyPass = new EffectPass(new CopyPass()); mCopyPass.setSize(mWidth, mHeight); mComponents = Collections.synchronizedList(new CopyOnWriteArrayList<IPostProcessingComponent>()); mPasses = Collections.synchronizedList(new CopyOnWriteArrayList<IPass>()); mRenderer.addRenderTarget(mWriteBuffer); mRenderer.addRenderTarget(mReadBuffer); mScene.addChild(mScreenQuad); mRenderer.addScene(mScene); }
/** * Creates a new ScreenQuad. */ public ScreenQuad(boolean createVBOs) { super(); init(createVBOs); }
public PostProcessingManager(RajawaliRenderer renderer, int width, int height) { mRenderer = renderer; if(width == -1 && height == -1) { width = mRenderer.getViewportWidth(); height = mRenderer.getViewportHeight(); } mWidth = width; mHeight = height; mScreenQuad = new ScreenQuad(); mScene = new RajawaliScene(mRenderer, GRAPH_TYPE.NONE); mRenderTarget1 = new RenderTarget("rt1" + hashCode(), width, height, 0, 0, false, false, GLES20.GL_TEXTURE_2D, Config.ARGB_8888, FilterType.LINEAR, WrapType.CLAMP); mRenderTarget2 = new RenderTarget("rt2" + hashCode(), width, height, 0, 0, false, false, GLES20.GL_TEXTURE_2D, Config.ARGB_8888, FilterType.LINEAR, WrapType.CLAMP); mWriteBuffer = mRenderTarget1; mReadBuffer = mRenderTarget2; mCopyPass = new EffectPass(new CopyPass()); mComponents = Collections.synchronizedList(new CopyOnWriteArrayList<IPostProcessingComponent>()); mPasses = Collections.synchronizedList(new CopyOnWriteArrayList<IPass>()); mRenderer.addRenderTarget(mWriteBuffer); mRenderer.addRenderTarget(mReadBuffer); mScene.addChild(mScreenQuad); mRenderer.addScene(mScene); }