当前位置: 首页>>代码示例>>Java>>正文


Java GL2GL3.glBindBuffer方法代码示例

本文整理汇总了Java中com.jogamp.opengl.GL2GL3.glBindBuffer方法的典型用法代码示例。如果您正苦于以下问题:Java GL2GL3.glBindBuffer方法的具体用法?Java GL2GL3.glBindBuffer怎么用?Java GL2GL3.glBindBuffer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.jogamp.opengl.GL2GL3的用法示例。


在下文中一共展示了GL2GL3.glBindBuffer方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: load

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
@Override
public boolean load(RenderContext context, boolean force) {
    if (state == State.DISPOSED || state == State.UNINITIALIZED) return false;
    if (state == State.LOADED && !force) return false;

    GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();

    gl.glBindBuffer(vbo.target, vbo.handle);
    gl.glBufferData(vbo.target, vertices.capacity() * 4L, vertices, usage);
    gl.glBindBuffer(vbo.target, 0);

    nVertices = vertices.capacity() / datatype.size;

    state = State.LOADED;
    return true;
}
 
开发者ID:sgs-us,项目名称:microtrafficsim,代码行数:17,代码来源:SingleFloatAttributeMesh.java

示例2: load

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
@Override
public boolean load(RenderContext context, boolean force) {
    if (state == State.DISPOSED || state == State.UNINITIALIZED) return false;
    if (state == State.LOADED && !force) return false;

    GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();

    // vertices
    gl.glBindBuffer(vbo.target, vbo.handle);
    gl.glBufferData(vbo.target, vertices.capacity() * 4L, vertices, usage);
    gl.glBindBuffer(vbo.target, 0);

    // indices
    gl.glBindBuffer(ibo.target, ibo.handle);
    gl.glBufferData(ibo.target, indices.capacity() * 4L, indices, usage);
    gl.glBindBuffer(ibo.target, 0);

    state = State.LOADED;
    return true;
}
 
开发者ID:sgs-us,项目名称:microtrafficsim,代码行数:21,代码来源:SingleFloatAttributeIndexedMesh.java

示例3: renderOutline

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void renderOutline(GL2GL3 gl) {
	// The vertex list is just the closed loop of points
	if (lineWidth == 0) {
		return;
	}

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, _vertBuffer);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, fb.limit() * 4, fb, GL2GL3.GL_STATIC_DRAW);

	gl.glVertexAttribPointer(_posVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, 0);

	if (!gl.isGLcore())
		gl.glLineWidth((float)lineWidth);
	else
		gl.glLineWidth(1.0f);

	gl.glDrawArrays(GL2GL3.GL_LINE_LOOP, 0, _points.size());

	gl.glLineWidth(1.0f);

}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:24,代码来源:Polygon.java

示例4: createVertexBufferObject

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
/**
 * Creates a vertex buffer object for use with a pipeline.
 *
 * @param gl Current OpenGL context
 * @param size Size in bytes of buffer
 * @return OpenGL handle to vertex buffer object
 * @throws NullPointerException if context is null
 * @throws IllegalArgumentException if size is negative
 */
/*@Nonnegative*/
protected static int createVertexBufferObject(/*@Nonnull*/ final GL2GL3 gl,
                                              /*@Nonnegative*/ final int size) {

    Check.notNull(gl, "GL cannot be null");
    Check.argument(size >= 0, "Size cannot be negative");

    // Generate
    final int[] handles = new int[1];
    gl.glGenBuffers(1, handles, 0);
    final int vbo = handles[0];

    // Allocate
    gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vbo);
    gl.glBufferData(
            GL2GL3.GL_ARRAY_BUFFER, // target
            size,                   // size
            null,                   // data
            GL2GL3.GL_STREAM_DRAW); // usage
    gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, 0);

    return vbo;
}
 
开发者ID:jedwards1211,项目名称:breakout,代码行数:33,代码来源:AbstractQuadPipeline.java

示例5: loadGPUAssets

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
public static void loadGPUAssets(Renderer r) {

		GL2GL3 gl = r.getGL();

		int[] buffs = new int[1];
		gl.glGenBuffers(1, buffs, 0);
		vertBuff = buffs[0];

		progHandle = r.getShader(Renderer.ShaderHandle.SKYBOX).getProgramHandle();

		projMatVar = gl.glGetUniformLocation(progHandle, "projMat");
		invViewMatVar = gl.glGetUniformLocation(progHandle, "invViewMat");
		texVar = gl.glGetUniformLocation(progHandle, "tex");

		FloatBuffer verts = FloatBuffer.allocate(6*3); // 2 triangles * 3 coordinates
		verts.put(-0.5f); verts.put(-0.5f); verts.put(-0.5f);
		verts.put( 0.5f); verts.put(-0.5f); verts.put(-0.5f);
		verts.put( 0.5f); verts.put( 0.5f); verts.put(-0.5f);

		verts.put(-0.5f); verts.put(-0.5f); verts.put(-0.5f);
		verts.put( 0.5f); verts.put( 0.5f); verts.put(-0.5f);
		verts.put(-0.5f); verts.put( 0.5f); verts.put(-0.5f);

		verts.flip();
		gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vertBuff);
		gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, 6*3*4, verts, GL2GL3.GL_STATIC_DRAW);

		gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, 0);

		isLoaded = true;
	}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:32,代码来源:Skybox.java

示例6: loadGPUSubLine

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void loadGPUSubLine(GL2GL3 gl, Renderer renderer, MeshData.SubLineData data) {

	Shader s = renderer.getShader(Renderer.ShaderHandle.DEBUG);

	assert (s.isGood());

	SubLine sub = new SubLine();
	sub._progHandle = s.getProgramHandle();

	int[] is = new int[1];
	gl.glGenBuffers(1, is, 0);
	sub._vertexBuffer = is[0];

	sub._numVerts = data.verts.size();

	sub._hull = data.hull;

	// Init vertices
	FloatBuffer fb = FloatBuffer.allocate(data.verts.size() * 3); //
	for (Vec3d v : data.verts) {
		RenderUtils.putPointXYZ(fb, v);
	}
	fb.flip();

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, sub._vertexBuffer);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, sub._numVerts * 3 * 4, fb, GL2GL3.GL_STATIC_DRAW);

	// Bind the shader variables
	sub._modelViewMatVar = gl.glGetUniformLocation(sub._progHandle, "modelViewMat");
	sub._projMatVar = gl.glGetUniformLocation(sub._progHandle, "projMat");

	sub._diffuseColor = new Color4d(data.diffuseColor);
	sub._colorVar = gl.glGetUniformLocation(sub._progHandle, "color");

	sub._cVar = gl.glGetUniformLocation(sub._progHandle, "C");
	sub._fcVar = gl.glGetUniformLocation(sub._progHandle, "FC");

	_subLines.add(sub);
}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:40,代码来源:MeshProto.java

示例7: draw

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
public void draw() {
	final GL2GL3 gl = GLContext.getCurrentGL().getGL2GL3();

	if (options.usingVBOs) {
		gl.glBindBuffer(GL.GL_ARRAY_BUFFER, vertexVbo);
	}
	for (int i = 0; i < options.attributes.size(); i++) {
		gl.glEnableVertexAttribArray(vertexAttribLocations[i]);
		VertexAttribute attribute = options.attributes.get(i);
		if (options.usingVBOs) {
			gl.glVertexAttribPointer(
					vertexAttribLocations[i],
					attribute.size,
					attribute.type,
					attribute.normalized,
					bytesPerVertex,
					vertexAttribOffsets[i]);
		} else {
			vertices.position(vertexAttribOffsets[i]);
			gl.getGL2().glVertexAttribPointer(
					vertexAttribLocations[i],
					attribute.size,
					attribute.type,
					attribute.normalized,
					bytesPerVertex,
					vertices);
		}
	}

	gl.glDrawArrays(options.mode, 0, numVertices);

	for (int i = 0; i < vertexAttribLocations.length; i++) {
		gl.glDisableVertexAttribArray(vertexAttribLocations[i]);
	}
}
 
开发者ID:jedwards1211,项目名称:breakout,代码行数:36,代码来源:StaticRenderer.java

示例8: setupVAO

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void setupVAO(int contextID, Renderer renderer) {
	GL2GL3 gl = renderer.getGL();

	int vao = renderer.generateVAO(contextID, gl);
	VAOMap.put(contextID, vao);

	gl.glBindVertexArray(vao);


	// Position
	int posVar = gl.glGetAttribLocation(progHandle, "position");
	gl.glEnableVertexAttribArray(posVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vertBuff);
	gl.glVertexAttribPointer(posVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, 0);

	gl.glBindVertexArray(0);

}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:22,代码来源:Skybox.java

