Class: Skia::PictureRecorder

Inherits:
Object
  • Object
show all
Defined in:
lib/skia/picture.rb

Instance Method Summary collapse

Constructor Details

#initializePictureRecorder

Returns a new instance of PictureRecorder.

Raises:



65
66
67
68
69
70
# File 'lib/skia/picture.rb', line 65

def initialize
  @ptr = Native.sk_picture_recorder_new
  raise Error, "Failed to create picture recorder" if @ptr.nil? || @ptr.null?

  @recording = false
end

Instance Method Details

#begin_recording(bounds) ⇒ Object

Raises:



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/skia/picture.rb', line 76

def begin_recording(bounds)
  bounds_struct = bounds.to_struct
  canvas_ptr = Native.sk_picture_recorder_begin_recording(@ptr, bounds_struct)
  raise Error, "Failed to begin recording" if canvas_ptr.nil? || canvas_ptr.null?

  @recording = true
  canvas = Canvas.new(canvas_ptr)

  if block_given?
    yield canvas
    end_recording
  else
    canvas
  end
end

#deleteObject



115
116
117
118
# File 'lib/skia/picture.rb', line 115

def delete
  Native.sk_picture_recorder_delete(@ptr) if @ptr
  @ptr = nil
end

#end_recordingObject

Raises:



101
102
103
104
105
106
107
108
109
# File 'lib/skia/picture.rb', line 101

def end_recording
  return nil unless @recording

  ptr = Native.sk_picture_recorder_end_recording(@ptr)
  @recording = false
  raise Error, "Failed to end recording" if ptr.nil? || ptr.null?

  Picture.new(ptr)
end

#ptrObject



72
73
74
# File 'lib/skia/picture.rb', line 72

def ptr
  @ptr
end

#recording?Boolean

Returns:

  • (Boolean)


111
112
113
# File 'lib/skia/picture.rb', line 111

def recording?
  @recording
end

#recording_canvasObject



92
93
94
95
96
97
98
99
# File 'lib/skia/picture.rb', line 92

def recording_canvas
  return nil unless @recording

  canvas_ptr = Native.sk_picture_get_recording_canvas(@ptr)
  return nil if canvas_ptr.nil? || canvas_ptr.null?

  Canvas.new(canvas_ptr)
end