Project

General

Profile

« Previous | Next » 

Revision 86c352e0

Added by Leszek Koltunski almost 6 years ago

Some progress with not-postprocessed OIT.

View differences:

src/main/java/org/distorted/library/main/EffectQueueFragment.java
32 32
  private static final int NUM_UNIFORMS = FragmentEffect.NUM_UNIFORMS;
33 33
  private static final int INDEX = EffectType.FRAGMENT.ordinal();
34 34

  
35
  private static int mNumEffectsH;
36
  private static int mNameH;
37
  private static int mUniformsH;
38

  
39
  private static int mNumEffectsOITH;
40
  private static int mNameOITH;
41
  private static int mUniformsOITH;
35
  private static int[] mNumEffectsH = new int[Distorted.MAIN_VARIANTS];
36
  private static int[] mNameH       = new int[Distorted.MAIN_VARIANTS];
37
  private static int[] mUniformsH   = new int[Distorted.MAIN_VARIANTS];
42 38

  
43 39
///////////////////////////////////////////////////////////////////////////////////////////////////
44 40
   
......
49 45

  
50 46
///////////////////////////////////////////////////////////////////////////////////////////////////
51 47

  
52
  static void getUniforms(int mProgramH)
53
    {
54
    mNumEffectsH= GLES31.glGetUniformLocation( mProgramH, "fNumEffects");
55
    mNameH      = GLES31.glGetUniformLocation( mProgramH, "fName");
56
    mUniformsH  = GLES31.glGetUniformLocation( mProgramH, "fUniforms");
57
    }
58

  
59
///////////////////////////////////////////////////////////////////////////////////////////////////
60

  
61
  static void getUniformsOIT(int mProgramH)
48
  static void getUniforms(int mProgramH, int variant)
62 49
    {
63
    mNumEffectsOITH= GLES31.glGetUniformLocation( mProgramH, "fNumEffects");
64
    mNameOITH      = GLES31.glGetUniformLocation( mProgramH, "fName");
65
    mUniformsOITH  = GLES31.glGetUniformLocation( mProgramH, "fUniforms");
50
    mNumEffectsH[variant]= GLES31.glGetUniformLocation( mProgramH, "fNumEffects");
51
    mNameH[variant]      = GLES31.glGetUniformLocation( mProgramH, "fName");
52
    mUniformsH[variant]  = GLES31.glGetUniformLocation( mProgramH, "fUniforms");
66 53
    }
67 54

  
68 55
///////////////////////////////////////////////////////////////////////////////////////////////////
......
99 86

  
100 87
///////////////////////////////////////////////////////////////////////////////////////////////////
101 88
  
102
  void send()
89
  void send(int variant)
103 90
    {
104
    GLES31.glUniform1i( mNumEffectsH, mNumEffects);
91
    GLES31.glUniform1i( mNumEffectsH[variant], mNumEffects);
105 92

  
106 93
    if( mNumEffects>0 )
107 94
      {
108
      GLES31.glUniform1iv( mNameH    ,                 mNumEffects, mName    ,0);
109
      GLES31.glUniform4fv( mUniformsH,(NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
95
      GLES31.glUniform1iv( mNameH[variant]    ,                 mNumEffects, mName    ,0);
96
      GLES31.glUniform4fv( mUniformsH[variant],(NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
110 97
      }  
111 98
    }
112

  
113
///////////////////////////////////////////////////////////////////////////////////////////////////
114

  
115
  void sendOIT()
116
    {
117
    GLES31.glUniform1i( mNumEffectsOITH, mNumEffects);
118

  
119
    if( mNumEffects>0 )
120
      {
121
      GLES31.glUniform1iv( mNameOITH    ,                 mNumEffects, mName    ,0);
122
      GLES31.glUniform4fv( mUniformsOITH,(NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
123
      }
124
    }
125 99
  }

Also available in: Unified diff