示例9: initStaticBuffers

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private static void initStaticBuffers(Renderer r) {
	GL2GL3 gl = r.getGL();

	int[] buffs = new int[3];
	gl.glGenBuffers(3, buffs, 0);
	vertBuff = buffs[0];
	texCoordBuff = buffs[1];
	normalBuff = buffs[2];

	FloatBuffer verts = FloatBuffer.allocate(6*3); // 2 triangles * 3 coordinates
	verts.put(-0.5f); verts.put(-0.5f); verts.put(0.0f);
	verts.put( 0.5f); verts.put(-0.5f); verts.put(0.0f);
	verts.put( 0.5f); verts.put( 0.5f); verts.put(0.0f);

	verts.put(-0.5f); verts.put(-0.5f); verts.put(0.0f);
	verts.put( 0.5f); verts.put( 0.5f); verts.put(0.0f);
	verts.put(-0.5f); verts.put( 0.5f); verts.put(0.0f);

	verts.flip();
	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vertBuff);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, 6*3*4, verts, GL2GL3.GL_STATIC_DRAW);

	FloatBuffer texCoords = FloatBuffer.allocate(6*2); // 2 triangles * 2 coordinates

	texCoords.put(0.0f); texCoords.put(0.0f);
	texCoords.put(1.0f); texCoords.put(0.0f);
	texCoords.put(1.0f); texCoords.put(1.0f);

	texCoords.put(0.0f); texCoords.put(0.0f);
	texCoords.put(1.0f); texCoords.put(1.0f);
	texCoords.put(0.0f); texCoords.put(1.0f);

	texCoords.flip();
	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, texCoordBuff);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, 6*2*4, texCoords, GL2GL3.GL_STATIC_DRAW);

	FloatBuffer normals = FloatBuffer.allocate(6*3); // 2 triangles * 3 coordinates
	for (int i = 0; i < 6; ++i) {
		normals.put(0.0f); normals.put(0.0f); normals.put(1.0f);
	}

	normals.flip();
	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, normalBuff);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, 6*3*4, normals, GL2GL3.GL_STATIC_DRAW);

	// Initialize the shader variables
	progHandle = r.getMeshShader(Renderer.DIFF_TEX_FLAG).getProgramHandle();

	modelViewMatVar = gl.glGetUniformLocation(progHandle, "modelViewMat");
	projMatVar = gl.glGetUniformLocation(progHandle, "projMat");
	normalMatVar = gl.glGetUniformLocation(progHandle, "normalMat");
	bindSpaceMatVar = gl.glGetUniformLocation(progHandle, "bindSpaceMat");
	bindSpaceNorMatVar = gl.glGetUniformLocation(progHandle, "bindSpaceNorMat");
	texVar = gl.glGetUniformLocation(progHandle, "diffuseTex");

	lightDirVar = gl.glGetUniformLocation(progHandle, "lightDir");
	lightIntVar = gl.glGetUniformLocation(progHandle, "lightIntensity");
	numLightsVar = gl.glGetUniformLocation(progHandle, "numLights");

	specColorVar = gl.glGetUniformLocation(progHandle, "specColor");
	ambientColorVar = gl.glGetUniformLocation(progHandle, "ambientColor");
	shininessVar = gl.glGetUniformLocation(progHandle, "shininess");

	cVar = gl.glGetUniformLocation(progHandle, "C");
	fcVar = gl.glGetUniformLocation(progHandle, "FC");

	lightDir[0] = 0;
	lightDir[1] = 0;
	lightDir[2] = -1;

	lightInt[0] = 1;

	staticInit = true;
}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:75,代码来源:TextureView.java

