本文整理汇总了Java中com.jogamp.opengl.GL2GL3.glTexParameteri方法的典型用法代码示例。如果您正苦于以下问题:Java GL2GL3.glTexParameteri方法的具体用法?Java GL2GL3.glTexParameteri怎么用?Java GL2GL3.glTexParameteri使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.jogamp.opengl.GL2GL3
的用法示例。
在下文中一共展示了GL2GL3.glTexParameteri方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: render
import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
public void render(int contextID, Renderer renderer, Camera cam) {
if (textureURI == null) {
return;
}
if (!isLoaded) {
loadGPUAssets(renderer);
}
if (!VAOMap.containsKey(contextID)) {
setupVAO(contextID, renderer);
}
GL2GL3 gl = renderer.getGL();
int textureID = renderer.getTexCache().getTexID(gl, textureURI, false, false, false);
if (textureID == TexCache.LOADING_TEX_ID) {
// Sky box is not ready yet, get it next time
return;
}
int vao = VAOMap.get(contextID);
gl.glBindVertexArray(vao);
gl.glUseProgram(progHandle);
gl.glUniformMatrix4fv(projMatVar, 1, false, RenderUtils.MarshalMat4d(cam.getProjMat4d()), 0);
Mat4d invViewMat = new Mat4d();
invViewMat.setRot4(cam.getTransformRef().getRotRef());
gl.glUniformMatrix4fv(invViewMatVar, 1, false, RenderUtils.MarshalMat4d(invViewMat), 0);
gl.glActiveTexture(GL2GL3.GL_TEXTURE0);
gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, textureID);
// Disable mipmaps for skyboxes as the discontinuity screws them up
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_MIN_FILTER, GL2GL3.GL_LINEAR );
gl.glUniform1i(texVar, 0);
gl.glDrawArrays(GL2GL3.GL_TRIANGLES, 0, 6);
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_MIN_FILTER, GL2GL3.GL_LINEAR_MIPMAP_LINEAR );
gl.glBindVertexArray(0);
}
示例2: renderImp
import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
private void renderImp(int contextID, Renderer renderer, Camera cam, Ray pickRay) {
if (!staticInit) {
initStaticBuffers(renderer);
}
GL2GL3 gl = renderer.getGL();
int textureID = _texLoader.getTexID(renderer);
if (textureID == TexCache.LOADING_TEX_ID) {
return; // This texture is not ready yet
}
if (!VAOMap.containsKey(contextID)) {
setupVAO(contextID, renderer);
}
int vao = VAOMap.get(contextID);
gl.glBindVertexArray(vao);
Mat4d modelViewMat = new Mat4d();
cam.getViewMat4d(modelViewMat);
modelViewMat.mult4(_trans.getMat4dRef());
modelViewMat.scaleCols3(_scale);
Mat4d normalMat = RenderUtils.getInverseWithScale(_trans, _scale);
normalMat.transpose4();
gl.glUseProgram(progHandle);
gl.glUniformMatrix4fv(modelViewMatVar, 1, false, RenderUtils.MarshalMat4d(modelViewMat), 0);
gl.glUniformMatrix4fv(projMatVar, 1, false, RenderUtils.MarshalMat4d(cam.getProjMat4d()), 0);
gl.glUniformMatrix4fv(normalMatVar, 1, false, RenderUtils.MarshalMat4d(normalMat), 0);
gl.glUniformMatrix4fv(bindSpaceMatVar, 1, false, identMat, 0);
gl.glUniformMatrix4fv(bindSpaceNorMatVar, 1, false, identMat, 0);
gl.glUniform1f(cVar, Camera.C);
gl.glUniform1f(fcVar, Camera.FC);
gl.glUniform1i(numLightsVar, 1);
gl.glUniform3fv(lightDirVar, 1, lightDir, 0);
gl.glUniform1fv(lightIntVar, 1, lightInt, 0);
gl.glUniform3f(ambientColorVar, 0.0f, 0.0f, 0.0f);
gl.glUniform3f(specColorVar, 0.0f, 0.0f, 0.0f);
gl.glUniform1f(shininessVar, 1.0f);
gl.glActiveTexture(GL2GL3.GL_TEXTURE0);
gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, textureID);
gl.glUniform1i(texVar, 0);
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_S, GL2GL3.GL_CLAMP_TO_EDGE);
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_T, GL2GL3.GL_CLAMP_TO_EDGE);
// Draw
gl.glDisable(GL2GL3.GL_CULL_FACE);
gl.glDrawArrays(GL2GL3.GL_TRIANGLES, 0, 6);
gl.glEnable(GL2GL3.GL_CULL_FACE);
gl.glBindVertexArray(0);
}
示例3: render
import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
@Override
public void render(int contextID, Renderer renderer,
double windowWidth, double windowHeight, Camera cam, Ray pickRay) {
if (!staticInit) {
initStaticBuffers(renderer);
}
double x = _x;
double y = _y;
if (_alignRight) {
x = windowWidth - _x - _width;
}
if (!_alignBottom) {
y = windowHeight - _y - _height;
}
GL2GL3 gl = renderer.getGL();
int textureID = renderer.getTexCache().getTexID(gl, _imageURI, _isTransparent, _isCompressed, false);
if (textureID == TexCache.LOADING_TEX_ID) {
return; // This texture is not ready yet
}
if (!VAOMap.containsKey(contextID)) {
setupVAO(contextID, renderer);
}
int vao = VAOMap.get(contextID);
gl.glBindVertexArray(vao);
gl.glUseProgram(progHandle);
gl.glUniform1i(hasTexVar, 1);
gl.glActiveTexture(GL2GL3.GL_TEXTURE0);
gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, textureID);
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_S, GL2GL3.GL_CLAMP_TO_EDGE);
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_T, GL2GL3.GL_CLAMP_TO_EDGE);
gl.glUniform1i(texVar, 0);
if (_isTransparent) {
gl.glEnable(GL2GL3.GL_BLEND);
gl.glBlendEquationSeparate(GL2GL3.GL_FUNC_ADD, GL2GL3.GL_MAX);
gl.glBlendFuncSeparate(GL2GL3.GL_SRC_ALPHA, GL2GL3.GL_ONE_MINUS_SRC_ALPHA, GL2GL3.GL_ONE, GL2GL3.GL_ONE);
}
// Set the size and scale in normalized (-1, 1) coordinates
double normX = x / (0.5 * windowWidth) - 1;
double normY = y / (0.5 * windowHeight) - 1;
double normWidth = _width / (0.5 * windowWidth);
double normHeight = _height / (0.5 * windowHeight);
gl.glUniform2f(offsetVar, (float)normX, (float)normY);
gl.glUniform2f(sizeVar, (float)normWidth, (float)normHeight);
// Draw
gl.glDisable(GL2GL3.GL_CULL_FACE);
gl.glDrawArrays(GL2GL3.GL_TRIANGLES, 0, 6);
gl.glEnable(GL2GL3.GL_CULL_FACE);
if (_isTransparent) {
gl.glDisable(GL2GL3.GL_BLEND);
}
}
示例4: 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;
}
示例5: allocateTexture
import com.jogamp.opengl.GL2GL3; //导入方法依赖的package包/类
public TexHandle allocateTexture(int width, int height, GL2GL3 gl) {
int[] i = new int[1];
gl.glGenTextures(1, i, 0);
int glTexID = i[0];
gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, glTexID);
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_CLAMP_TO_EDGE);
gl.glTexParameteri(GL2GL3.GL_TEXTURE_2D, GL2GL3.GL_TEXTURE_WRAP_T, GL2GL3.GL_CLAMP_TO_EDGE);
renderer.usingVRAM(width*height*4);
gl.glBindTexture(GL2GL3.GL_TEXTURE_2D, 0);
TexHandle h = new TexHandle(glTexID, width, height, this);
allocatedTextures.add(h);
return h;
}