Project

General

Profile

Download (3.41 KB) Statistics
| Branch: | Revision:

library / src / main / java / org / distorted / library / DistortedScreen.java @ 806ca386

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Distorted.                                                               //
5
//                                                                                               //
6
// Distorted is free software: you can redistribute it and/or modify                             //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Distorted is distributed in the hope that it will be useful,                                  //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19

    
20
package org.distorted.library;
21

    
22
///////////////////////////////////////////////////////////////////////////////////////////////////
23

    
24
import android.app.ActivityManager;
25
import android.content.Context;
26
import android.content.pm.ConfigurationInfo;
27
import android.opengl.GLSurfaceView;
28
import android.view.SurfaceView;
29

    
30
/**
31
 * Class which represents the Screen.
32
 * <p>
33
 * User is able to render to it just like to a DistortedFramebuffer.
34
 */
35
public class DistortedScreen extends DistortedOutputSurface
36
  {
37

    
38
///////////////////////////////////////////////////////////////////////////////////////////////////
39
// here we don't manage underlying OpenGL assets ourselves
40

    
41
  void create()   {}
42
  void delete()   {}
43
  void recreate() {}
44

    
45
///////////////////////////////////////////////////////////////////////////////////////////////////
46
// PUBLIC API
47
///////////////////////////////////////////////////////////////////////////////////////////////////
48
/**
49
 * Create a new Screen.
50
 * <p>
51
 * Has to be followed by a 'resize()' to set the size.
52
 */
53
  public DistortedScreen(GLSurfaceView view)
54
    {
55
    // set color to 'DONT_CREATE' so that Screens will not get added to the Surface lists
56
    // set depth to 'CREATED' so that depth will be, by default, on.
57
    super(0,0,DONT_CREATE,CREATED,0,TYPE_USER);
58

    
59
    if( view!=null )
60
      {
61
      Context context = view.getContext();
62
      final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
63
      final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
64
      view.setEGLContextClientVersion((configurationInfo.reqGlEsVersion >> 16) >= 3 ? 3 : 2);
65
      }
66
    }
67
  }
(11-11/26)