示例10: initStaticBuffers

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private static void initStaticBuffers(Renderer r) {
	GL2GL3 gl = r.getGL();

	int[] buffs = new int[2];
	gl.glGenBuffers(2, buffs, 0);
	vertBuff = buffs[0];
	texCoordBuff = buffs[1];

	FloatBuffer verts = FloatBuffer.allocate(6*3); // 2 triangles * 3 coordinates
	verts.put(0.0f); verts.put(0.0f); verts.put(0.0f);
	verts.put(1.0f); verts.put(0.0f); verts.put(0.0f);
	verts.put(1.0f); verts.put(1.0f); verts.put(0.0f);

	verts.put(0.0f); verts.put(0.0f); verts.put(0.0f);
	verts.put(1.0f); verts.put(1.0f); verts.put(0.0f);
	verts.put(0.0f); verts.put(1.0f); verts.put(0.0f);

	verts.flip();
	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vertBuff);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, 6*3*4, verts, GL2GL3.GL_STATIC_DRAW);

	FloatBuffer texCoords = FloatBuffer.allocate(6*2); // 2 triangles * 2 coordinates

	texCoords.put(0.0f); texCoords.put(0.0f);
	texCoords.put(1.0f); texCoords.put(0.0f);
	texCoords.put(1.0f); texCoords.put(1.0f);

	texCoords.put(0.0f); texCoords.put(0.0f);
	texCoords.put(1.0f); texCoords.put(1.0f);
	texCoords.put(0.0f); texCoords.put(1.0f);

	texCoords.flip();
	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, texCoordBuff);
	gl.glBufferData(GL2GL3.GL_ARRAY_BUFFER, 6*2*4, texCoords, GL2GL3.GL_STATIC_DRAW);

	// Initialize the shader variables
	progHandle = r.getShader(Renderer.ShaderHandle.OVERLAY_FLAT).getProgramHandle();

	texVar = gl.glGetUniformLocation(progHandle, "tex");
	hasTexVar = gl.glGetUniformLocation(progHandle, "useTex");
	sizeVar = gl.glGetUniformLocation(progHandle, "size");
	offsetVar = gl.glGetUniformLocation(progHandle, "offset");

	staticInit = true;
}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:46,代码来源:OverlayTexture.java

示例11: setupVAO

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void setupVAO(int contextID, Renderer renderer) {
	GL2GL3 gl = renderer.getGL();

	int vao = renderer.generateVAO(contextID, gl);
	VAOMap.put(contextID, vao);

	gl.glBindVertexArray(vao);


	// Position
	int posVar = gl.glGetAttribLocation(progHandle, "position");
	gl.glEnableVertexAttribArray(posVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vertBuff);
	gl.glVertexAttribPointer(posVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	// TexCoords
	int texCoordVar = gl.glGetAttribLocation(progHandle, "texCoordVert");
	gl.glEnableVertexAttribArray(texCoordVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, texCoordBuff);
	gl.glVertexAttribPointer(texCoordVar, 2, GL2GL3.GL_FLOAT, false, 0, 0);

	gl.glBindVertexArray(0);
}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:26,代码来源:OverlayTexture.java

示例12: loadGLTexture

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private int loadGLTexture(GL2GL3 gl, LoadingEntry le) {

		if (le.failed.get()) {
			return badTextureID;
		}

		int[] i = new int[1];
		gl.glGenTextures(1, i, 0);
		int glTexID = i[0];

		gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, glTexID);

		if (le.compressed)
			gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_MIN_FILTER, GL2GL3.GL_LINEAR );
		else
			gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_MIN_FILTER, GL2GL3.GL_LINEAR_MIPMAP_LINEAR );

		gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_MAG_FILTER, GL2GL3.GL_LINEAR );
		gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_S, GL2GL3.GL_REPEAT);
		gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_T, GL2GL3.GL_REPEAT);

		gl.glPixelStorei(GL2GL3.GL_UNPACK_ALIGNMENT, 1);

		// Attempt to load to a proxy texture first, then see what happens
		int internalFormat = 0;
		if (le.hasAlpha && le.compressed) {
			// We do not currently support compressed textures with alpha
			assert(false);
			return badTextureID;
		} else if(le.hasAlpha && !le.compressed) {
			internalFormat = GL2GL3.GL_RGBA;
		} else if(!le.hasAlpha && le.compressed) {
			internalFormat = GL2GL3.GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
		} else if(!le.hasAlpha && !le.compressed) {
			internalFormat = GL2GL3.GL_RGB;
		}

		gl.glBindBuffer(GL2GL3.GL_PIXEL_UNPACK_BUFFER, le.bufferID);
		gl.glUnmapBuffer(GL2GL3.GL_PIXEL_UNPACK_BUFFER);

		try {
			if (le.compressed) {
				gl.glCompressedTexImage2D(GL2GL3.GL_TEXTURE_2D, 0, internalFormat, le.width,
				                          le.height, 0, le.data.capacity(), 0);
				_renderer.usingVRAM(le.data.capacity());
			} else {
				gl.glTexImage2D(GL2GL3.GL_TEXTURE_2D, 0, internalFormat, le.width,
				                le.height, 0, GL2GL3.GL_BGRA, GL2GL3.GL_UNSIGNED_INT_8_8_8_8_REV, 0);
				_renderer.usingVRAM(le.width*le.height*4);
			}

			// Note we do not let openGL generate compressed mipmaps because it stalls the render thread really badly
			// in theory it could be generated in the worker thread, but not yet
			if (!le.compressed)
				gl.glGenerateMipmap(GL2GL3.GL_TEXTURE_2D);
		} catch (GLException ex) {
			// We do not have enough texture memory
			LogBox.renderLog(String.format("Error loading texture: %s", le.imageURI.toString()));
			LogBox.renderLog(String.format("  %s", ex.toString()));
			return badTextureID;
		}

		gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, 0);

		gl.glBindBuffer(GL2GL3.GL_PIXEL_UNPACK_BUFFER, 0);
		i[0] = le.bufferID;
		gl.glDeleteBuffers(1, i, 0);

		// Finally queue a redraw in case an asset avoided drawing this one
		_renderer.queueRedraw();
		return glTexID;
	}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:73,代码来源:TexCache.java

