/*
This file is part of jpcsp.
Jpcsp is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Jpcsp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Jpcsp. If not, see <http://www.gnu.org/licenses/>.
*/
package jpcsp.graphics.RE;
import java.nio.Buffer;
import java.nio.IntBuffer;
import jpcsp.graphics.GeContext;
import jpcsp.graphics.VertexInfo;
import jpcsp.graphics.RE.buffer.IREBufferManager;
/**
* @author gid15
*
* The interface for a RenderingEngine pipeline elements.
*/
public interface IRenderingEngine {
public static final int[] sizeOfTextureType = {
2, // TPSM_PIXEL_STORAGE_MODE_16BIT_BGR5650
2, // TPSM_PIXEL_STORAGE_MODE_16BIT_ABGR5551
2, // TPSM_PIXEL_STORAGE_MODE_16BIT_ABGR4444
4, // TPSM_PIXEL_STORAGE_MODE_32BIT_ABGR8888
0, // TPSM_PIXEL_STORAGE_MODE_4BIT_INDEXED
1, // TPSM_PIXEL_STORAGE_MODE_8BIT_INDEXED
2, // TPSM_PIXEL_STORAGE_MODE_16BIT_INDEXED
4, // TPSM_PIXEL_STORAGE_MODE_32BIT_INDEXED
0, // TPSM_PIXEL_STORAGE_MODE_DXT1
0, // TPSM_PIXEL_STORAGE_MODE_DXT3
0, // TPSM_PIXEL_STORAGE_MODE_DXT5
2, // RE_PIXEL_STORAGE_16BIT_INDEXED_BGR5650
2, // RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR5651
2, // RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR4444
4, // RE_PIXEL_STORAGE_32BIT_INDEXED_ABGR8888
4, // RE_DEPTH_COMPONENT
4, // RE_STENCIL_INDEX
4 // RE_DEPTH_STENCIL
};
public static final int[] alignementOfTextureBufferWidth = {
8, // TPSM_PIXEL_STORAGE_MODE_16BIT_BGR5650
8, // TPSM_PIXEL_STORAGE_MODE_16BIT_ABGR5551
8, // TPSM_PIXEL_STORAGE_MODE_16BIT_ABGR4444
4, // TPSM_PIXEL_STORAGE_MODE_32BIT_ABGR8888
32, // TPSM_PIXEL_STORAGE_MODE_4BIT_INDEXED
16, // TPSM_PIXEL_STORAGE_MODE_8BIT_INDEXED
8, // TPSM_PIXEL_STORAGE_MODE_16BIT_INDEXED
4, // TPSM_PIXEL_STORAGE_MODE_32BIT_INDEXED
1, // TPSM_PIXEL_STORAGE_MODE_DXT1
1, // TPSM_PIXEL_STORAGE_MODE_DXT3
1, // TPSM_PIXEL_STORAGE_MODE_DXT5
8, // RE_PIXEL_STORAGE_16BIT_INDEXED_BGR5650
8, // RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR5651
8, // RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR4444
4, // RE_PIXEL_STORAGE_32BIT_INDEXED_ABGR8888
4, // RE_DEPTH_COMPONENT
4, // RE_STENCIL_INDEX
4 // RE_DEPTH_STENCIL
};
public static final boolean[] isTextureTypeIndexed = {
false, // TPSM_PIXEL_STORAGE_MODE_16BIT_BGR5650
false, // TPSM_PIXEL_STORAGE_MODE_16BIT_ABGR5551
false, // TPSM_PIXEL_STORAGE_MODE_16BIT_ABGR4444
false, // TPSM_PIXEL_STORAGE_MODE_32BIT_ABGR8888
true, // TPSM_PIXEL_STORAGE_MODE_4BIT_INDEXED
true, // TPSM_PIXEL_STORAGE_MODE_8BIT_INDEXED
true, // TPSM_PIXEL_STORAGE_MODE_16BIT_INDEXED
true, // TPSM_PIXEL_STORAGE_MODE_32BIT_INDEXED
false, // TPSM_PIXEL_STORAGE_MODE_DXT1
false, // TPSM_PIXEL_STORAGE_MODE_DXT3
false, // TPSM_PIXEL_STORAGE_MODE_DXT5
true, // RE_PIXEL_STORAGE_16BIT_INDEXED_BGR5650
true, // RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR5551
true, // RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR4444
true, // RE_PIXEL_STORAGE_32BIT_INDEXED_ABGR8888
false, // RE_DEPTH_COMPONENT
false, // RE_STENCIL_INDEX
false // RE_DEPTH_STENCIL
};
// Additional Texture types
public static final int RE_PIXEL_STORAGE_16BIT_INDEXED_BGR5650 = 11;
public static final int RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR5551 = 12;
public static final int RE_PIXEL_STORAGE_16BIT_INDEXED_ABGR4444 = 13;
public static final int RE_PIXEL_STORAGE_32BIT_INDEXED_ABGR8888 = 14;
public static final int RE_DEPTH_COMPONENT = 15;
public static final int RE_STENCIL_INDEX = 16;
public static final int RE_DEPTH_STENCIL = 17;
// Flags:
public static final int GU_ALPHA_TEST = 0;
public static final int GU_DEPTH_TEST = 1;
public static final int GU_SCISSOR_TEST = 2;
public static final int GU_STENCIL_TEST = 3;
public static final int GU_BLEND = 4;
public static final int GU_CULL_FACE = 5;
public static final int GU_DITHER = 6;
public static final int GU_FOG = 7;
public static final int GU_CLIP_PLANES = 8;
public static final int GU_TEXTURE_2D = 9;
public static final int GU_LIGHTING = 10;
public static final int GU_LIGHT0 = 11;
public static final int GU_LIGHT1 = 12;
public static final int GU_LIGHT2 = 13;
public static final int GU_LIGHT3 = 14;
public static final int GU_LINE_SMOOTH = 15;
public static final int GU_PATCH_CULL_FACE = 16;
public static final int GU_COLOR_TEST = 17;
public static final int GU_COLOR_LOGIC_OP = 18;
public static final int GU_FACE_NORMAL_REVERSE = 19;
public static final int GU_PATCH_FACE = 20;
public static final int GU_FRAGMENT_2X = 21;
public static final int RE_COLOR_MATERIAL = 22;
public static final int RE_TEXTURE_GEN_S = 23;
public static final int RE_TEXTURE_GEN_T = 24;
public static final int RE_NUMBER_FLAGS = 25; // Always the last one
// Primitive types:
public static final int GU_POINTS = 0;
public static final int GU_LINES = 1;
public static final int GU_LINE_STRIP = 2;
public static final int GU_TRIANGLES = 3;
public static final int GU_TRIANGLE_STRIP = 4;
public static final int GU_TRIANGLE_FAN = 5;
public static final int GU_SPRITES = 6;
public static final int RE_QUADS = 7;
public static final int RE_LINES_ADJACENCY = 8;
public static final int RE_TRIANGLES_ADJACENCY = 9;
public static final int RE_TRIANGLE_STRIP_ADJACENCY = 10;
// Matrix modes:
public static final int GU_PROJECTION = 0;
public static final int GU_VIEW = 1;
public static final int GU_MODEL = 2;
public static final int GU_TEXTURE = 3;
public static final int RE_MODELVIEW = 4;
// Shade models:
public static final int GU_FLAT = 0;
public static final int GU_SMOOTH = 1;
// Color types:
public static final int RE_AMBIENT = 0;
public static final int RE_EMISSIVE = 1;
public static final int RE_DIFFUSE = 2;
public static final int RE_SPECULAR = 3;
// Light modes:
public static final int GU_SINGLE_COLOR = 0;
public static final int GU_SEPARATE_SPECULAR_COLOR = 1;
// Blend functions:
public static final int GU_FIX_BLEND_COLOR = 10;
public static final int GU_FIX_BLEND_ONE_MINUS_COLOR = 11;
public static final int GU_FIX_BLACK = 12;
public static final int GU_FIX_WHITE = 13;
// setTexEnv names:
public static final int RE_TEXENV_COMBINE_RGB = 0;
public static final int RE_TEXENV_COMBINE_ALPHA= 1;
public static final int RE_TEXENV_RGB_SCALE = 2;
public static final int RE_TEXENV_ALPHA_SCALE = 3;
public static final int RE_TEXENV_SRC0_RGB = 4;
public static final int RE_TEXENV_SRC1_RGB = 5;
public static final int RE_TEXENV_SRC2_RGB = 6;
public static final int RE_TEXENV_SRC0_ALPHA = 7;
public static final int RE_TEXENV_SRC1_ALPHA = 8;
public static final int RE_TEXENV_SRC2_ALPHA = 9;
public static final int RE_TEXENV_OPERAND0_RGB = 10;
public static final int RE_TEXENV_OPERAND1_RGB = 11;
public static final int RE_TEXENV_OPERAND2_RGB = 12;
public static final int RE_TEXENV_OPERAND0_ALPHA=13;
public static final int RE_TEXENV_OPERAND1_ALPHA=14;
public static final int RE_TEXENV_OPERAND2_ALPHA=15;
public static final int RE_TEXENV_ENV_MODE = 16;
// setTexEnv params:
// values [0..4] are TFUNC_FRAGMENT_DOUBLE_TEXTURE_EFECT_xxx
public static final int RE_TEXENV_MODULATE = 0;
public static final int RE_TEXENV_DECAL = 1;
public static final int RE_TEXENV_BLEND = 2;
public static final int RE_TEXENV_REPLACE = 3;
public static final int RE_TEXENV_ADD = 4;
public static final int RE_TEXENV_INTERPOLATE = 5;
public static final int RE_TEXENV_SUBTRACT = 6;
public static final int RE_TEXENV_TEXTURE = 7;
public static final int RE_TEXENV_CONSTANT = 8;
public static final int RE_TEXENV_PREVIOUS = 9;
public static final int RE_TEXENV_SRC_COLOR = 10;
public static final int RE_TEXENV_SRC_ALPHA = 11;
public static final int RE_TEXENV_COMBINE = 12;
// Shader types:
public static final int RE_VERTEX_SHADER = 0;
public static final int RE_FRAGMENT_SHADER = 1;
public static final int RE_GEOMETRY_SHADER = 2;
// Client State types:
public static final int RE_TEXTURE = 0;
public static final int RE_COLOR = 1;
public static final int RE_NORMAL = 2;
public static final int RE_VERTEX = 3;
// Pointer types:
public static final int RE_BYTE = 0;
public static final int RE_UNSIGNED_BYTE = 1;
public static final int RE_SHORT = 2;
public static final int RE_UNSIGNED_SHORT = 3;
public static final int RE_INT = 4;
public static final int RE_UNSIGNED_INT = 5;
public static final int RE_FLOAT = 6;
public static final int RE_DOUBLE = 7;
public static final int[] sizeOfType = {
1, // RE_BYTE
1, // RE_UNSIGNED_BYTE
2, // RE_SHORT
2, // RE_UNSIGNED_SHORT
4, // RE_INT
4, // RE_UNSIGNED_INT
4, // RE_FLOAT
8 // RE_DOUBLE
};
// Buffer usage:
public static final int RE_STREAM_DRAW = 0;
public static final int RE_STREAM_READ = 1;
public static final int RE_STREAM_COPY = 2;
public static final int RE_STATIC_DRAW = 3;
public static final int RE_STATIC_READ = 4;
public static final int RE_STATIC_COPY = 5;
public static final int RE_DYNAMIC_DRAW = 6;
public static final int RE_DYNAMIC_READ = 7;
public static final int RE_DYNAMIC_COPY = 8;
// Program parameters
public static final int RE_GEOMETRY_INPUT_TYPE = 0;
public static final int RE_GEOMETRY_OUTPUT_TYPE = 1;
public static final int RE_GEOMETRY_VERTICES_OUT = 2;
// Buffer Target
public static final int RE_ARRAY_BUFFER = 0;
public static final int RE_UNIFORM_BUFFER = 1;
public static final int RE_ELEMENT_ARRAY_BUFFER = 2;
// Framebuffer Target
public static final int RE_FRAMEBUFFER = 0;
public static final int RE_READ_FRAMEBUFFER = 1;
public static final int RE_DRAW_FRAMEBUFFER = 2;
// Framebuffer Attachment
public static final int RE_DEPTH_ATTACHMENT = 0;
public static final int RE_STENCIL_ATTACHMENT = 1;
public static final int RE_DEPTH_STENCIL_ATTACHMENT = 2;
public static final int RE_COLOR_ATTACHMENT0 = 3;
public static final int RE_COLOR_ATTACHMENT1 = 4;
public static final int RE_COLOR_ATTACHMENT2 = 5;
public static final int RE_COLOR_ATTACHMENT3 = 6;
public static final int RE_COLOR_ATTACHMENT4 = 7;
public static final int RE_COLOR_ATTACHMENT5 = 8;
public static final int RE_COLOR_ATTACHMENT6 = 9;
public static final int RE_COLOR_ATTACHMENT7 = 10;
// Pixel Transfer parameter
public static final int RE_MAP_COLOR = 0;
public static final int RE_MAP_STENCIL = 1;
public static final int RE_INDEX_SHIFT = 2;
public static final int RE_INDEX_OFFSET = 3;
public static final int RE_RED_SCALE = 4;
public static final int RE_GREEN_SCALE = 5;
public static final int RE_BLUE_SCALE = 6;
public static final int RE_ALPHA_SCALE = 7;
public static final int RE_DEPTH_SCALE = 8;
public static final int RE_RED_BIAS = 9;
public static final int RE_GREEN_BIAS = 10;
public static final int RE_BLUE_BIAS = 11;
public static final int RE_ALPHA_BIAS = 12;
public static final int RE_DEPTH_BIAS = 13;
// Pixel map
public static final int RE_PIXEL_MAP_I_TO_I = 0;
public static final int RE_PIXEL_MAP_S_TO_S = 1;
public static final int RE_PIXEL_MAP_I_TO_R = 2;
public static final int RE_PIXEL_MAP_I_TO_G = 3;
public static final int RE_PIXEL_MAP_I_TO_B = 4;
public static final int RE_PIXEL_MAP_I_TO_A = 5;
public static final int RE_PIXEL_MAP_R_TO_R = 6;
public static final int RE_PIXEL_MAP_G_TO_G = 7;
public static final int RE_PIXEL_MAP_B_TO_B = 8;
public static final int RE_PIXEL_MAP_A_TO_A = 9;
// Clut Index Hint
public static final int RE_CLUT_INDEX_NO_HINT = 0;
public static final int RE_CLUT_INDEX_RED_ONLY = 1;
public static final int RE_CLUT_INDEX_GREEN_ONLY = 2;
public static final int RE_CLUT_INDEX_BLUE_ONLY = 3;
public static final int RE_CLUT_INDEX_ALPHA_ONLY = 4;
// Buffers flag
public static final int RE_COLOR_BUFFER_BIT = (1 << 0);
public static final int RE_DEPTH_BUFFER_BIT = (1 << 1);
public static final int RE_STENCIL_BUFFER_BIT = (1 << 2);
public void setRenderingEngine(IRenderingEngine re);
public void setGeContext(GeContext context);
public void exit();
public void startDirectRendering(boolean textureEnabled, boolean depthWriteEnabled, boolean colorWriteEnabled, boolean setOrthoMatrix, boolean orthoInverted, int width, int height);
public void endDirectRendering();
public void startDisplay();
public void endDisplay();
public void enableFlag(int flag);
public void disableFlag(int flag);
public void setMorphWeight(int index, float value);
public void setPatchDiv(int s, int t);
public void setPatchPrim(int prim);
public void setMatrixMode(int type);
public void setMatrix(float[] values);
public void multMatrix(float[] values);
public void setProjectionMatrix(float[] values);
public void setViewMatrix(float[] values);
public void setModelMatrix(float[] values);
public void setModelViewMatrix(float[] values);
public void setTextureMatrix(float[] values);
public void endModelViewMatrixUpdate();
public void setViewport(int x, int y, int width, int height);
public void setDepthRange(float zpos, float zscale, int near, int far);
public void setDepthFunc(int func);
public void setShadeModel(int model);
public void setMaterialEmissiveColor(float[] color);
public void setMaterialAmbientColor(float[] color);
public void setMaterialDiffuseColor(float[] color);
public void setMaterialSpecularColor(float[] color);
public void setMaterialShininess(float shininess);
public void setLightModelAmbientColor(float[] color);
public void setLightMode(int mode);
public void setLightPosition(int light, float[] position);
public void setLightDirection(int light, float[] direction);
public void setLightSpotExponent(int light, float exponent);
public void setLightSpotCutoff(int light, float cutoff);
public void setLightConstantAttenuation(int light, float constant);
public void setLightLinearAttenuation(int light, float linear);
public void setLightQuadraticAttenuation(int light, float quadratic);
public void setLightAmbientColor(int light, float[] color);
public void setLightDiffuseColor(int light, float[] color);
public void setLightSpecularColor(int light, float[] color);
public void setLightType(int light, int type, int kind);
public void setBlendFunc(int src, int dst);
public void setBlendColor(float[] color);
public void setLogicOp(int logicOp);
public void setDepthMask(boolean depthWriteEnabled);
public void setColorMask(int redMask, int greenMask, int blueMask, int alphaMask);
public void setColorMask(boolean redWriteEnabled, boolean greenWriteEnabled, boolean blueWriteEnabled, boolean alphaWriteEnabled);
public void setTextureWrapMode(int s, int t);
public void setTextureMipmapMinLevel(int level);
public void setTextureMipmapMaxLevel(int level);
public void setTextureMipmapMinFilter(int filter);
public void setTextureMipmapMagFilter(int filter);
public void setColorMaterial(boolean ambient, boolean diffuse, boolean specular);
public void setTextureMapMode(int mode, int proj);
public void setTextureEnvironmentMapping(int u, int v);
public void setVertexColor(float[] color);
public void setUniform(int id, int value);
public void setUniform(int id, int value1, int value2);
public void setUniform(int id, float value);
public void setUniform2(int id, int[] values);
public void setUniform3(int id, int[] values);
public void setUniform3(int id, float[] values);
public void setUniform4(int id, int[] values);
public void setUniform4(int id, float[] values);
public void setUniformMatrix4(int id, int count, float[] values);
public void setColorTestFunc(int func);
public void setColorTestReference(int[] values);
public void setColorTestMask(int[] values);
public void setTextureFunc(int func, boolean alphaUsed, boolean colorDoubled);
public int setBones(int count, float[] values);
public void setTexEnv(int name, int param);
public void setTexEnv(int name, float param);
public void startClearMode(boolean color, boolean stencil, boolean depth);
public void endClearMode();
public int createShader(int type);
public boolean compilerShader(int shader, String source);
public int createProgram();
public void useProgram(int program);
public void attachShader(int program, int shader);
public boolean linkProgram(int program);
public boolean validateProgram(int program);
public int getUniformLocation(int program, String name);
public int getAttribLocation(int program, String name);
public void bindAttribLocation(int program, int index, String name);
public String getShaderInfoLog(int shader);
public String getProgramInfoLog(int program);
public boolean isExtensionAvailable(String name);
public void drawArrays(int primitive, int first, int count);
public void drawElements(int primitive, int count, int indexType, Buffer indices, int indicesOffset);
public void drawElements(int primitive, int count, int indexType, long indicesOffset);
public int genBuffer();
public void deleteBuffer(int buffer);
public void setBufferData(int target, int size, Buffer buffer, int usage);
public void setBufferSubData(int target, int offset, int size, Buffer buffer);
public void bindBuffer(int target, int buffer);
public void enableClientState(int type);
public void disableClientState(int type);
public void enableVertexAttribArray(int id);
public void disableVertexAttribArray(int id);
public void setTexCoordPointer(int size, int type, int stride, long offset);
public void setTexCoordPointer(int size, int type, int stride, int bufferSize, Buffer buffer);
public void setColorPointer(int size, int type, int stride, long offset);
public void setColorPointer(int size, int type, int stride, int bufferSize, Buffer buffer);
public void setVertexPointer(int size, int type, int stride, long offset);
public void setVertexPointer(int size, int type, int stride, int bufferSize, Buffer buffer);
public void setNormalPointer(int type, int stride, long offset);
public void setNormalPointer(int type, int stride, int bufferSize, Buffer buffer);
public void setWeightPointer(int size, int type, int stride, long offset);
public void setWeightPointer(int size, int type, int stride, int bufferSize, Buffer buffer);
public void setVertexAttribPointer(int id, int size, int type, boolean normalized, int stride, long offset);
public void setVertexAttribPointer(int id, int size, int type, boolean normalized, int stride, int bufferSize, Buffer buffer);
public void setPixelStore(int rowLength, int alignment);
public int genTexture();
public void bindTexture(int texture);
public void deleteTexture(int texture);
public void setCompressedTexImage(int level, int internalFormat, int width, int height, int compressedSize, Buffer buffer);
public void setTexImage(int level, int internalFormat, int width, int height, int format, int type, int textureSize, Buffer buffer);
public void setTexImagexBRZ(int level, int internalFormat, int width, int height, int bufwidth, int format, int type, int textureSize, Buffer buffer);
public void setTexSubImage(int level, int xOffset, int yOffset, int width, int height, int format, int type, int textureSize, Buffer buffer);
public void getTexImage(int level, int format, int type, Buffer buffer);
public void copyTexSubImage(int level, int xOffset, int yOffset, int x, int y, int width, int height);
public void setStencilOp(int fail, int zfail, int zpass);
public void setStencilFunc(int func, int ref, int mask);
public void setAlphaFunc(int func, int ref, int mask);
public void setFogHint();
public void setFogColor(float[] color);
public void setFogDist(float end, float scale);
public void setTextureEnvColor(float[] color);
public void setFrontFace(boolean cw);
public void setScissor(int x, int y, int width, int height);
public void setBlendEquation(int mode);
public void setLineSmoothHint();
public void beginBoundingBox(int numberOfVertexBoundingBox);
public void drawBoundingBox(float[][] values);
public void endBoundingBox(VertexInfo vinfo);
public boolean isBoundingBoxVisible();
public int genQuery();
public void beginQuery(int id);
public void endQuery();
public boolean getQueryResultAvailable(int id);
public int getQueryResult(int id);
public void clear(float red, float green, float blue, float alpha);
public IREBufferManager getBufferManager();
public boolean canAllNativeVertexInfo();
public boolean canNativeSpritesPrimitive();
public void setVertexInfo(VertexInfo vinfo, boolean allNativeVertexInfo, boolean useVertexColor, boolean useTexture, int type);
public void setProgramParameter(int program, int parameter, int value);
public boolean isQueryAvailable();
public boolean isShaderAvailable();
public int getUniformBlockIndex(int program, String name);
public void bindBufferBase(int target, int bindingPoint, int buffer);
public void setUniformBlockBinding(int program, int blockIndex, int bindingPoint);
public int getUniformIndex(int program, String name);
public int[] getUniformIndices(int program, String[] names);
public int getActiveUniformOffset(int program, int uniformIndex);
public boolean isFramebufferObjectAvailable();
public int genFramebuffer();
public int genRenderbuffer();
public void deleteFramebuffer(int framebuffer);
public void deleteRenderbuffer(int renderbuffer);
public void bindFramebuffer(int target, int framebuffer);
public void bindRenderbuffer(int renderbuffer);
public void setRenderbufferStorage(int internalFormat, int width, int height);
public void setFramebufferRenderbuffer(int target, int attachment, int renderbuffer);
public void setFramebufferTexture(int target, int attachment, int texture, int level);
public int genVertexArray();
public void bindVertexArray(int id);
public void deleteVertexArray(int id);
public boolean isVertexArrayAvailable();
public void multiDrawArrays(int primitive, IntBuffer first, IntBuffer count);
public void drawArraysBurstMode(int primitive, int first, int count);
public void multiDrawElements(int primitive, IntBuffer first, IntBuffer count, int indexType, long indicesOffset);
public void drawElementsBurstMode(int primitive, int count, int indexType, long indicesOffset);
public void setPixelTransfer(int parameter, int value);
public void setPixelTransfer(int parameter, float value);
public void setPixelTransfer(int parameter, boolean value);
public void setPixelMap(int map, int mapSize, Buffer buffer);
public boolean canNativeClut(int textureAddress, boolean textureSwizzle);
public void setActiveTexture(int index);
public void setTextureFormat(int pixelFormat, boolean swizzle);
public void bindActiveTexture(int index, int texture);
public void setTextureAnisotropy(float value);
public float getMaxTextureAnisotropy();
public String getShadingLanguageVersion();
public void setBlendSFix(int sfix, float[] color);
public void setBlendDFix(int dfix, float[] color);
public void waitForRenderingCompletion();
public boolean canReadAllVertexInfo();
public void readStencil(int x, int y, int width, int height, int bufferSize, Buffer buffer);
public void blitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter);
public boolean checkAndLogErrors(String logComment);
public boolean setCopyRedToAlpha(boolean copyRedToAlpha);
public boolean isTextureBarrierAvailable();
public void textureBarrier();
}