class Harfbuzz::Buffer
Attributes
hb_buffer[R]
Public Class Methods
new()
click to toggle source
# File lib/harfbuzz/buffer.rb, line 88 def initialize @hb_buffer = Harfbuzz.hb_buffer_create define_finalizer(:hb_buffer_destroy, @hb_buffer) end
Public Instance Methods
add_utf8(text, offset=0, length=-1)
click to toggle source
# File lib/harfbuzz/buffer.rb, line 93 def add_utf8(text, offset=0, length=-1) raise "Expected text in UTF-8 encoding, but received #{text.encoding} (#{text.inspect})" unless text.encoding == Encoding::UTF_8 text_ptr = FFI::MemoryPointer.new(:char, text.bytesize) text_ptr.put_bytes(0, text) Harfbuzz.hb_buffer_add_utf8(@hb_buffer, text_ptr, text.bytesize, offset, length) end
get_glyph_infos()
click to toggle source
# File lib/harfbuzz/buffer.rb, line 112 def get_glyph_infos length_ptr = FFI::MemoryPointer.new(:uint, 1) info_ptr = Harfbuzz.hb_buffer_get_glyph_infos(@hb_buffer, length_ptr) length = length_ptr.read_uint length.times.map do |i| GlyphInfo.new(info_ptr + (i * GlyphInfo.size)) end end
get_glyph_positions()
click to toggle source
# File lib/harfbuzz/buffer.rb, line 121 def get_glyph_positions length_ptr = FFI::MemoryPointer.new(:uint, 1) positions_ptr = Harfbuzz.hb_buffer_get_glyph_positions(@hb_buffer, length_ptr) length = length_ptr.read_uint length.times.map do |i| GlyphPosition.new(positions_ptr + (i * GlyphPosition.size)) end end
guess_segment_properties()
click to toggle source
# File lib/harfbuzz/buffer.rb, line 100 def guess_segment_properties Harfbuzz.hb_buffer_guess_segment_properties(@hb_buffer) end
length()
click to toggle source
# File lib/harfbuzz/buffer.rb, line 108 def length Harfbuzz.hb_buffer_get_length(@hb_buffer) end
normalize_glyphs()
click to toggle source
# File lib/harfbuzz/buffer.rb, line 104 def normalize_glyphs Harfbuzz.hb_buffer_normalize_glyphs(@hb_buffer) end