Hi 
I have modified the Serialize 
<https://source.chromium.org/chromium/chromium/src/+/main:cc/paint/paint_op_buffer_serializer.cc;l=5;bpv=1;bpt=1?q=paint_op_buffer_ser&ss=chromium%2Fchromium%2Fsrc>
 method 
to Record all PaintOp as SKPicture. 
I want to replay this SKPicture on a remote browser. So, I am trying to 
save this SKPicture to a file, but I am not able to do so, since 
file.isOpen gives false.
Please help here

void PaintOpBufferSerializer::Serialize(const PaintOpBuffer& buffer,
                                        const std::vector<size_t>* offsets,
                                        const Preamble& preamble) {
  DCHECK_EQ(serialized_op_count_, 0u);

  std::unique_ptr<SkCanvas> canvas = MakeAnalysisCanvas(options_);
  // These PlaybackParams use the initial (identity) canvas matrix, as they 
are
  // only used for serializing the preamble and the initial save / final 
restore
  // SerializeBuffer will create its own PlaybackParams based on the
            
 * SkPictureRecorder recorder;*
 * SkCanvas* recordingCanvas = 
recorder.beginRecording(canvas->getLocalClipBounds());         *
  // post-preamble canvas.
  PlaybackParams params = MakeParams(canvas.get());
  int save_count = canvas->getSaveCount();
  Save(canvas.get(), params);
  SerializePreamble(canvas.get(), preamble, params);
  SerializeBuffer(canvas.get(), buffer, offsets);
  *SerializeBuffer(recordingCanvas, buffer, offsets);*
  

*sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();  
SkSerialProcs sProcs;  sk_sp<SkData> readableData = 
picture->serialize(&sProcs);*
  // Assuming the byte array is stored in the 'data' field of the SkData 
object
  const void* data = readableData->data();
  size_t size = readableData->size();

* <HOW TO SAVE READABLE DATA TO A FILE>*
  /*sk_sp<SkData> receievedData = SkData::MakeWithoutCopy(data, size);
  sk_sp<SkPicture> copy =
      SkPicture::MakeFromData(receievedData->data(), receievedData->size());
  copy->playback(recordingCanvas);*/
  RestoreToCount(canvas.get(), save_count, params);
}

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/97946d8b-27dc-43c4-a262-e4f6288be9d6n%40chromium.org.

Reply via email to