Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.18 KB | None | 0 0
  1. https://drive.google.com/drive/folders/1Xfy79fJkV83SXWWBQEvZK1OPNWflBLDe
  2.  
  3. ATENTIE!! La acest lab trebuie copiate in AndroidStudio in app/res/drawable goldengate.png si splash.png ca sa mearga.
  4.  
  5.  
  6. package com.example.allenpianoman.bouncysquare6;
  7.  
  8. import android.os.Bundle;
  9. import android.app.Activity;
  10. import android.opengl.GLSurfaceView;
  11. import android.view.WindowManager;
  12.  
  13. public class BouncySquare6Activity extends Activity {
  14.  
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  19. GLSurfaceView view = new GLSurfaceView(this);
  20.  
  21. view.setRenderer(new SquareRenderer(this.getApplicationContext()));
  22.  
  23. setContentView(view);
  24. }
  25. }
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. package com.example.allenpianoman.bouncysquare6;
  36.  
  37. import javax.microedition.khronos.opengles.GL10;
  38. import javax.microedition.khronos.egl.EGLConfig;
  39. import javax.microedition.khronos.opengles.GL11;
  40. import android.opengl.GLSurfaceView;
  41. import java.lang.Math;
  42. import android.content.Context;
  43.  
  44. public class SquareRenderer implements GLSurfaceView.Renderer {
  45.  
  46. private Square mSquare1;
  47. private Square mSquare2;
  48. private Context mContext;
  49. private float mTransY;
  50. private float mAngle;
  51.  
  52. public SquareRenderer(Context context)
  53. {
  54. float squareColorsYMCA[] =
  55. {
  56. 1.0f, 1.0f, 0.0f, 1.0f,
  57. 0.0f, 1.0f, 1.0f, 1.0f,
  58. 0.0f, 0.0f, 0.0f, 1.0f,
  59. 1.0f, 0.0f, 1.0f, 1.0f
  60. };
  61.  
  62. float squareColorsRGBA[] =
  63. {
  64. 1.0f, 0.0f, 0.0f, 1.0f,
  65. 0.0f, 1.0f, 0.0f, 1.0f,
  66. 0.0f, 0.0f, 1.0f, 1.0f,
  67. 1.0f, 1.0f, 1.0f, 1.0f
  68. };
  69.  
  70.  
  71. mContext = context;
  72. mSquare1 = new Square(squareColorsYMCA);
  73. }
  74.  
  75. public void onDrawFrame(GL10 gl)
  76. {
  77. gl.glClearColor(0.0f,0.0f,0.0f,1.0f);
  78. gl.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
  79.  
  80. gl.glMatrixMode(GL11.GL_MODELVIEW);
  81. gl.glEnableClientState(GL11.GL_VERTEX_ARRAY);
  82.  
  83. gl.glColor4f(1.0f,1.0f,1.0f,1.0f);
  84.  
  85. gl.glLoadIdentity();
  86. gl.glTranslatef(0.0f,(float)Math.sin(mTransY), -3.0f);
  87. mSquare1.draw(gl);
  88. gl.glLoadIdentity();
  89. gl.glTranslatef((float)(Math.sin(mTransY)/2.0f),0.0f, -2.9f);
  90. gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
  91. mSquare1.draw(gl);
  92. mTransY += .075f;
  93. }
  94.  
  95. public void onSurfaceChanged(GL10 gl, int width, int height)
  96. {
  97. gl.glViewport(0, 0, width, height);
  98.  
  99. float ratio = (float) width / height;
  100. gl.glMatrixMode(GL11.GL_PROJECTION);
  101. gl.glLoadIdentity();
  102. gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
  103. }
  104.  
  105. public void onSurfaceCreated(GL10 gl, EGLConfig config)
  106. {
  107. gl.glDisable(GL11.GL_DITHER);
  108.  
  109. gl.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT,
  110. GL11.GL_FASTEST);
  111.  
  112. gl.glClearColor(.0f,.5f,.5f,1.0f);
  113.  
  114.  
  115. gl.glEnable(GL11.GL_CULL_FACE);
  116. gl.glShadeModel(GL11.GL_SMOOTH);
  117.  
  118. gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
  119.  
  120. gl.glDisable(GL11.GL_DEPTH_TEST);
  121. gl.glEnable(GL11.GL_BLEND);
  122.  
  123. mSquare1.setTextures(gl,mContext,R.drawable.goldengate,R.drawable.splash);
  124. }
  125. }
  126.  
  127.  
  128.  
  129. package com.example.allenpianoman.bouncysquare6;
  130.  
  131. import javax.microedition.khronos.opengles.GL10;
  132. import javax.microedition.khronos.opengles.GL11;
  133. import java.nio.ByteBuffer;
  134. import java.nio.ByteOrder;
  135. import java.nio.FloatBuffer;
  136. import android.content.Context;
  137. import android.graphics.*;
  138. import android.opengl.*;
  139.  
  140. public class Square {
  141. private FloatBuffer mFVertexBuffer;
  142. private FloatBuffer mColorBuffer;
  143. private FloatBuffer mTextureCoords0;
  144. private FloatBuffer mTextureCoords1;
  145. private ByteBuffer mIndexBuffer;
  146.  
  147.  
  148. private int mTexture0;
  149. private int mTexture1;
  150.  
  151.  
  152. public Square(float colors[])
  153. {
  154. float vertices[] =
  155. {
  156. -1.0f, -1.0f,
  157. 1.0f, -1.0f,
  158. -1.0f, 1.0f,
  159. 1.0f, 1.0f
  160. };
  161.  
  162. float textureCoords[] =
  163. {
  164. 0.0f, 1.0f,
  165. 1.0f, 1.0f,
  166. 0.0f, 0.0f,
  167. 1.0f, 0.0f
  168. };
  169.  
  170.  
  171. byte indices[] =
  172. {
  173. 0, 3, 1,
  174. 0, 2, 3
  175. };
  176.  
  177. ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
  178. vbb.order(ByteOrder.nativeOrder());
  179. mFVertexBuffer = vbb.asFloatBuffer();
  180. mFVertexBuffer.put(vertices);
  181. mFVertexBuffer.position(0);
  182.  
  183. vbb = ByteBuffer.allocateDirect(colors.length * 4);
  184. vbb.order(ByteOrder.nativeOrder());
  185. mColorBuffer = vbb.asFloatBuffer();
  186. mColorBuffer.put(colors);
  187. mColorBuffer.position(0);
  188.  
  189. mIndexBuffer = ByteBuffer.allocateDirect(indices.length);
  190. mIndexBuffer.put(indices);
  191. mIndexBuffer.position(0);
  192.  
  193. vbb = ByteBuffer.allocateDirect(textureCoords.length * 4);
  194. vbb.order(ByteOrder.nativeOrder());
  195. mTextureCoords0 = vbb.asFloatBuffer();
  196. mTextureCoords0.put(textureCoords);
  197. mTextureCoords0.position(0);
  198.  
  199. vbb = ByteBuffer.allocateDirect(textureCoords.length * 4);
  200. vbb.order(ByteOrder.nativeOrder());
  201. mTextureCoords1 = vbb.asFloatBuffer();
  202. mTextureCoords1.put(textureCoords);
  203. mTextureCoords1.position(0);
  204.  
  205.  
  206. }
  207.  
  208. public void draw(GL10 gl)
  209. {
  210. gl.glEnable(GL10.GL_TEXTURE_2D);
  211. gl.glBindTexture(GL10.GL_TEXTURE_2D,mTexture0);
  212. gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  213.  
  214. gl.glFrontFace(GL11.GL_CW);
  215. gl.glVertexPointer(2, GL11.GL_FLOAT, 0, mFVertexBuffer);
  216. gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
  217. gl.glColorPointer(4, GL11.GL_FLOAT, 0, mColorBuffer);
  218. gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
  219.  
  220. gl.glClientActiveTexture(GL10.GL_TEXTURE0);
  221. gl.glTexCoordPointer(2, GL10.GL_FLOAT,0,mTextureCoords0);
  222.  
  223. gl.glClientActiveTexture(GL10.GL_TEXTURE1);
  224. gl.glTexCoordPointer(2, GL10.GL_FLOAT,0,mTextureCoords1);
  225.  
  226. multiTexture(gl,mTexture0,mTexture1);
  227.  
  228. gl.glDrawElements(GL11.GL_TRIANGLES, 6, GL11.GL_UNSIGNED_BYTE, mIndexBuffer);
  229. gl.glFrontFace(GL11.GL_CCW);
  230. }
  231.  
  232. public void setTextures(GL10 gl,Context context,int resourceID0, int resourceID1)
  233. {
  234. mTexture0=createTexture(gl,context,resourceID0);
  235. mTexture1=createTexture(gl,context,resourceID1);
  236. }
  237.  
  238. public int createTexture(GL10 gl, Context contextRegf, int resource)
  239. {
  240. int[] textures = new int[1];
  241.  
  242. Bitmap tempImage = BitmapFactory.decodeResource(contextRegf.getResources(), resource); // 1
  243.  
  244. gl.glGenTextures(1, textures, 0); // 2
  245. gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); // 3
  246.  
  247. GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, tempImage, 0); // 4
  248.  
  249. gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR); // 5a
  250. gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR); // 5b
  251.  
  252. tempImage.recycle();//6
  253.  
  254. return textures[0];
  255. }
  256.  
  257. public void multiTexture(GL10 gl, int tex0, int tex1)
  258. {
  259. float combineParameter= GL10.GL_DECAL; //1
  260.  
  261. // Set up the First Texture.
  262. gl.glActiveTexture(GL10.GL_TEXTURE0); //2
  263. gl.glBindTexture(GL10.GL_TEXTURE_2D, tex0); //3
  264.  
  265. // Set up the Second Texture.
  266. gl.glActiveTexture(GL10.GL_TEXTURE1);
  267. gl.glBindTexture(GL10.GL_TEXTURE_2D, tex1);
  268.  
  269. // Set the texture environment mode for this texture to combine.
  270. gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, combineParameter); //4
  271. }
  272.  
  273. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement