Android Open Source - gameengine Pool






From Project

Back to project page gameengine.

License

The source code is released under:

Apache License

If you think the Android project gameengine 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.garrapeta.gameengine.utils;
/*from ww w. j a va  2 s .c  o m*/
import com.badlogic.gdx.utils.Array;

/**
 * 
 * Wrapper of {@link com.badlogic.gdx.utils.Pool} to add debug methods and to
 * force all the clients object to be
 * {@link com.badlogic.gdx.utils.Pool.Poolable}
 * 
 * @param <T>
 */
public abstract class Pool<T extends com.badlogic.gdx.utils.Pool.Poolable> {

    private final com.badlogic.gdx.utils.Pool<T> mPool;

    private int mAllocations = 0;

    private int mObtainings = 0;

    /**
     * {@link com.badlogic.gdx.utils.Pool#Pool()}
     */
    public Pool() {
        mPool = new PoolWrapper();
    }

/**
     * {@link com.badlogic.gdx.utils.Pool#Pool()
     * 
     * @param initialCapacity
     */
    public Pool(int initialCapacity) {
        mPool = new PoolWrapper(initialCapacity);
    }

/**
     * {@link com.badlogic.gdx.utils.Pool#Pool()
     * 
     * @param initialCapacity
     * @param max
     */
    public Pool(int initialCapacity, int max) {
        mPool = new PoolWrapper(initialCapacity, max);
    }

/**
     * {@link com.badlogic.gdx.utils.Pool#newObject()
     * @return
     */
    protected abstract T newObject();

/**
     * {@link com.badlogic.gdx.utils.Pool#obtain()
     * @return
     */
    public T obtain() {
        return mPool.obtain();
    }

/**
     * {@link com.badlogic.gdx.utils.Pool#free(Object)
     * @param object
     */
    public void free(T object) {
        mPool.free(object);
    }

/**
     * {@link com.badlogic.gdx.utils.Pool#free(Array)
     * @param objects
     */
    public void free(Array<T> objects) {
        mPool.free(objects);
    }

    /**
     * {@link com.badlogic.gdx.utils.Pool#clear()

     */
    public void clear() {
        mPool.clear();
    }

    /**
     * @return number of objects obtained with this pool
     */
    public int getObtainings() {
        return mObtainings;
    }

    /**
     * @return number of objects allocated by this pool
     */
    public int getAllocations() {
        return mAllocations;
    }

    /**
     * @return info String
     */
    public String getDebugString() {
        return ("Obtainings/Allocations: " + getObtainings() + "/" + getAllocations());
    }

    /**
     * Extension of {@link com.badlogic.gdx.utils.Pool}
     */
    private class PoolWrapper extends com.badlogic.gdx.utils.Pool<T> {

        public PoolWrapper() {
            super();
        }

        public PoolWrapper(int initialCapacity, int max) {
            super(initialCapacity, max);
        }

        public PoolWrapper(int initialCapacity) {
            super(initialCapacity);
        }

        @Override
        protected T newObject() {
            mAllocations++;
            return Pool.this.newObject();
        }

        @Override
        public T obtain() {
            mObtainings++;
            return super.obtain();
        }
    }
}




Java Source Code List

com.badlogic.gdx.math.MathUtils.java
com.badlogic.gdx.math.Matrix3.java
com.badlogic.gdx.math.Matrix4.java
com.badlogic.gdx.math.Quaternion.java
com.badlogic.gdx.math.Vector2.java
com.badlogic.gdx.math.Vector3.java
com.badlogic.gdx.physics.box2d.BodyDef.java
com.badlogic.gdx.physics.box2d.Body.java
com.badlogic.gdx.physics.box2d.ChainShape.java
com.badlogic.gdx.physics.box2d.CircleShape.java
com.badlogic.gdx.physics.box2d.ContactFilter.java
com.badlogic.gdx.physics.box2d.ContactImpulse.java
com.badlogic.gdx.physics.box2d.ContactListener.java
com.badlogic.gdx.physics.box2d.Contact.java
com.badlogic.gdx.physics.box2d.DestructionListener.java
com.badlogic.gdx.physics.box2d.EdgeShape.java
com.badlogic.gdx.physics.box2d.Filter.java
com.badlogic.gdx.physics.box2d.FixtureDef.java
com.badlogic.gdx.physics.box2d.Fixture.java
com.badlogic.gdx.physics.box2d.JointDef.java
com.badlogic.gdx.physics.box2d.JointEdge.java
com.badlogic.gdx.physics.box2d.Joint.java
com.badlogic.gdx.physics.box2d.Manifold.java
com.badlogic.gdx.physics.box2d.MassData.java
com.badlogic.gdx.physics.box2d.PolygonShape.java
com.badlogic.gdx.physics.box2d.QueryCallback.java
com.badlogic.gdx.physics.box2d.RayCastCallback.java
com.badlogic.gdx.physics.box2d.Shape.java
com.badlogic.gdx.physics.box2d.Transform.java
com.badlogic.gdx.physics.box2d.WorldManifold.java
com.badlogic.gdx.physics.box2d.World.java
com.badlogic.gdx.physics.box2d.joints.DistanceJointDef.java
com.badlogic.gdx.physics.box2d.joints.DistanceJoint.java
com.badlogic.gdx.physics.box2d.joints.FrictionJointDef.java
com.badlogic.gdx.physics.box2d.joints.FrictionJoint.java
com.badlogic.gdx.physics.box2d.joints.GearJointDef.java
com.badlogic.gdx.physics.box2d.joints.GearJoint.java
com.badlogic.gdx.physics.box2d.joints.MouseJointDef.java
com.badlogic.gdx.physics.box2d.joints.MouseJoint.java
com.badlogic.gdx.physics.box2d.joints.PrismaticJointDef.java
com.badlogic.gdx.physics.box2d.joints.PrismaticJoint.java
com.badlogic.gdx.physics.box2d.joints.PulleyJointDef.java
com.badlogic.gdx.physics.box2d.joints.PulleyJoint.java
com.badlogic.gdx.physics.box2d.joints.RevoluteJointDef.java
com.badlogic.gdx.physics.box2d.joints.RevoluteJoint.java
com.badlogic.gdx.physics.box2d.joints.RopeJointDef.java
com.badlogic.gdx.physics.box2d.joints.RopeJoint.java
com.badlogic.gdx.physics.box2d.joints.WeldJointDef.java
com.badlogic.gdx.physics.box2d.joints.WeldJoint.java
com.badlogic.gdx.physics.box2d.joints.WheelJointDef.java
com.badlogic.gdx.physics.box2d.joints.WheelJoint.java
com.badlogic.gdx.utils.Array.java
com.badlogic.gdx.utils.ComparableTimSort.java
com.badlogic.gdx.utils.Disposable.java
com.badlogic.gdx.utils.GdxRuntimeException.java
com.badlogic.gdx.utils.LongArray.java
com.badlogic.gdx.utils.LongMap.java
com.badlogic.gdx.utils.NumberUtils.java
com.badlogic.gdx.utils.Pool.java
com.badlogic.gdx.utils.Sort.java
com.badlogic.gdx.utils.StringBuilder.java
com.badlogic.gdx.utils.TimSort.java
com.garrapeta.MathUtils.java
com.garrapeta.gameengine.Actor.java
com.garrapeta.gameengine.AsyncGameMessage.java
com.garrapeta.gameengine.BitmapManager.java
com.garrapeta.gameengine.Box2DActor.java
com.garrapeta.gameengine.Box2DWorld.java
com.garrapeta.gameengine.GameMessage.java
com.garrapeta.gameengine.GameView.java
com.garrapeta.gameengine.GameWorld.java
com.garrapeta.gameengine.ShapeDrawer.java
com.garrapeta.gameengine.SyncGameMessage.java
com.garrapeta.gameengine.Viewport.java
com.garrapeta.gameengine.actor.Box2DAtomicActor.java
com.garrapeta.gameengine.actor.Box2DCircleActor.java
com.garrapeta.gameengine.actor.Box2DEdgeActor.java
com.garrapeta.gameengine.actor.Box2DLoopActor.java
com.garrapeta.gameengine.actor.Box2DOpenChainActor.java
com.garrapeta.gameengine.actor.Box2DPolygonActor.java
com.garrapeta.gameengine.actor.IAtomicActor.java
com.garrapeta.gameengine.actor.SimpleActor.java
com.garrapeta.gameengine.module.LevelActionsModule.java
com.garrapeta.gameengine.module.LoadedLevelActionsModule.java
com.garrapeta.gameengine.module.SoundModule.java
com.garrapeta.gameengine.module.VibrationModule.java
com.garrapeta.gameengine.utils.IOUtils.java
com.garrapeta.gameengine.utils.LogX.java
com.garrapeta.gameengine.utils.PhysicsUtils.java
com.garrapeta.gameengine.utils.Pool.java