private void setTextureCoords(final float[] mTextureTransform) { mGL.glMatrixMode(GL10.GL_TEXTURE); mGL.glLoadMatrixf(mTextureTransform, 0); mGL.glMatrixMode(GL10.GL_MODELVIEW); }
private void setTextureCoords(final float left, final float top, final float right, final float bottom) { mGL.glMatrixMode(GL10.GL_TEXTURE); mTextureMatrixValues[0] = right - left; mTextureMatrixValues[5] = bottom - top; mTextureMatrixValues[10] = 1; mTextureMatrixValues[12] = left; mTextureMatrixValues[13] = top; mTextureMatrixValues[15] = 1; mGL.glLoadMatrixf(mTextureMatrixValues, 0); mGL.glMatrixMode(GL10.GL_MODELVIEW); }
private void setTextureCoords(float left, float top, float right, float bottom) { mGL.glMatrixMode(GL11.GL_TEXTURE); mTextureMatrixValues[0] = right - left; mTextureMatrixValues[5] = bottom - top; mTextureMatrixValues[10] = 1; mTextureMatrixValues[12] = left; mTextureMatrixValues[13] = top; mTextureMatrixValues[15] = 1; mGL.glLoadMatrixf(mTextureMatrixValues, 0); mGL.glMatrixMode(GL11.GL_MODELVIEW); }
public void fillRect(final RectF r, final int color) { mGLState.setColorMode(color, mAlpha); final GL11 gl = mGL; saveTransform(); translate(r.left, r.top); scale(r.width(), r.height(), 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, OFFSET_FILL_RECT, 4); restoreTransform(); }
@Override public void drawRect(final RectF r, final Paint paint) { final GL11 gl = mGL; mGLState.setColorMode(paint.getColor(), mAlpha); mGLState.setLineWidth(paint.getStrokeWidth()); saveTransform(); translate(r.left, r.top); scale(r.width(), r.height(), 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL10.GL_LINE_LOOP, OFFSET_DRAW_RECT, 4); restoreTransform(); }
private void textureRect(float x, float y, float width, float height) { GL11 gl = mGL; saveTransform(); translate(x, y, 0); scale(width, height, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL11.GL_TRIANGLE_STRIP, OFFSET_FILL_RECT, 4); restoreTransform(); mCountTextureRect++; }
@Override public void drawLine(final float x1, final float y1, final float x2, final float y2, final Paint paint) { final GL11 gl = mGL; mGLState.setColorMode(paint.getColor(), mAlpha); mGLState.setLineWidth(paint.getStrokeWidth()); saveTransform(); translate(x1, y1); scale(x2 - x1, y2 - y1, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL10.GL_LINE_STRIP, OFFSET_DRAW_LINE, 2); restoreTransform(); }
@Override public void drawRect(final float x, final float y, final float width, final float height, final Paint paint) { final GL11 gl = mGL; mGLState.setColorMode(paint.getColor(), mAlpha); mGLState.setLineWidth(paint.getStrokeWidth()); saveTransform(); translate(x, y); scale(width, height, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL10.GL_LINE_LOOP, OFFSET_DRAW_RECT, 4); restoreTransform(); }
@Override public void fillRect(final float x, final float y, final float width, final float height, final int color) { mGLState.setColorMode(color, mAlpha); final GL11 gl = mGL; saveTransform(); translate(x, y); scale(width, height, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, OFFSET_FILL_RECT, 4); restoreTransform(); }
private void textureRect(final float x, final float y, final float width, final float height) { final GL11 gl = mGL; saveTransform(); translate(x, y); scale(width, height, 1); gl.glColor4f(1, 1, 1, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, OFFSET_FILL_RECT, 4); restoreTransform(); }
public void fillRect(float x, float y, float width, float height, int color) { mGLState.setColorMode(color, mAlpha); GL11 gl = mGL; saveTransform(); translate(x, y, 0); scale(width, height, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL11.GL_TRIANGLE_STRIP, OFFSET_FILL_RECT, 4); restoreTransform(); mCountFillRect++; }
@Override public void fillPoly(final int color, final PointF... path) { mGLState.setColorMode(color, mAlpha); final GL11 gl = mGL; final int bytes = 2 * path.length * Float.SIZE; final FloatBuffer xyBuffer = allocateDirectNativeOrderBuffer(bytes).asFloatBuffer(); for (int i = 0; i < path.length; i++) { xyBuffer.put(path[i].x / mScreenWidth); xyBuffer.put(path[i].y / mScreenHeight); } xyBuffer.position(0); saveTransform(); translate(0, 0); scale(mScreenWidth, mScreenHeight, 1); gl.glLoadMatrixf(mMatrixValues, 0); final int[] name = new int[1]; GLId.glGenBuffers(1, name, 0); gl.glBindBuffer(GL11.GL_ARRAY_BUFFER, name[0]); gl.glBufferData(GL11.GL_ARRAY_BUFFER, bytes, xyBuffer, GL11.GL_DYNAMIC_DRAW); gl.glVertexPointer(2, GL10.GL_FLOAT, 0, 0); gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, path.length); restoreTransform(); gl.glBindBuffer(GL11.GL_ARRAY_BUFFER, mBoxCoords); gl.glVertexPointer(2, GL10.GL_FLOAT, 0, 0); gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, 0); }
@Override public void drawPoly(final int color, final PointF... path) { mGLState.setColorMode(color, mAlpha); mGLState.setLineWidth(1.5f); final GL11 gl = mGL; final int bytes = 2 * path.length * Float.SIZE; final FloatBuffer xyBuffer = allocateDirectNativeOrderBuffer(bytes).asFloatBuffer(); for (int i = 0; i < path.length; i++) { xyBuffer.put(path[i].x / mScreenWidth); xyBuffer.put(path[i].y / mScreenHeight); } xyBuffer.position(0); saveTransform(); translate(0, 0); scale(mScreenWidth, mScreenHeight, 1); gl.glLoadMatrixf(mMatrixValues, 0); final int[] name = new int[1]; GLId.glGenBuffers(1, name, 0); gl.glBindBuffer(GL11.GL_ARRAY_BUFFER, name[0]); gl.glBufferData(GL11.GL_ARRAY_BUFFER, bytes, xyBuffer, GL11.GL_DYNAMIC_DRAW); gl.glVertexPointer(2, GL10.GL_FLOAT, 0, 0); gl.glDrawArrays(GL10.GL_LINE_LOOP, 0, path.length); restoreTransform(); gl.glBindBuffer(GL11.GL_ARRAY_BUFFER, mBoxCoords); gl.glVertexPointer(2, GL10.GL_FLOAT, 0, 0); gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, 0); }
public void drawRect(float x, float y, float width, float height, GLPaint paint) { GL11 gl = mGL; mGLState.setColorMode(paint.getColor(), mAlpha); mGLState.setLineWidth(paint.getLineWidth()); mGLState.setLineSmooth(paint.getAntiAlias()); saveTransform(); translate(x, y, 0); scale(width, height, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL11.GL_LINE_LOOP, OFFSET_DRAW_RECT, 4); restoreTransform(); mCountDrawLine++; }
public void drawLine(float x1, float y1, float x2, float y2, GLPaint paint) { GL11 gl = mGL; mGLState.setColorMode(paint.getColor(), mAlpha); mGLState.setLineWidth(paint.getLineWidth()); mGLState.setLineSmooth(paint.getAntiAlias()); saveTransform(); translate(x1, y1, 0); scale(x2 - x1, y2 - y1, 1); gl.glLoadMatrixf(mMatrixValues, 0); gl.glDrawArrays(GL11.GL_LINE_STRIP, OFFSET_DRAW_LINE, 2); restoreTransform(); mCountDrawLine++; }
public void drawMesh(BasicTexture tex, int x, int y, int xyBuffer, int uvBuffer, int indexBuffer, int indexCount) { float alpha = mAlpha; if (!bindTexture(tex)) return; mGLState.setBlendEnabled(mBlendEnabled && (!tex.isOpaque() || alpha < OPAQUE_ALPHA)); mGLState.setTextureAlpha(alpha); // Reset the texture matrix. We will set our own texture coordinates // below. setTextureCoords(0, 0, 1, 1); saveTransform(); translate(x, y, 0); mGL.glLoadMatrixf(mMatrixValues, 0); mGL.glBindBuffer(GL11.GL_ARRAY_BUFFER, xyBuffer); mGL.glVertexPointer(2, GL11.GL_FLOAT, 0, 0); mGL.glBindBuffer(GL11.GL_ARRAY_BUFFER, uvBuffer); mGL.glTexCoordPointer(2, GL11.GL_FLOAT, 0, 0); mGL.glBindBuffer(GL11.GL_ELEMENT_ARRAY_BUFFER, indexBuffer); mGL.glDrawElements(GL11.GL_TRIANGLE_STRIP, indexCount, GL11.GL_UNSIGNED_BYTE, 0); mGL.glBindBuffer(GL11.GL_ARRAY_BUFFER, mBoxCoords); mGL.glVertexPointer(2, GL11.GL_FLOAT, 0, 0); mGL.glTexCoordPointer(2, GL11.GL_FLOAT, 0, 0); restoreTransform(); mCountDrawMesh++; }