Android Open Source - DivisionByZero Rectangle From Project Back to project page DivisionByZero .
License The source code is released under:
Apache License
If you think the Android project DivisionByZero listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.ggstudios.divisionbyzero;
/ / f r o m w w w . j a v a 2 s . c o m
import static fix.android.opengl.GLES20.glVertexAttribPointer;
import android.opengl.GLES20;
import com.ggstudios.utils.BufferUtils;
class Rectangle extends Drawable {
private int handle;
float x, y, w, h;
private float r, g, b;
private int textureHandle = 0;
private float scaleW = 1f;
private float scaleH = 1f;
public float transparency = 1f;
private boolean dirty = false;
/**
* Creates a drawable square object
*
* @param x X
* @param y Y
* @param w Width
* @param h Height
* @param a Alpha
* @param r Red
* @param g Green
* @param b Blue
*/
public Rectangle(float x, float y, float w, float h, int color){
this.x = x;
this.y = y;
this.w = w;
this.h = h;
r = ((color>>16)&0xFF) / 255f;
g = ((color>>8)&0xFF) / 255f;
b = ((color)&0xFF) / 255f;
refresh();
}
public void setSize(float newW, float newH){
w = newW;
h = newH;
dirty = true;
}
public void setScaleWidth(float scaleW) {
this.scaleW = scaleW;
}
private void rebuild() {
handle = BufferUtils.createRectangleBuffer(w, h);
textureHandle = Core.tm.get(R.drawable.white);
}
@Override
public void draw(float offX, float offY) {
if (dirty) {
rebuild();
dirty = false;
}
final float finalX = offX + x;
final float finalY = offY + y;
Utils.resetMatrix();
if (scaleW != 1f)
Utils.scaleW(scaleW);
if (scaleH != 1f)
Utils.scaleH(scaleH);
Utils.translateAndCommit(finalX, finalY);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle);
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, handle);
glVertexAttribPointer(Core.A_POSITION_HANDLE, 2, GLES20.GL_FLOAT, false, 0, 0);
GLES20.glUniform4f(Core.U_TEX_COLOR_HANDLE, r, g, b, transparency);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
GLES20.glUniform4f(Core.U_TEX_COLOR_HANDLE, 1, 1, 1, 1);
}
@Override
public void refresh() {
rebuild();
}
public void setScaleHeight(float scaleH) {
this.scaleH = scaleH;
}
}
Java Source Code List com.ggstudios.divisionbyzero.ActivityAbout.java com.ggstudios.divisionbyzero.ActivityLevelSelection.java com.ggstudios.divisionbyzero.ActivityMainMenu.java com.ggstudios.divisionbyzero.ActivitySettings.java com.ggstudios.divisionbyzero.ActivitySplashScreen.java com.ggstudios.divisionbyzero.ApplicationMain.java com.ggstudios.divisionbyzero.BaseActivity.java com.ggstudios.divisionbyzero.BaseDialog.java com.ggstudios.divisionbyzero.BulletManager.java com.ggstudios.divisionbyzero.Bullet.java com.ggstudios.divisionbyzero.Button.java com.ggstudios.divisionbyzero.Circle.java com.ggstudios.divisionbyzero.ClickableCollection.java com.ggstudios.divisionbyzero.Clickable.java com.ggstudios.divisionbyzero.ConfirmDialog.java com.ggstudios.divisionbyzero.Core.java com.ggstudios.divisionbyzero.CustomGLSurfaceView.java com.ggstudios.divisionbyzero.DialogManager.java com.ggstudios.divisionbyzero.DrawableCollection.java com.ggstudios.divisionbyzero.DrawableString.java com.ggstudios.divisionbyzero.Drawable.java com.ggstudios.divisionbyzero.EndDialog.java com.ggstudios.divisionbyzero.Event.java com.ggstudios.divisionbyzero.ExplosionGenerator.java com.ggstudios.divisionbyzero.ExtrasManager.java com.ggstudios.divisionbyzero.FontManager.java com.ggstudios.divisionbyzero.GameRenderer.java com.ggstudios.divisionbyzero.GameUpdater.java com.ggstudios.divisionbyzero.Game.java com.ggstudios.divisionbyzero.Grid.java com.ggstudios.divisionbyzero.Hud.java com.ggstudios.divisionbyzero.InGameMenu.java com.ggstudios.divisionbyzero.InfoDialog.java com.ggstudios.divisionbyzero.Label.java com.ggstudios.divisionbyzero.LevelManager.java com.ggstudios.divisionbyzero.LevelMap.java com.ggstudios.divisionbyzero.LineGuide.java com.ggstudios.divisionbyzero.MainActivity.java com.ggstudios.divisionbyzero.Map.java com.ggstudios.divisionbyzero.MessageDialog.java com.ggstudios.divisionbyzero.ParticleEngine.java com.ggstudios.divisionbyzero.PathFinder.java com.ggstudios.divisionbyzero.PauseMenu.java com.ggstudios.divisionbyzero.PictureBox.java com.ggstudios.divisionbyzero.Player.java com.ggstudios.divisionbyzero.PopupMenu.java com.ggstudios.divisionbyzero.Rectangle.java com.ggstudios.divisionbyzero.Shader.java com.ggstudios.divisionbyzero.SpawnManager.java com.ggstudios.divisionbyzero.SpriteAnimation.java com.ggstudios.divisionbyzero.SpriteManager.java com.ggstudios.divisionbyzero.Sprite.java com.ggstudios.divisionbyzero.Statbar.java com.ggstudios.divisionbyzero.StateManager.java com.ggstudios.divisionbyzero.TargetRectangle.java com.ggstudios.divisionbyzero.TextureManager.java com.ggstudios.divisionbyzero.TowerInfoDialog.java com.ggstudios.divisionbyzero.TowerLibrary.java com.ggstudios.divisionbyzero.TowerManager.java com.ggstudios.divisionbyzero.TowerMenu.java com.ggstudios.divisionbyzero.Tower.java com.ggstudios.divisionbyzero.UpdatableCollection.java com.ggstudios.divisionbyzero.Updatable.java com.ggstudios.divisionbyzero.UpgradeDialog.java com.ggstudios.divisionbyzero.Utils.java com.ggstudios.divisionbyzero.VBO.java com.ggstudios.divisionbyzero.WaveControlDialog.java com.ggstudios.divisionbyzero.WaveControlHud.java com.ggstudios.divisionbyzero.ZoomControl.java com.ggstudios.utils.BitmapUtils.java com.ggstudios.utils.BufferUtils.java com.ggstudios.utils.DebugLog.java com.ggstudios.utils.ShaderUtils.java com.ggstudios.widget.LevelMapBackground.java fix.android.opengl.GLES20.java