Project

General

Profile

Download (3.97 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / tutorials / TutorialRenderer.java @ 78478d7e

1 af88bf2e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2019 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6 bb62ca3f Leszek Koltunski
// Magic Cube is proprietary software licensed under an EULA which you should have received      //
7
// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
8 af88bf2e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
9
10 eaf87d1d Leszek Koltunski
package org.distorted.tutorials;
11 af88bf2e Leszek Koltunski
12 3f7a4363 Leszek Koltunski
import javax.microedition.khronos.egl.EGLConfig;
13
import javax.microedition.khronos.opengles.GL10;
14
15 d0ad3964 Leszek Koltunski
import android.content.res.Resources;
16 af88bf2e Leszek Koltunski
import android.opengl.GLSurfaceView;
17
18 b6468abb Leszek Koltunski
import org.distorted.library.effect.EffectType;
19
import org.distorted.library.effect.VertexEffectQuaternion;
20
import org.distorted.library.effect.VertexEffectRotate;
21
import org.distorted.library.main.DistortedLibrary;
22 af88bf2e Leszek Koltunski
import org.distorted.library.main.DistortedScreen;
23
24 34bc9f31 Leszek Koltunski
import org.distorted.library.mesh.MeshBase;
25 d2556e79 Leszek Koltunski
import org.distorted.objectlib.effects.BaseEffect;
26 34bc9f31 Leszek Koltunski
import org.distorted.objectlib.main.ObjectControl;
27 af88bf2e Leszek Koltunski
28 d0ad3964 Leszek Koltunski
import java.io.InputStream;
29
30 af88bf2e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
31
32 d0ad3964 Leszek Koltunski
public class TutorialRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
33 af88bf2e Leszek Koltunski
{
34 40a26c6c Leszek Koltunski
   private final TutorialSurfaceView mView;
35
   private final DistortedScreen mScreen;
36 d0ad3964 Leszek Koltunski
   private final Resources mResources;
37 af88bf2e Leszek Koltunski
38
///////////////////////////////////////////////////////////////////////////////////////////////////
39
40
   TutorialRenderer(TutorialSurfaceView v)
41
     {
42
     mView = v;
43 d0ad3964 Leszek Koltunski
     mResources = v.getResources();
44 af88bf2e Leszek Koltunski
     mScreen = new DistortedScreen();
45 8c4e4bf4 leszek
46
     TutorialActivity act = (TutorialActivity)v.getContext();
47
     act.setUpBackgroundColor(mScreen);
48 af88bf2e Leszek Koltunski
     }
49
50 d0ad3964 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
51
52
   DistortedScreen getScreen()
53
     {
54
     return mScreen;
55
     }
56
57 af88bf2e Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
58
59
   @Override
60
   public void onDrawFrame(GL10 glUnused)
61
     {
62
     long time = System.currentTimeMillis();
63 2afc6754 Leszek Koltunski
     mView.getObjectControl().preRender();
64 af88bf2e Leszek Koltunski
     mScreen.render(time);
65
     }
66
67
///////////////////////////////////////////////////////////////////////////////////////////////////
68
69
   @Override
70
   public void onSurfaceChanged(GL10 glUnused, int width, int height)
71
      {
72
      mScreen.resize(width,height);
73
      mView.setScreenSize(width,height);
74
      }
75
76
///////////////////////////////////////////////////////////////////////////////////////////////////
77
78
   @Override
79
   public void onSurfaceCreated(GL10 glUnused, EGLConfig config)
80
      {
81 34bc9f31 Leszek Koltunski
      DistortedLibrary.setMax(EffectType.VERTEX, ObjectControl.MAX_QUATS+1);
82
      MeshBase.setMaxEffComponents(ObjectControl.MAX_MOVING_PARTS);
83
84 b6468abb Leszek Koltunski
      VertexEffectRotate.enable();
85
      VertexEffectQuaternion.enable();
86
      BaseEffect.Type.enableEffects();
87 af88bf2e Leszek Koltunski
88 d0ad3964 Leszek Koltunski
      DistortedLibrary.onSurfaceCreated(this,1);
89 6dff7924 Leszek Koltunski
      DistortedLibrary.setCull(true);
90 af88bf2e Leszek Koltunski
      }
91
92 b6468abb Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
93
94
   public void distortedException(Exception ex)
95
     {
96 d0ad3964 Leszek Koltunski
     android.util.Log.e("Tutorial", "unexpected exception: "+ex.getMessage() );
97 b6468abb Leszek Koltunski
     }
98
99 d0ad3964 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
100
101
   public InputStream localFile(int fileID)
102
     {
103
     return mResources.openRawResource(fileID);
104
     }
105
106
///////////////////////////////////////////////////////////////////////////////////////////////////
107
108
   public void logMessage(String message)
109
     {
110
     android.util.Log.e("Tutorial", message );
111 af88bf2e Leszek Koltunski
     }
112
}