Android Open Source - min3d Color4 Buffer List






From Project

Back to project page min3d.

License

The source code is released under:

MIT License

If you think the Android project min3d 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.min3d.lib.core;
//www  .  j a  va 2s .c om
import com.min3d.lib.vos.Color4;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;


public class Color4BufferList
{
  public static final int PROPERTIES_PER_ELEMENT = 4;
  public static final int BYTES_PER_PROPERTY = 1;

  private ByteBuffer _b;
  private int _numElements;
  
  public Color4BufferList(ByteBuffer $b, int $size)
  {
    _b = ByteBuffer.allocate($b.limit() * BYTES_PER_PROPERTY);
    _b.put($b);
    _numElements = $size;
  }
  
  public Color4BufferList(int $maxElements)
  {
    int numBytes = $maxElements * PROPERTIES_PER_ELEMENT * BYTES_PER_PROPERTY;
    _b = ByteBuffer.allocateDirect(numBytes); 
    _b.order(ByteOrder.nativeOrder());
  }
  
  /**
   * The number of items in the list. 
   */
  public int size()
  {
    return _numElements;
  }
  
  /**
   * The _maximum_ number of items that the list can hold, as defined on instantiation.
   * (Not to be confused with the Buffer's capacity)
   */
  public int capacity()
  {
    return _b.capacity() / PROPERTIES_PER_ELEMENT;
  }
  
  /**
   * Clear object in preparation for garbage collection
   */
  public void clear()
  {
    _b.clear();
  }

  public Color4 getAsColor4(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    return new Color4( _b.get(), _b.get(), _b.get(), _b.get() );
  }
  
  public void putInColor4(int $index, Color4 $color4)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    $color4.r = (short)_b.get();
    $color4.g = (short)_b.get();
    $color4.b = (short)_b.get();
    $color4.a = (short)_b.get();
  }

  public short getPropertyR(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    return (short)_b.get();
  }
  public short getPropertyG(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 1);
    return (short)_b.get();
  }
  public float getPropertyB(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 2);
    return (short)_b.get();
  }
  public float getPropertyA(int $index)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 3);
    return (short)_b.get();
  }
  
  //
  
  public void add(Color4 $c)
  {
    set( _numElements, $c );
    _numElements++;
  }
  
  public void add(short $r, short $g, short $b, short $a)
  {
    set(_numElements, $r, $g, $b, $a);
    _numElements++;
  }
  
  public void set(int $index, Color4 $c)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    _b.put((byte)$c.r);
    _b.put((byte)$c.g);
    _b.put((byte)$c.b);
    _b.put((byte)$c.a);
    
    // Rem, OpenGL takes in color in this order: r,g,b,a -- _not_ a,r,g,b
  }

  public void set(int $index, short $r, short $g, short $b, short $a)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    _b.put((byte)$r);
    _b.put((byte)$g);
    _b.put((byte)$b);
    _b.put((byte)$a);
  }
  
  public void setPropertyR(int $index, short $r)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT);
    _b.put((byte)$r);
  }
  public void setPropertyG(int $index, short $g)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 1);
    _b.put((byte)$g);
  }
  public void setPropertyB(int $index, short $b)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 2);
    _b.put((byte)$b);
  }
  public void setPropertyA(int $index, short $a)
  {
    _b.position($index * PROPERTIES_PER_ELEMENT + 3);
    _b.put((byte)$a);
  }
  
  //
  
  public ByteBuffer buffer()
  {
    return _b;
  }
  
  public Color4BufferList clone()
  {
    _b.position(0);
    Color4BufferList c = new Color4BufferList(_b, size());
    return c;
  }
}




Java Source Code List

