Project

General

Profile

« Previous | Next » 

Revision 33f59f22

Added by Leszek Koltunski almost 6 years ago

OIT: move towards 4 passes ( clear - build - collapse - render )

View differences:

src/main/java/org/distorted/library/main/DistortedRenderState.java
231 231
    GLES31.glDisable(GLES31.GL_SCISSOR_TEST);
232 232
    }
233 233

  
234
///////////////////////////////////////////////////////////////////////////////////////////////////
235

  
236
  static void switchOffColorDepthStencil()
237
    {
238
    sState.stencilTest = cState.stencilTest;
239

  
240
    if( cState.stencilTest!=0 )
241
      {
242
      cState.stencilTest = 0;
243
      //android.util.Log.d("State", "stencil test off");
244
      GLES31.glDisable(GLES31.GL_STENCIL_TEST);
245
      }
246

  
247
    sState.depthTest = cState.depthTest;
248

  
249
    if( cState.depthTest!=0 )
250
      {
251
      cState.depthTest = 0;
252
      //android.util.Log.d("State", "depth test off");
253
      GLES31.glDisable(GLES31.GL_DEPTH_TEST);
254
      }
255

  
256
    sState.colorMaskR = cState.colorMaskR;
257
    sState.colorMaskG = cState.colorMaskG;
258
    sState.colorMaskB = cState.colorMaskB;
259
    sState.colorMaskA = cState.colorMaskA;
260

  
261
    if( cState.colorMaskR!=0 || cState.colorMaskG!=0 || cState.colorMaskB!=0 || cState.colorMaskA!=0 )
262
      {
263
      cState.colorMaskR = 0;
264
      cState.colorMaskG = 0;
265
      cState.colorMaskB = 0;
266
      cState.colorMaskA = 0;
267
      //android.util.Log.d("State", "switch off color writing");
268
      GLES31.glColorMask(false,false,false,false);
269
      }
270

  
271
    sState.depthMask = cState.depthMask;
272

  
273
    if( cState.depthMask!=0 )
274
      {
275
      cState.depthMask = 0;
276
      //android.util.Log.d("State", "switch off depth writing");
277
      GLES31.glDepthMask(false);
278
      }
279

  
280
    sState.stencilMask = cState.stencilMask;
281

  
282
    if( cState.stencilMask!= 0x00 )
283
      {
284
      cState.stencilMask = 0x00;
285
      //android.util.Log.d("State", "stencil mask off");
286
      GLES31.glStencilMask(cState.stencilMask);
287
      }
288
    }
289

  
290
///////////////////////////////////////////////////////////////////////////////////////////////////
291

  
292
  static void switchColorDepthOnStencilOff()
293
    {
294
    sState.stencilTest = cState.stencilTest;
295

  
296
    if( cState.stencilTest!=0 )
297
      {
298
      cState.stencilTest = 0;
299
      //android.util.Log.d("State", "stencil test off");
300
      GLES31.glDisable(GLES31.GL_STENCIL_TEST);
301
      }
302

  
303
    sState.depthTest = cState.depthTest;
304

  
305
    if( cState.depthTest!=0 )
306
      {
307
      cState.depthTest = 0;
308
      //android.util.Log.d("State", "depth test off");
309
      GLES31.glDisable(GLES31.GL_DEPTH_TEST);
310
      }
311

  
312
    sState.colorMaskR = cState.colorMaskR;
313
    sState.colorMaskG = cState.colorMaskG;
314
    sState.colorMaskB = cState.colorMaskB;
315
    sState.colorMaskA = cState.colorMaskA;
316

  
317
    if( cState.colorMaskR!=1 || cState.colorMaskG!=1 || cState.colorMaskB!=1 || cState.colorMaskA!=1 )
318
      {
319
      cState.colorMaskR = 1;
320
      cState.colorMaskG = 1;
321
      cState.colorMaskB = 1;
322
      cState.colorMaskA = 1;
323
      //android.util.Log.d("State", "switch on color writing");
324
      GLES31.glColorMask(true,true,true,true);
325
      }
326

  
327
    sState.depthMask = cState.depthMask;
328

  
329
    if( cState.depthMask!=1 )
330
      {
331
      cState.depthMask = 1;
332
      //android.util.Log.d("State", "switch on depth writing");
333
      GLES31.glDepthMask(true);
334
      }
335

  
336
    sState.stencilMask = cState.stencilMask;
337

  
338
    if( cState.stencilMask!= 0x00 )
339
      {
340
      cState.stencilMask = 0x00;
341
      //android.util.Log.d("State", "stencil mask off");
342
      GLES31.glStencilMask(cState.stencilMask);
343
      }
344
    }
345

  
346
///////////////////////////////////////////////////////////////////////////////////////////////////
347

  
348
  static void restoreColorDepthStencil()
349
    {
350
    if( sState.stencilTest!=cState.stencilTest )
351
      {
352
      cState.stencilTest = sState.stencilTest;
353

  
354
      if (cState.stencilTest == 0)
355
        {
356
        GLES31.glDisable(GLES31.GL_STENCIL_TEST);
357
        }
358
      else
359
        {
360
        GLES31.glEnable(GLES31.GL_STENCIL_TEST);
361
        }
362
      }
363
    if( sState.depthTest!=cState.depthTest )
364
      {
365
      cState.depthTest = sState.depthTest;
366

  
367
      if (cState.depthTest == 0)
368
        {
369
        GLES31.glDisable(GLES31.GL_DEPTH_TEST);
370
        }
371
      else
372
        {
373
        GLES31.glEnable(GLES31.GL_DEPTH_TEST);
374
        }
375
      }
376
    if( sState.colorMaskR!=cState.colorMaskR || sState.colorMaskG!=cState.colorMaskG || sState.colorMaskB!=cState.colorMaskB || sState.colorMaskA!=cState.colorMaskA)
377
      {
378
      cState.colorMaskR = sState.colorMaskR;
379
      cState.colorMaskG = sState.colorMaskG;
380
      cState.colorMaskB = sState.colorMaskB;
381
      cState.colorMaskA = sState.colorMaskA;
382
      GLES31.glColorMask(cState.colorMaskR==1,cState.colorMaskG==1,cState.colorMaskB==1,cState.colorMaskA==1);
383
      }
384
    if( sState.depthMask!=cState.depthMask )
385
      {
386
      cState.depthMask = sState.depthMask;
387
      GLES31.glDepthMask(cState.depthMask==1);
388
      }
389
    if( sState.stencilMask!=cState.stencilMask )
390
      {
391
      cState.stencilMask = sState.stencilMask;
392
      GLES31.glStencilMask(cState.stencilMask);
393
      }
394
    }
395

  
234 396
///////////////////////////////////////////////////////////////////////////////////////////////////
235 397

  
236 398
  static void disableStencil()

Also available in: Unified diff