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/EffectQueueVertex.java
32 32
  private static final int NUM_UNIFORMS = VertexEffect.NUM_UNIFORMS;
33 33
  private static final int INDEX = EffectType.VERTEX.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, "vNumEffects");
55
    mNameH      = GLES31.glGetUniformLocation( mProgramH, "vName");
56
    mUniformsH  = GLES31.glGetUniformLocation( mProgramH, "vUniforms");
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, "vNumEffects");
64
    mNameOITH      = GLES31.glGetUniformLocation( mProgramH, "vName");
65
    mUniformsOITH  = GLES31.glGetUniformLocation( mProgramH, "vUniforms");
50
    mNumEffectsH[variant]= GLES31.glGetUniformLocation( mProgramH, "vNumEffects");
51
    mNameH[variant]      = GLES31.glGetUniformLocation( mProgramH, "vName");
52
    mUniformsH[variant]  = GLES31.glGetUniformLocation( mProgramH, "vUniforms");
66 53
    }
67 54

  
68 55
///////////////////////////////////////////////////////////////////////////////////////////////////
......
100 87

  
101 88
///////////////////////////////////////////////////////////////////////////////////////////////////
102 89

  
103
  void send()
90
  void send(int variant)
104 91
    {
105
    GLES31.glUniform1i( mNumEffectsH, mNumEffects);
92
    GLES31.glUniform1i( mNumEffectsH[variant], mNumEffects);
106 93
      
107 94
    if( mNumEffects>0 )
108 95
      {
109
      GLES31.glUniform1iv( mNameH    ,                 mNumEffects, mName    ,0);
110
      GLES31.glUniform4fv( mUniformsH,(NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
111
      }
112
    }
113

  
114
///////////////////////////////////////////////////////////////////////////////////////////////////
115

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

  
120
    if( mNumEffects>0 )
121
      {
122
      GLES31.glUniform1iv( mNameOITH    ,                 mNumEffects, mName    ,0);
123
      GLES31.glUniform4fv( mUniformsOITH,(NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
96
      GLES31.glUniform1iv( mNameH[variant]    ,                 mNumEffects, mName    ,0);
97
      GLES31.glUniform4fv( mUniformsH[variant],(NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
124 98
      }
125 99
    }
126 100
  }

Also available in: Unified diff