 		// helper methods
 		private function updateBuffers(context:Context3D, bounds:Rectangle):void
 		{
-			mVertexData.setPosition(0, bounds.x, bounds.y);
-			mVertexData.setPosition(1, bounds.right, bounds.y);
-			mVertexData.setPosition(2, bounds.x, bounds.bottom);
-			mVertexData.setPosition(3, bounds.right, bounds.bottom);
-
-			if (mVertexBuffer == null)
-			{
-				mVertexBuffer = context.createVertexBuffer(4, VertexData2D.ELEMENTS_PER_VERTEX);
-				mIndexBuffer = context.createIndexBuffer(6);
-				mIndexBuffer.uploadFromVector(mIndexData, 0, 6);
-			}
-
-			mVertexBuffer.uploadFromVector(mVertexData.rawData, 0, 4);
+			_vertexData.setPosition(0, bounds.x, bounds.y);
+			_vertexData.setPosition(1, bounds.right, bounds.y);
+			_vertexData.setPosition(2, bounds.x, bounds.bottom);
+			_vertexData.setPosition(3, bounds.right, bounds.bottom);
+
+			if (_vertexBuffer == null)
+			{
+				_vertexBuffer = context.createVertexBuffer(4, VertexData2D.ELEMENTS_PER_VERTEX);
+				_indexBuffer = context.createIndexBuffer(6);
+				_indexBuffer.uploadFromVector(_indexData, 0, 6);
+			}
+
+			_vertexBuffer.uploadFromVector(_vertexData.rawData, 0, 4);
 		}
 
 
 		private function updatePassTextures(width:int, height:int, scale:Number):void
 		{
-			var numPassTextures:int = mNumPasses > 1 ? 2 : 1;
-
-			var needsUpdate:Boolean = mPassTextures == null || mPassTextures.length != numPassTextures || mPassTextures[0].width != width || mPassTextures[0].height != height;
+			var numPassTextures:int = _numPasses > 1 ? 2 : 1;
+
+			var needsUpdate:Boolean = _passTextures == null || _passTextures.length != numPassTextures || _passTextures[0].width != width || _passTextures[0].height != height;
 
 			if (needsUpdate)
 			{
-				if (mPassTextures)
+				if (_passTextures)
 				{
-					for each (var texture:Texture2D in mPassTextures)
+					for each (var texture:Texture2D in _passTextures)
 						texture.dispose();
 
-					mPassTextures.length = numPassTextures;
+					_passTextures.length = numPassTextures;
 				}
 				else
 				{
-					mPassTextures = new Vector.<Texture2D>(numPassTextures);
+					_passTextures = new Vector.<Texture2D>(numPassTextures);
 				}
 
 				for (var i:int = 0; i < numPassTextures; ++i)
-					mPassTextures[i] = Texture2D.empty(width, height, PMA, true, scale);
+					_passTextures[i] = Texture2D.empty(width, height, PMA, true, scale);
 			}
 		}
 
 
 		private function getPassTexture(pass:int):Texture2D
 		{
-			return mPassTextures[pass % 2];
+			return _passTextures[pass % 2];
 		}
 
 


				var passTexture:Texture2D = getPassTexture(i);

				context.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, mMvpConstantID, support.mvpMatrix3D, true);
				context.setTextureAt(mBaseTextureID, passTexture.base);

				activate(i, context, passTexture);
				context.drawTriangles(mIndexBuffer, 0, 2);
				deactivate(i, context, passTexture);
			}

			// reset shader attributes
			context.setVertexBufferAt(mVertexPosAtID, null);
			context.setVertexBufferAt(mTexCoordsAtID, null);
			context.setTextureAt(mBaseTextureID, null);

			support.popMatrix();


	import tetragon.view.render2d.events.Event2D;
	import tetragon.view.render2d.textures.Texture2D;

	import com.hexagonstar.exception.MissingContext3DException;
	import com.hexagonstar.util.geom.MatrixUtil;
	import com.hexagonstar.util.geom.RectangleUtil;
