Example usage for javax.microedition.khronos.opengles GL10 glMatrixMode

List of usage examples for javax.microedition.khronos.opengles GL10 glMatrixMode

Introduction

In this page you can find the example usage for javax.microedition.khronos.opengles GL10 glMatrixMode.

Prototype

void glMatrixMode(int mode);

Source Link

Usage

From source file:com.example.artest.SimpleRenderer.java

/**
 * Override the draw function from ARRenderer.
 *//*from  w ww  .j  a v a 2s  . c  o m*/
@Override
public void draw(GL10 gl) {

    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    // Apply the ARToolKit projection matrix
    gl.glMatrixMode(GL10.GL_PROJECTION);
    gl.glLoadMatrixf(ARToolKit.getInstance().getProjectionMatrix(), 0);

    gl.glEnable(GL10.GL_CULL_FACE);
    gl.glShadeModel(GL10.GL_SMOOTH);
    gl.glEnable(GL10.GL_DEPTH_TEST);
    gl.glFrontFace(GL10.GL_CW);

    // If the marker is visible, apply its transformation, and draw a cube
    for (int i = 0; i < markerIDs.length; i++) {
        if (ARToolKit.getInstance().queryMarkerVisible(markerIDs[i])) {
            gl.glMatrixMode(GL10.GL_MODELVIEW);
            gl.glLoadMatrixf(ARToolKit.getInstance().queryMarkerTransformation(markerIDs[i]), 0);
            cube[i].draw(gl);
            markerVisible[i] = true;
        } else {
            markerVisible[i] = false;
        }
    }
}

From source file:eu.sathra.SathraActivity.java

@SuppressLint("WrongCall")
@Override/*from   ww  w.ja  v  a  2  s . c  o m*/
public void onDrawFrame(GL10 gl) {
    gl.glViewport(0, 0, this.getScreenWidth(), this.getScreenHeight());
    // Update time variables
    mTimeDelta = System.currentTimeMillis() - mLastDrawTimestamp;
    mLastDrawTimestamp = System.currentTimeMillis();
    mTime += mTimeDelta;
    mVirtualTimeDelta = (long) (mTimeDelta * getTimeScale());
    mVirtualTime += mVirtualTimeDelta;

    // Setup defaults
    gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
    GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);

    // Clear BG
    float r = (float) Color.red(mParams.bgColor) / 255;
    float g = (float) Color.green(mParams.bgColor) / 255;
    float b = (float) Color.blue(mParams.bgColor) / 255;
    float a = (float) Color.alpha(mParams.bgColor) / 255;
    gl.glClearColor(r, g, b, a);
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    GLES20.glBlendEquation(GLES20.GL_FUNC_ADD);

    gl.glMatrixMode(GL10.GL_TEXTURE);
    gl.glLoadIdentity();

    gl.glMatrixMode(GL10.GL_MODELVIEW);
    gl.glLoadIdentity();

    // gl.glEnable(GL10.GL_BLEND);
    gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);

    mRootNode.onDraw(gl, mVirtualTime, mVirtualTimeDelta);

    // Draw lights and shadows
    gl.glMatrixMode(GL10.GL_TEXTURE);
    gl.glLoadIdentity();
    gl.glScalef(1, -1, 1); // Frame Buffers are upside down
    gl.glMatrixMode(GL10.GL_MODELVIEW);

    CameraNode activeCam = CameraNode.getActiveCamera();

    if (activeCam != null) {
        shad.setPosition(0, 0);// this.getResolutionWidth()/2,
        // this.getResolutionHeight()/2);//activeCam.getAbsoluteX(),
        // activeCam.getAbsoluteY());
    }

    gl.glBlendFunc(GL10.GL_DST_COLOR, GL10.GL_ONE_MINUS_SRC_ALPHA);

    shad.draw(gl);

    gl.glViewport(0, 0, this.getResolutionWidth(), this.getResolutionHeight()); // SDfDSFSDFS
    GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, buf[0]);
    GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D,
            tex[0], 0);

    // Clear shadow
    r = (float) Color.red(mParams.ambientColor) / 255;
    g = (float) Color.green(mParams.ambientColor) / 255;
    b = (float) Color.blue(mParams.ambientColor) / 255;
    a = (float) Color.alpha(mParams.ambientColor) / 255;

    gl.glClearColor(r, g, b, a);
    GLES20.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    // TODO: CONCURENT MOD EXCEPTION
    try {
        Dyn4jPhysics.getInstance().getWorld().updatev(mVirtualTimeDelta * MILISECONDS_TO_SECONDS);
    } catch (ConcurrentModificationException e) {

    }

    // if (mIsRunning)
    onUpdate(mVirtualTime, mVirtualTimeDelta);

    // Update fps counter
    mFPS = 1000f / mTimeDelta;

    // mDebugView.postInvalidate();

    // System.gc();
}