示例13: setupVAO

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void setupVAO(int contextID, Renderer renderer, int progHandle, int vertexBuffer, int indexBuffer) {
	GL2GL3 gl = renderer.getGL();

	int vao = renderer.generateVAO(contextID, gl);

	_vaoMap.put(contextID, vao);
	gl.glBindVertexArray(vao);

	gl.glUseProgram(progHandle);

	int posVar = gl.glGetAttribLocation(progHandle, "position");
	gl.glEnableVertexAttribArray(posVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, vertexBuffer);
	gl.glVertexAttribPointer(posVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	gl.glBindBuffer(GL2GL3.GL_ELEMENT_ARRAY_BUFFER, indexBuffer);

	gl.glBindVertexArray(0);

}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:22,代码来源:HullProto.java

示例14: setupVAOForSubMeshImp

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void setupVAOForSubMeshImp(int contextID, int shaderID, SubMesh sub, Renderer renderer) {
	GL2GL3 gl = renderer.getGL();

	int vao = renderer.generateVAO(contextID, gl);
	sub.vaoMaps[shaderID].put(contextID, vao);
	gl.glBindVertexArray(vao);

	int progHandle = sInfos[shaderID].meshProgHandle;
	gl.glUseProgram(progHandle);

	int texCoordVar = gl.glGetAttribLocation(progHandle, "texCoord");

	// For some shaders the texCoordVar may be optimized away
	if (texCoordVar != -1) {
		if (sub._texCoordBuffer != 0) {
			// Texture coordinates
			gl.glEnableVertexAttribArray(texCoordVar);

			gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, sub._texCoordBuffer);
			gl.glVertexAttribPointer(texCoordVar, 2, GL2GL3.GL_FLOAT, false, 0, 0);
		} else {
			gl.glVertexAttrib2f(texCoordVar, 0, 0);
		}
	}

	int posVar = gl.glGetAttribLocation(progHandle, "position");
	gl.glEnableVertexAttribArray(posVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, sub._vertexBuffer);
	gl.glVertexAttribPointer(posVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	// Normals
	int normalVar = gl.glGetAttribLocation(progHandle, "normal");
	gl.glEnableVertexAttribArray(normalVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, sub._normalBuffer);
	gl.glVertexAttribPointer(normalVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	if (!flattenBuffers) {
		gl.glBindBuffer(GL2GL3.GL_ELEMENT_ARRAY_BUFFER, sub._indexBuffer);
	}

	gl.glBindVertexArray(0);

}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:46,代码来源:MeshProto.java

示例15: setupVAOForSubLine

import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void setupVAOForSubLine(int contextID, SubLine sub, Renderer renderer) {
	GL2GL3 gl = renderer.getGL();

	int vao = renderer.generateVAO(contextID, gl);
	sub.vaoMap.put(contextID, vao);
	gl.glBindVertexArray(vao);

	int prog = sub._progHandle;
	gl.glUseProgram(prog);

	int posVar = gl.glGetAttribLocation(prog, "position");
	gl.glEnableVertexAttribArray(posVar);

	gl.glBindBuffer(GL2GL3.GL_ARRAY_BUFFER, sub._vertexBuffer);
	gl.glVertexAttribPointer(posVar, 3, GL2GL3.GL_FLOAT, false, 0, 0);

	gl.glBindVertexArray(0);

}
 
开发者ID:jaamsim,项目名称:jaamsim,代码行数:20,代码来源:MeshProto.java


注:本文中的com.jogamp.opengl.GL2GL3.glBindBuffer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。