com.min3d.ApplicationTest.java
com.min3d.ExampleAccelerometer.java
com.min3d.ExampleAnimatedTexture.java
com.min3d.ExampleAnimatingVertices.java
com.min3d.ExampleAssigningTexturesDynamically.java
com.min3d.ExampleCamera.java
com.min3d.ExampleFog.java
com.min3d.ExampleFromScratch.java
com.min3d.ExampleInsideLayout.java
com.min3d.ExampleKeyframeAnimation.java
com.min3d.ExampleLightProperties.java
com.min3d.ExampleLoad3DSFile.java
com.min3d.ExampleLoadMD2File.java
com.min3d.ExampleLoadObjFileMultiple.java
com.min3d.ExampleLoadObjFile.java
com.min3d.ExampleMipMap.java
com.min3d.ExampleMostMinimal.java
com.min3d.ExampleMultiTexture.java
com.min3d.ExampleMultipleLights.java
com.min3d.ExampleRenderType.java
com.min3d.ExampleRotatingPlanets.java
com.min3d.ExampleSubsetOfFaces.java
com.min3d.ExampleTextureOffset.java
com.min3d.ExampleTextureWrap.java
com.min3d.ExampleTextures.java
com.min3d.ExampleTransparentGlSurface.java
com.min3d.ExampleVertexColors.java
com.min3d.ExampleVerticesVariations.java
com.min3d.ScratchActivity.java
com.min3d.SplashActivity.java
com.min3d.lib.AParser.java
com.min3d.lib.ApplicationTest.java
com.min3d.lib.IParser.java
com.min3d.lib.LittleEndianDataInputStream.java
com.min3d.lib.MD2Parser.java
com.min3d.lib.Max3DSParser.java
com.min3d.lib.Min3d.java
com.min3d.lib.ObjParser.java
com.min3d.lib.ParseObjectData.java
com.min3d.lib.ParseObjectFace.java
com.min3d.lib.Parser.java
com.min3d.lib.Shared.java
com.min3d.lib.Utils.java
com.min3d.lib.animation.AnimationObject3d.java
com.min3d.lib.animation.KeyFrame.java
com.min3d.lib.core.Color4BufferList.java
com.min3d.lib.core.FacesBufferedList.java
com.min3d.lib.core.ManagedLightList.java
com.min3d.lib.core.Number3dBufferList.java
com.min3d.lib.core.Object3dContainer.java
com.min3d.lib.core.Object3d.java
com.min3d.lib.core.RenderCaps.java
com.min3d.lib.core.RendererActivity.java
com.min3d.lib.core.Renderer.java
com.min3d.lib.core.Scene.java
com.min3d.lib.core.TextureList.java
com.min3d.lib.core.TextureManager.java
com.min3d.lib.core.UvBufferList.java
com.min3d.lib.core.Vertices.java
com.min3d.lib.interfaces.IDirtyManaged.java
com.min3d.lib.interfaces.IDirtyParent.java
com.min3d.lib.interfaces.IObject3dContainer.java
com.min3d.lib.interfaces.ISceneController.java
com.min3d.lib.objectPrimitives.Box.java
com.min3d.lib.objectPrimitives.HollowCylinder.java
com.min3d.lib.objectPrimitives.Rectangle.java
com.min3d.lib.objectPrimitives.SkyBox.java
com.min3d.lib.objectPrimitives.Sphere.java
com.min3d.lib.objectPrimitives.Torus.java
com.min3d.lib.vos.AbstractDirtyManaged.java
com.min3d.lib.vos.BooleanManaged.java
com.min3d.lib.vos.CameraVo.java
com.min3d.lib.vos.Color4Managed.java
com.min3d.lib.vos.Color4.java
com.min3d.lib.vos.Face.java
com.min3d.lib.vos.FloatManaged.java
com.min3d.lib.vos.FogType.java
com.min3d.lib.vos.FrustumManaged.java
com.min3d.lib.vos.LightType.java
com.min3d.lib.vos.Light.java
com.min3d.lib.vos.Number3dManaged.java
com.min3d.lib.vos.Number3d.java
com.min3d.lib.vos.RenderType.java
com.min3d.lib.vos.ShadeModelManaged.java
com.min3d.lib.vos.ShadeModel.java
com.min3d.lib.vos.TexEnvxVo.java
com.min3d.lib.vos.TextureVo.java
com.min3d.lib.vos.Uv.java
com.min3d.lib.vos.Vertex3d.java