• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 
18 package com.replica.replicaisland;
19 
20 public final class DebugSystem extends BaseObject {
21 	public static final int COLOR_RED = 0;
22 	public static final int COLOR_BLUE = 1;
23 	public static final int COLOR_OUTLINE = 2;
24 	public static final int SHAPE_BOX = 0;
25 	public static final int SHAPE_CIRCLE = 1;
26 
27 	private Texture mRedBoxTexture;
28 	private Texture mBlueBoxTexture;
29 	private Texture mOutlineBoxTexture;
30 	private Texture mRedCircleTexture;
31 	private Texture mBlueCircleTexture;
32 	private Texture mOutlineCircleTexture;
33 
34 	private Vector2 mWorkVector;
35 
DebugSystem(TextureLibrary library)36 	public DebugSystem(TextureLibrary library) {
37 		super();
38 		if (library != null) {
39 			mRedBoxTexture = library.allocateTexture(R.drawable.debug_box_red);
40 			mBlueBoxTexture = library.allocateTexture(R.drawable.debug_box_blue);
41 			mOutlineBoxTexture = library.allocateTexture(R.drawable.debug_box_outline);
42 			mRedCircleTexture = library.allocateTexture(R.drawable.debug_circle_red);
43 			mBlueCircleTexture = library.allocateTexture(R.drawable.debug_circle_blue);
44 			mOutlineCircleTexture = library.allocateTexture(R.drawable.debug_circle_outline);
45 
46 		}
47 
48 		mWorkVector = new Vector2();
49 	}
50 
51 	@Override
reset()52 	public void reset() {
53 	}
54 
drawShape(float x, float y, float width, float height, int shapeType, int colorType)55 	public void drawShape(float x, float y, float width, float height, int shapeType, int colorType) {
56         final RenderSystem render = sSystemRegistry.renderSystem;
57         final DrawableFactory factory = sSystemRegistry.drawableFactory;
58         CameraSystem camera = sSystemRegistry.cameraSystem;
59         ContextParameters params = sSystemRegistry.contextParameters;
60         mWorkVector.set(x, y);
61         mWorkVector.x = (mWorkVector.x - camera.getFocusPositionX()
62                         + (params.gameWidth / 2));
63         mWorkVector.y = (mWorkVector.y - camera.getFocusPositionY()
64                         + (params.gameHeight / 2));
65 
66         if (mWorkVector.x + width >= 0.0f && mWorkVector.x < params.gameWidth
67                 && mWorkVector.y + height >= 0.0f && mWorkVector.y < params.gameHeight) {
68 	        DrawableBitmap bitmap = factory.allocateDrawableBitmap();
69 	        if (bitmap != null) {
70 	        	Texture texture = getTexture(shapeType, colorType);
71 	            bitmap.resize((int)texture.width, (int)texture.height);
72 	            // TODO: scale stretch hack.  fix!
73 	            bitmap.setWidth((int)width);
74 	            bitmap.setHeight((int)height);
75 	            bitmap.setTexture(texture);
76 	            mWorkVector.set(x, y);
77 
78 	            render.scheduleForDraw(bitmap, mWorkVector, SortConstants.HUD, true);
79 	        }
80         }
81 	}
82 
getTexture(int shapeType, int colorType)83 	private final Texture getTexture(int shapeType, int colorType) {
84 		Texture result = null;
85 		if (shapeType == SHAPE_BOX) {
86 			switch (colorType) {
87 				case COLOR_RED:
88 					result = mRedBoxTexture;
89 					break;
90 				case COLOR_BLUE:
91 					result = mBlueBoxTexture;
92 					break;
93 				case COLOR_OUTLINE:
94 					result = mOutlineBoxTexture;
95 					break;
96 			}
97 		} else if (shapeType == SHAPE_CIRCLE) {
98 			switch (colorType) {
99 			case COLOR_RED:
100 				result = mRedCircleTexture;
101 				break;
102 			case COLOR_BLUE:
103 				result = mBlueCircleTexture;
104 				break;
105 			case COLOR_OUTLINE:
106 				result = mOutlineCircleTexture;
107 				break;
108 			}
109 		}
110 		return result;
111 	}
112 
113 
114 }
115