Subversion Repositories AndroidProjects

Rev

Rev 73 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.pingK.gamestates;

import javax.microedition.khronos.opengles.GL10;

import com.gebauz.framework.util.GLUtil;
import com.gebauz.framework.util.Mesh;
import com.gebauz.framework.util.RenderImmediate;
import com.gebauz.framework.util.RenderTexture;
import com.gebauz.framework.util.Sprite2D;
import com.gebauz.framework.util.Texture;
import com.gebauz.pingK.R;
import com.gebauz.pingK.game.GameConsts;
import com.gebauz.pingK.game.GameLogic;

public class MainGameState extends BaseGameState
{      
        Mesh mesh;
        Texture texture;
        float r;
        Sprite2D sprite;
        Sprite2D sprite2;
       
        GameLogic mGameLogic;
       
        //RenderTexture mOffscreenTexture;
       
        int w;
        int h;

        public MainGameState() 
        {                              
        }

        @Override
        public void init()
        {
                /*if (!GLUtil.checkFboSupport())
        {
                throw new RuntimeException("Framebuffer Objects not supported");
        }*/

               
                mGameLogic = new GameLogic();
                mGameLogic.init();
               
                sprite = new Sprite2D();
                sprite.init(R.drawable.icon_hourglass, 60, 60, 100, 100);
               
                sprite2 = new Sprite2D();
                sprite2.init(R.drawable.icon_hourglass, 160, 160, 400, 300);
               
                //mOffscreenTexture = RenderTexture.create(128, 128);
        }
       
        @Override
        public void exit()
        {
                //mOffscreenTexture = null;
                sprite = null;
               
                mGameLogic.exit();
                mGameLogic = null;
        }
       
        @Override
        public void onSurfaceChanged(int width, int height)
        {
                w = width;
                h = height;
        GLUtil.getGL().glViewport(0, 0, width, height);
        }
       
        @Override
        public void update(float deltaTime)
        {
                r += deltaTime;
        if (r > 1.0f)
                r = 0.0f;
       
        mGameLogic.update(deltaTime);
        }
       
        @Override
        public void render()
        {
        GL10 gl = GLUtil.getGL();
       
//      mOffscreenTexture.activate();
        //gl.glViewport(0, 0, 128, 128);       
                //gl.glClearColor(0.0f, 1.0f, 1.0f, 0.0f);
        gl.glClearColor(0.05f, 0.05f, 0.05f, 0.0f);
                gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
       
                gl.glMatrixMode(GL10.GL_PROJECTION);
                gl.glLoadIdentity();
                gl.glOrthof(0, GameConsts.VIRTUAL_SCREEN_WIDTH-1.0f, GameConsts.VIRTUAL_SCREEN_HEIGHT-1.0f, 0, 0, 1);
               
                mGameLogic.render();
               
                sprite.angle = r*90.0f;
                //sprite.render();
               
                /*RenderImmediate.begin(GL10.GL_TRIANGLES);
                {
                        RenderImmediate.color(1.0f, 1.0f, 1.0f, 1.0f);
                        RenderImmediate.vertex(0.0f, 0.0f, 0.0f);
       
                        RenderImmediate.color(1.0f, 0.0f, 1.0f, 1.0f);
                        RenderImmediate.vertex(100.0f, 100.0f, 0.0f);

                        RenderImmediate.color(1.0f, 1.0f, 1.0f, 1.0f);
                        RenderImmediate.vertex(0.0f, 100.0f, 0.0f);
                }
                RenderImmediate.end();*/

               
/*              mOffscreenTexture.deactivate();
               
                gl.glViewport(0, 0, w, h);
                gl.glClearColor(0.0f, 1.0f, 0.0f, 0.0f);
                gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
       
                gl.glMatrixMode(GL10.GL_PROJECTION);
                gl.glLoadIdentity();
                gl.glOrthof(0, 799, 479, 0, 0, 1);
               
                //mGameLogic.render();
               
                sprite2.replaceTexture(mOffscreenTexture);
                sprite2.angle = r*20.0f;
                sprite2.render();*/

        }
       
        @Override
        public boolean doFadeIn()
        {
                return true;
        }
       
        @Override
        public boolean doFadeOut()
        {
                return true;
        }      
}