Project

General

Profile

« Previous | Next » 

Revision eb6bccbd

Added by Leszek Koltunski over 2 years ago

Create the bandaged 3x3 icon: something works, the shape is drawn, but it's entirely black. Investigate.

View differences:

src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
110 110
   private DistortedFramebuffer mFramebuffer;
111 111
   private String mPath;
112 112

  
113
private int sW, sH;
114

  
113 115
///////////////////////////////////////////////////////////////////////////////////////////////////
114 116

  
115 117
   BandagedCreatorRenderer(BandagedCreatorView v)
......
231 233
       if( done ) mResettingObject = false;
232 234
       }
233 235

  
234
     if( mSaveIcon>=0 ) mSaveIcon++;
235
     if( mSaveIcon>=2 ) { saveIcon(time); mSaveIcon = -1; }
236
     if( mSaveIcon>=0 )
237
       {
238
       if( mSaveIcon==0 ) renderIcon(time);
239
       mSaveIcon++;
240
       }
241
     if( mSaveIcon>=2 )
242
       {
243
       saveIcon();
244
       mSaveIcon = -1;
245
       }
236 246
     }
237 247

  
238 248
///////////////////////////////////////////////////////////////////////////////////////////////////
......
255 265
          mScreen.attach(node);
256 266
          }
257 267

  
268
sW = width;
269
sH = height;
270

  
258 271
      mScale.set( mScaleValue,mScaleValue,mScaleValue );
259 272
      mView.setScreenSize(width,height);
260 273
      mScreen.resize(width,height);
......
432 445

  
433 446
   private void setupIconCreation(Activity act)
434 447
     {
448
     TwistyObject object = new TwistyBandagedGeneric(ShapeHexahedron.DEFAULT_ROT, 0.9f, TwistyObject.MODE_ICON);
449
     DistortedEffects effects = object.getObjectEffects();
450
     DistortedNode node = object.getNode();
451

  
435 452
     if( mFramebuffer==null )
436 453
       {
437
       mFramebuffer = new DistortedFramebuffer(FBO_SIZE,FBO_SIZE,1, InternalOutputSurface.DEPTH_NO_STENCIL);
454
       mFramebuffer = new DistortedFramebuffer(sW,sH,1, InternalOutputSurface.DEPTH_NO_STENCIL);
455
       mFramebuffer.glClearColor(BRIGHTNESS, BRIGHTNESS, 0.0f, 1.0f);
438 456
       }
439 457

  
440
     TwistyObject object = new TwistyBandagedGeneric(ShapeHexahedron.DEFAULT_ROT, 1.15f, TwistyObject.MODE_ICON);
441
     DistortedEffects effects = object.getObjectEffects();
442
     DistortedNode node = object.getNode();
443

  
444 458
     mFramebuffer.detachAll();
445 459
     mFramebuffer.attach(node);
446 460

  
......
460 474

  
461 475
///////////////////////////////////////////////////////////////////////////////////////////////////
462 476

  
463
    private void saveIcon(long time)
464
      {
465
      mFramebuffer.render(time);
466
      int fW = mFramebuffer.getWidth();
467
      int fH = mFramebuffer.getHeight();
468
      ByteBuffer buf = ByteBuffer.allocateDirect(fW*fH*4);
469
      buf.order(ByteOrder.LITTLE_ENDIAN);
477
   private void renderIcon(long time)
478
     {
479
     mFramebuffer.render(time);
480
     }
470 481

  
471
      int textureID = mFramebuffer.getTextureID();
482
///////////////////////////////////////////////////////////////////////////////////////////////////
472 483

  
473
      if( textureID>=0 )
474
        {
475
        GLES31.glBindTexture(GLES31.GL_TEXTURE_2D, textureID);
476
        GLES31.glReadPixels( 0, 0, fW, fH, GLES31.GL_RGBA, GLES31.GL_UNSIGNED_BYTE, buf);
477
        BandagedCreatorWorkerThread.newBuffer(buf,fW,fH,6,mPath);
478
        }
479
      else
480
        {
481
        android.util.Log.e("Save", "Error trying to read from offscreen FBO, textureID="+textureID);
482
        }
484
   private void saveIcon()
485
     {
486
     int fW = mFramebuffer.getWidth();
487
     int fH = mFramebuffer.getHeight();
483 488

  
484
      mSaveIcon = -1;
485
      }
489
     ByteBuffer buf = ByteBuffer.allocateDirect(fW*fH*4);
490
     buf.order(ByteOrder.LITTLE_ENDIAN);
491

  
492
     mFramebuffer.setAsReadFramebuffer(0);
493
     GLES31.glReadBuffer(GLES31.GL_COLOR_ATTACHMENT0);
494
     GLES31.glReadPixels( 0, 0, fW, fH, GLES31.GL_RGBA, GLES31.GL_UNSIGNED_BYTE, buf);
495
     BandagedCreatorWorkerThread.newBuffer(buf,fW,fH,6,mPath);
496
     GLES31.glBindFramebuffer(GLES31.GL_READ_FRAMEBUFFER, 0);
497

  
498
     mSaveIcon = -1;
499
     }
486 500

  
487 501
///////////////////////////////////////////////////////////////////////////////////////////////////
488 502

  
src/main/java/org/distorted/bandaged/BandagedCreatorWorkerThread.java
295 295

  
296 296
    byte[] tmp = new byte[4*width];
297 297
    ByteBuffer bufSquare = adjustBuffer(load.buffer,tmp,width,height);
298
    ByteBuffer bufTransp = replaceColors(bufSquare,tmp,width,load.numColors);
298
   // ByteBuffer bufTransp = replaceColors(bufSquare,tmp,width,load.numColors);
299 299

  
300 300
    final String filename = load.filename;
301 301
    BufferedOutputStream bos =null;
......
305 305
      {
306 306
      bos = new BufferedOutputStream(new FileOutputStream(filename));
307 307
      Bitmap bmp = Bitmap.createBitmap( width, width, Bitmap.Config.ARGB_8888);
308
      bmp.copyPixelsFromBuffer(bufTransp);
308
      bmp.copyPixelsFromBuffer(bufSquare);
309 309
      bmp.compress(Bitmap.CompressFormat.PNG, 90, bos);
310 310

  
311 311
      BandagedCreatorActivity cact = (BandagedCreatorActivity)act;

Also available in: Unified diff