本文整理汇总了Java中com.badlogic.gdx.graphics.Mesh.VertexDataType类的典型用法代码示例。如果您正苦于以下问题:Java VertexDataType类的具体用法?Java VertexDataType怎么用?Java VertexDataType使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
VertexDataType类属于com.badlogic.gdx.graphics.Mesh包,在下文中一共展示了VertexDataType类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: ShaderEffect
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/**
* Instantiates a new ShaderEffect. The ShaderEffect will NOT own shader
* program, so it will not dispose it either!
*
* @param program
* the ShaderProgram to use for this effect
*/
public ShaderEffect(ShaderProgram program) {
this.program = program;
if (meshRefCount++ <= 0) {
mesh = new Mesh(VertexDataType.VertexArray, true, 4, 0,
new VertexAttribute(Usage.Position, 2, ShaderProgram.POSITION_ATTRIBUTE),
new VertexAttribute(Usage.TextureCoordinates, 2, ShaderProgram.TEXCOORD_ATTRIBUTE + "0"));
// @formatter:off
float[] verts = {
// vertex texture
-1, -1, 0f, 0f,
1, -1, 1f, 0f,
1, 1, 1f, 1f,
-1, 1, 0f, 1f,
};
// @formatter:on
mesh.setVertices(verts);
}
}
示例2: PositionalLight
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
public PositionalLight (RayHandler rayHandler, int rays, Color color, float distance, float x, float y, float directionDegree) {
super(rayHandler, rays, color, directionDegree, distance);
start.x = x;
start.y = y;
sin = new float[rays];
cos = new float[rays];
endX = new float[rays];
endY = new float[rays];
lightMesh = new Mesh(VertexDataType.VertexArray, false, vertexNum, 0, new VertexAttribute(Usage.Position, 2,
"vertex_positions"), new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
softShadowMesh = new Mesh(VertexDataType.VertexArray, false, vertexNum * 2, 0, new VertexAttribute(Usage.Position, 2,
"vertex_positions"), new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
setMesh();
}
示例3: DirectionalLight
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/** Directional lights simulate light source that locations is at infinite distance. Direction and intensity is same everywhere.
* -90 direction is straight from up.
*
* @param rayHandler
* @param rays
* @param color
* @param directionDegree */
public DirectionalLight (RayHandler rayHandler, int rays, Color color, float directionDegree) {
super(rayHandler, rays, color, directionDegree, Float.POSITIVE_INFINITY);
vertexNum = (vertexNum - 1) * 2;
start = new Vector2[rayNum];
end = new Vector2[rayNum];
for (int i = 0; i < rayNum; i++) {
start[i] = new Vector2();
end[i] = new Vector2();
}
setDirection(direction);
lightMesh = new Mesh(VertexDataType.VertexArray, staticLight, vertexNum, 0, new VertexAttribute(Usage.Position, 2,
"vertex_positions"), new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
softShadowMesh = new Mesh(VertexDataType.VertexArray, staticLight, vertexNum, 0, new VertexAttribute(Usage.Position, 2,
"vertex_positions"), new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
update();
}
示例4: RavChainLight
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/** Creates chain light from specified vertices
*
* @param rayHandler not {@code null} instance of RayHandler
* @param rays number of rays - more rays make light to look more realistic but will decrease performance, can't be less than
* MIN_RAYS
* @param color color, set to {@code null} to use the default color
* @param distance distance of light
* @param rayDirection direction of rays
* <ul>
* <li>1 = left</li>
* <li>-1 = right</li>
* </ul>
* @param chain float array of (x, y) vertices from which rays will be evenly distributed */
public RavChainLight (RayHandler rayHandler, int rays, Color color, float distance, int rayDirection, float[] chain) {
super(rayHandler, rays, color, distance, 0f);
rayStartOffset = ChainLight.defaultRayStartOffset;
this.rayDirection = rayDirection;
vertexNum = (vertexNum - 1) * 2;
endX = new float[rays];
endY = new float[rays];
startX = new float[rays];
startY = new float[rays];
this.chain = (chain != null) ? new FloatArray(chain) : new FloatArray();
lightMesh = new Mesh(VertexDataType.VertexArray, false, vertexNum, 0,
new VertexAttribute(Usage.Position, 2, "vertex_positions"), new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
softShadowMesh = new Mesh(VertexDataType.VertexArray, false, vertexNum * 2, 0,
new VertexAttribute(Usage.Position, 2, "vertex_positions"), new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
setMesh();
}
示例5: PolygonSpriteBatch
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/** Constructs a new PolygonSpriteBatch. Sets the projection matrix to an orthographic projection with y-axis point upwards,
* x-axis point to the right and the origin being in the bottom left corner of the screen. The projection will be pixel perfect
* with respect to the current screen resolution.
* <p>
* The defaultShader specifies the shader to use. Note that the names for uniforms for this default shader are different than
* the ones expect for shaders set with {@link #setShader(ShaderProgram)}. See {@link SpriteBatch#createDefaultShader()}.
* @param size The max number of vertices and number of triangles in a single batch. Max of 10920.
* @param defaultShader The default shader to use. This is not owned by the PolygonSpriteBatch and must be disposed separately. */
public PolygonSpriteBatch (int size, ShaderProgram defaultShader) {
// 32767 is max index, so 32767 / 3 - (32767 / 3 % 3) = 10920.
if (size > 10920) throw new IllegalArgumentException("Can't have more than 10920 triangles per batch: " + size);
mesh = new Mesh(VertexDataType.VertexArray, false, size, size * 3, new VertexAttribute(Usage.Position, 2,
ShaderProgram.POSITION_ATTRIBUTE), new VertexAttribute(Usage.ColorPacked, 4, ShaderProgram.COLOR_ATTRIBUTE),
new VertexAttribute(Usage.TextureCoordinates, 2, ShaderProgram.TEXCOORD_ATTRIBUTE + "0"));
vertices = new float[size * VERTEX_SIZE];
triangles = new short[size * 3];
if (defaultShader == null) {
shader = SpriteBatch.createDefaultShader();
ownsShader = true;
} else
shader = defaultShader;
projectionMatrix.setToOrtho2D(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}
示例6: init
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
private void init(String tex0, float w, float h) {
setTexture0(tex0);
// Init comparator
comp = new DistToCameraComparator<IRenderable>();
// Init vertices
float[] vertices = new float[20];
fillVertices(vertices, w, h);
// We wont need indices if we use GL_TRIANGLE_FAN to draw our quad
// TRIANGLE_FAN will draw the verts in this order: 0, 1, 2; 0, 2, 3
mesh = new Mesh(VertexDataType.VertexArray, true, 4, 6, new VertexAttribute(Usage.Position, 2, ShaderProgram.POSITION_ATTRIBUTE), new VertexAttribute(Usage.ColorPacked, 4, ShaderProgram.COLOR_ATTRIBUTE), new VertexAttribute(Usage.TextureCoordinates, 2, ShaderProgram.TEXCOORD_ATTRIBUTE + "0"));
mesh.setVertices(vertices, 0, vertices.length);
mesh.getIndicesBuffer().position(0);
mesh.getIndicesBuffer().limit(6);
short[] indices = new short[] { 0, 1, 2, 0, 2, 3 };
mesh.setIndices(indices);
quaternion = new Quaternion();
aux = new Vector3();
}
示例7: init
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
private void init(float w, float h) {
// Init comparator
comp = new DistToCameraComparator<IRenderable>();
// Init vertices
float[] vertices = new float[20];
fillVertices(vertices, w, h);
// We wont need indices if we use GL_TRIANGLE_FAN to draw our quad
// TRIANGLE_FAN will draw the verts in this order: 0, 1, 2; 0, 2, 3
mesh = new Mesh(VertexDataType.VertexArray, true, 4, 6, new VertexAttribute(Usage.Position, 2, ShaderProgram.POSITION_ATTRIBUTE), new VertexAttribute(Usage.ColorPacked, 4, ShaderProgram.COLOR_ATTRIBUTE), new VertexAttribute(Usage.TextureCoordinates, 2, ShaderProgram.TEXCOORD_ATTRIBUTE + "0"));
mesh.setVertices(vertices, 0, vertices.length);
mesh.getIndicesBuffer().position(0);
mesh.getIndicesBuffer().limit(6);
short[] indices = new short[] { 0, 1, 2, 0, 2, 3 };
mesh.setIndices(indices);
quaternion = new Quaternion();
aux = new Vector3();
}
示例8: DirectionalLight
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/**
* Directional lights simulate light source that locations is at infinite
* distance. Direction and intensity is same everywhere. -90 direction is
* straight from up.
*
* @param rayHandler
* @param rays
* @param color
* @param directionDegree
*/
public DirectionalLight(RayHandler rayHandler, int rays, Color color,
float directionDegree) {
super(rayHandler, rays, color, directionDegree, Float.POSITIVE_INFINITY);
vertexNum = (vertexNum - 1) * 2;
start = new Vector2[rayNum];
end = new Vector2[rayNum];
for (int i = 0; i < rayNum; i++) {
start[i] = new Vector2();
end[i] = new Vector2();
}
setDirection(direction);
lightMesh = new Mesh(VertexDataType.VertexArray, staticLight, vertexNum, 0, new VertexAttribute(
Usage.Position, 2, "vertex_positions"), new VertexAttribute(
Usage.ColorPacked, 4, "quad_colors"), new VertexAttribute(
Usage.Generic, 1, "s"));
softShadowMesh = new Mesh(VertexDataType.VertexArray,staticLight, vertexNum, 0,
new VertexAttribute(Usage.Position, 2, "vertex_positions"),
new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
update();
}
示例9: initialize
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
public void initialize(int paramInt)
{
int i = 0;
this.vertices = new float[paramInt * 24];
Mesh.VertexDataType localVertexDataType = Mesh.VertexDataType.VertexArray;
int j = paramInt * 4;
int k = paramInt * 6;
VertexAttribute[] arrayOfVertexAttribute = new VertexAttribute[3];
arrayOfVertexAttribute[0] = new VertexAttribute(0, 3, "a_position");
arrayOfVertexAttribute[1] = new VertexAttribute(5, 4, "a_color");
arrayOfVertexAttribute[2] = new VertexAttribute(3, 2, "a_texCoord0");
this.mesh = new Mesh(localVertexDataType, false, j, k, arrayOfVertexAttribute);
short[] arrayOfShort = new short[paramInt * 6];
for (int m = 0; i < arrayOfShort.length; m += 4)
{
arrayOfShort[i] = ((short)m);
arrayOfShort[(i + 1)] = ((short)(m + 2));
arrayOfShort[(i + 2)] = ((short)(m + 1));
arrayOfShort[(i + 3)] = ((short)(m + 1));
arrayOfShort[(i + 4)] = ((short)(m + 2));
arrayOfShort[(i + 5)] = ((short)(m + 3));
i += 6;
}
this.mesh.setIndices(arrayOfShort);
}
示例10: PolygonSpriteBatch
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
public PolygonSpriteBatch(int paramInt1, int paramInt2, ShaderProgram paramShaderProgram)
{
this.buffers = new Mesh[paramInt2];
for (int i = 0; i < paramInt2; i++)
{
Mesh[] arrayOfMesh = this.buffers;
Mesh.VertexDataType localVertexDataType = Mesh.VertexDataType.VertexArray;
VertexAttribute[] arrayOfVertexAttribute = new VertexAttribute[3];
arrayOfVertexAttribute[0] = new VertexAttribute(0, 2, "a_position");
arrayOfVertexAttribute[1] = new VertexAttribute(5, 4, "a_color");
arrayOfVertexAttribute[2] = new VertexAttribute(3, 2, "a_texCoord0");
arrayOfMesh[i] = new Mesh(localVertexDataType, false, paramInt1, 0, arrayOfVertexAttribute);
}
this.projectionMatrix.setToOrtho2D(0.0F, 0.0F, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
this.vertices = new float[paramInt1 * 5];
this.mesh = this.buffers[0];
if ((Gdx.graphics.isGL20Available()) && (paramShaderProgram == null))
{
this.shader = createDefaultShader();
this.ownsShader = true;
return;
}
this.shader = paramShaderProgram;
}
示例11: CircularDrawingStatic
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
public CircularDrawingStatic(Texture texture, int beginDegrees, int endDegrees) {
this.texture = texture;
List<VertexAttribute> list = new ArrayList<>();
list.add(VertexAttribute.Position());
list.add(VertexAttribute.ColorUnpacked());
list.add(VertexAttribute.TexCoords(0));
List<Float> lvert = new ArrayList<>(30);
int n_vtx = 0;
lvert.addAll(Arrays.asList(0f, 0f, 0f, 1f, 1f, 1f, 1f, 0.5f, 0.5f));
n_vtx++;
Vector2 vert = new Vector2();
calcAnglePoint(beginDegrees, vert);
addVertToList(lvert, vert);
n_vtx++;
for (int deg = (int)(Math.ceil(beginDegrees / 45.0) * 45); deg < endDegrees / 45 * 45; deg++) {
n_vtx++;
calcAnglePoint(deg, vert);
addVertToList(lvert, vert);
}
calcAnglePoint(endDegrees, vert);
addVertToList(lvert, vert);
n_vtx++;
mesh = new Mesh(VertexDataType.VertexArray, false, n_vtx, n_vtx, list.toArray(new VertexAttribute[list.size()]));
short[] indices = new short[n_vtx];
for (short i = 0; i < n_vtx; i++) indices[i] = i;
mesh.setIndices(indices);
initialVertices = new float[lvert.size()];
operatedVertices = new float[lvert.size()];
for (int i = 0; i < initialVertices.length; i++) {
initialVertices[i] = lvert.get(i);
}
}
示例12: ChainLight
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/**
* Creates chain light from specified vertices
*
* @param rayHandler
* not {@code null} instance of RayHandler
* @param rays
* number of rays - more rays make light to look more realistic
* but will decrease performance, can't be less than MIN_RAYS
* @param color
* color, set to {@code null} to use the default color
* @param distance
* distance of light
* @param rayDirection
* direction of rays
* <ul>
* <li>1 = left</li>
* <li>-1 = right</li>
* </ul>
* @param chain
* float array of (x, y) vertices from which rays will be
* evenly distributed
*/
public ChainLight(RayHandler rayHandler, int rays, Color color,
float distance, int rayDirection, float[] chain) {
super(rayHandler, rays, color, distance, 0f);
rayStartOffset = ChainLight.defaultRayStartOffset;
this.rayDirection = rayDirection;
vertexNum = (vertexNum - 1) * 2;
endX = new float[rays];
endY = new float[rays];
startX = new float[rays];
startY = new float[rays];
this.chain = (chain != null) ?
new FloatArray(chain) : new FloatArray();
lightMesh = new Mesh(
VertexDataType.VertexArray, false, vertexNum, 0,
new VertexAttribute(Usage.Position, 2, "vertex_positions"),
new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
softShadowMesh = new Mesh(
VertexDataType.VertexArray, false, vertexNum * 2,
0, new VertexAttribute(Usage.Position, 2, "vertex_positions"),
new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
setMesh();
}
示例13: DirectionalLight
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
/**
* Creates directional light which source is at infinite distance,
* direction and intensity is same everywhere
*
* <p>-90 direction is straight from up
*
* @param rayHandler
* not {@code null} instance of RayHandler
* @param rays
* number of rays - more rays make light to look more realistic
* but will decrease performance, can't be less than MIN_RAYS
* @param color
* color, set to {@code null} to use the default color
* @param directionDegree
* direction in degrees
*/
public DirectionalLight(RayHandler rayHandler, int rays, Color color,
float directionDegree) {
super(rayHandler, rays, color, Float.POSITIVE_INFINITY, directionDegree);
vertexNum = (vertexNum - 1) * 2;
start = new Vector2[rayNum];
end = new Vector2[rayNum];
for (int i = 0; i < rayNum; i++) {
start[i] = new Vector2();
end[i] = new Vector2();
}
lightMesh = new Mesh(
VertexDataType.VertexArray, staticLight, vertexNum, 0,
new VertexAttribute(Usage.Position, 2, "vertex_positions"),
new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
softShadowMesh = new Mesh(
VertexDataType.VertexArray, staticLight, vertexNum, 0,
new VertexAttribute(Usage.Position, 2, "vertex_positions"),
new VertexAttribute(Usage.ColorPacked, 4, "quad_colors"),
new VertexAttribute(Usage.Generic, 1, "s"));
update();
}
示例14: createFullscreenQuad
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
private Mesh createFullscreenQuad () {
// vertex coord
verts[X1] = -1;
verts[Y1] = -1;
verts[X2] = 1;
verts[Y2] = -1;
verts[X3] = 1;
verts[Y3] = 1;
verts[X4] = -1;
verts[Y4] = 1;
// tex coords
verts[U1] = 0f;
verts[V1] = 0f;
verts[U2] = 1f;
verts[V2] = 0f;
verts[U3] = 1f;
verts[V3] = 1f;
verts[U4] = 0f;
verts[V4] = 1f;
Mesh tmpMesh = new Mesh(VertexDataType.VertexArray, true, 4, 0, new VertexAttribute(Usage.Position, 2, "a_position"),
new VertexAttribute(Usage.TextureCoordinates, 2, "a_texCoord0"));
tmpMesh.setVertices(verts);
return tmpMesh;
}
示例15: createFullscreenQuad
import com.badlogic.gdx.graphics.Mesh.VertexDataType; //导入依赖的package包/类
private Mesh createFullscreenQuad() {
// vertex coord
verts[X1] = -1;
verts[Y1] = -1;
verts[X2] = 1;
verts[Y2] = -1;
verts[X3] = 1;
verts[Y3] = 1;
verts[X4] = -1;
verts[Y4] = 1;
// tex coords
verts[U1] = 0f;
verts[V1] = 0f;
verts[U2] = 1f;
verts[V2] = 0f;
verts[U3] = 1f;
verts[V3] = 1f;
verts[U4] = 0f;
verts[V4] = 1f;
Mesh tmpMesh = new Mesh(VertexDataType.VertexArray, true, 4, 0,
new VertexAttribute(Usage.Position, 2, "a_position"),
new VertexAttribute(Usage.TextureCoordinates, 2, "a_texCoord0"));
tmpMesh.setVertices(verts);
return tmpMesh;
}