diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-08-17 16:43:30 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-08-17 16:43:30 +0200 |
commit | d81ff944740c1e4bc8ee582542e7f4fa352baff4 (patch) | |
tree | 940b9e4b0eab0c45f1159ee06199b3429caff866 | |
parent | cfa78d42ac5bbfd6cd7e1b3a9f85b34adae02ecd (diff) | |
download | ffi-efl-d81ff944740c1e4bc8ee582542e7f4fa352baff4.zip ffi-efl-d81ff944740c1e4bc8ee582542e7f4fa352baff4.tar.gz |
Revas... use instance level pointers as native API parameters
-rw-r--r-- | lib/efl/evas.rb | 251 |
1 files changed, 129 insertions, 122 deletions
diff --git a/lib/efl/evas.rb b/lib/efl/evas.rb index 7ce8dc0..abcc24e 100644 --- a/lib/efl/evas.rb +++ b/lib/efl/evas.rb @@ -71,7 +71,7 @@ module Efl yield self if block_given? end def self.release p - Native.evas_free p unless p.nil? + Native.evas_free p end def free @ptr.autorelease=false if @ptr.is_a? FFI::AutoPointer @@ -94,35 +94,35 @@ module Efl Evas::REvasBox.new Native.method(:evas_object_box_add), @ptr, &block end def output_size_get - x = FFI::MemoryPointer.new :int - y = FFI::MemoryPointer.new :int - Native.evas_output_size_get @ptr, x, y - [ x.read_int, y.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_output_size_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :output_size :output_size_get alias :size :output_size_get def output_viewport_get - x = FFI::MemoryPointer.new :int - y = FFI::MemoryPointer.new :int - w = FFI::MemoryPointer.new :int - h = FFI::MemoryPointer.new :int - Native.evas_output_viewport_get @ptr, x, y, w, h - [ x.read_int, y.read_int, w.read_int, h.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_output_viewport_get @ptr, @ri0, @ri1, @ri2, @ri3 + [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :output_viewport :output_viewport_get alias :viewport :output_viewport_get def pointer_output_xy_get - x = FFI::MemoryPointer.new :int - y = FFI::MemoryPointer.new :int - Native.evas_pointer_output_xy_get @ptr, x, y - [ x.read_int, y.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_pointer_output_xy_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :pointer_output :pointer_output_xy_get def pointer_canvas_xy_get - x = FFI::MemoryPointer.new :int - y = FFI::MemoryPointer.new :int - Native.evas_pointer_canvas_xy_get @ptr, x, y - [ x.read_int, y.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_pointer_canvas_xy_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :pointer_canvas :pointer_canvas_xy_get end @@ -147,6 +147,13 @@ module Efl end def self.release p Native.evas_object_del p unless p.nil? + @ri0.free if @ri0 + @ri1.free if @ri1 + @ri2.free if @ri2 + @ri3.free if @ri3 + @rd0.free if @rd0 + @rd1.free if @rd1 + @rs0.free if @rs0 end def free @ptr.autorelease=false if @ptr.is_a? FFI::AutoPointer @@ -165,12 +172,12 @@ module Efl Native.evas_object_type_get @ptr end def geometry_get - x = FFI::MemoryPointer.new :int - y = FFI::MemoryPointer.new :int - w = FFI::MemoryPointer.new :int - h = FFI::MemoryPointer.new :int - Native.evas_object_geometry_get @ptr, x, y, w, h - [ x.read_int, y.read_int, w.read_int, h.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_geometry_get @ptr, @ri0, @ri1, @ri2, @ri3 + [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :geometry :geometry_get def center_get @@ -190,12 +197,12 @@ module Efl Native.evas_object_resize @ptr, *wh end def color_get - r = FFI::MemoryPointer.new :int - g = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - a = FFI::MemoryPointer.new :int - Native.evas_object_color_get @ptr, r, g, b, a - [ r.read_int, g.read_int, b.read_int, a.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_color_get @ptr, @ri0, @ri1, @ri2, @ri3 + [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :color :color_get def evas_get @@ -211,32 +218,32 @@ module Efl end alias :below :below_get def size_hint_min_get - w = FFI::MemoryPointer.new :int - h = FFI::MemoryPointer.new :int - Native.evas_object_size_hint_min_get @ptr, w, h - [ w.read_int, h.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_object_size_hint_min_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :size_hint_min :size_hint_min_get def size_hint_max_get - w = FFI::MemoryPointer.new :int - h = FFI::MemoryPointer.new :int - Native.evas_object_size_hint_max_get @ptr, w, h - [ w.read_int, h.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_object_size_hint_max_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :size_hint_max :size_hint_max_get def size_hint_request_get - w = FFI::MemoryPointer.new :int - h = FFI::MemoryPointer.new :int - Native.evas_object_size_hint_request_get @ptr, w, h - [ w.read_int, h.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_object_size_hint_request_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :size_hint_request :size_hint_request_get def size_hint_aspect_get - a = FFI::MemoryPointer.new :int - w = FFI::MemoryPointer.new :int - h = FFI::MemoryPointer.new :int - Native.evas_object_size_hint_aspect_get @ptr, a, w, h - [ Native.enum_type(:evas_aspect_control)[a.read_int], w.read_int, h.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + Native.evas_object_size_hint_aspect_get @ptr, @ri0, @ri1, @ri2 + [ Native.enum_type(:evas_aspect_control)[@ri0.read_int], @ri1.read_int, @ri2.read_int ] end alias :size_hint_aspect :size_hint_aspect_get def size_hint_align_set_fill @@ -244,10 +251,10 @@ module Efl end alias :size_hint_align_fill :size_hint_align_set_fill def size_hint_align_get - w = FFI::MemoryPointer.new :double - h = FFI::MemoryPointer.new :double - Native.evas_object_size_hint_align_get @ptr, w, h - [ w.read_double, h.read_double ] + @rd0 ||= FFI::MemoryPointer.new :double + @rd1 ||= FFI::MemoryPointer.new :double + Native.evas_object_size_hint_align_get @ptr, @rd0, @rd1 + [ @rd0.read_double, @rd1.read_double ] end alias :size_hint_align :size_hint_align_get def size_hint_weight_set_expand @@ -255,19 +262,19 @@ module Efl end alias :size_hint_weight_expand :size_hint_weight_set_expand def size_hint_weight_get - w = FFI::MemoryPointer.new :double - h = FFI::MemoryPointer.new :double - Native.evas_object_size_hint_weight_get @ptr, w, h - [ w.read_double, h.read_double ] + @rd0 ||= FFI::MemoryPointer.new :double + @rd1 ||= FFI::MemoryPointer.new :double + Native.evas_object_size_hint_weight_get @ptr, @rd0, @rd1 + [ @rd0.read_double, @rd1.read_double ] end alias :size_hint_weight :size_hint_weight_get def size_hint_padding_get - l = FFI::MemoryPointer.new :int - r = FFI::MemoryPointer.new :int - t = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - Native.evas_object_size_hint_padding_get @ptr, l, r, t, b - [ l.read_int, r.read_int, t.read_int, b.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_size_hint_padding_get @ptr, @ri0, @ri1, @ri2, @ri3 + [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :size_hint_padding :size_hint_padding_get def data_get k @@ -287,12 +294,12 @@ module Efl search_prefixes 'evas_object_line_' # def line_xy_get - x1 = FFI::MemoryPointer.new :int - y1 = FFI::MemoryPointer.new :int - x2 = FFI::MemoryPointer.new :int - y2 = FFI::MemoryPointer.new :int - Native.evas_object_line_xy_get @ptr, x1, y1, x2, y2 - [ x1.read_int, y1.read_int, x2.read_int, y2.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_line_xy_get @ptr, @ri0, @ri1, @ri2, @ri3 + [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end end # @@ -311,73 +318,73 @@ module Efl search_prefixes 'evas_object_text_' # def font_get - f = FFI::MemoryPointer.new :string - s = FFI::MemoryPointer.new :int - Native.evas_object_text_font_get @ptr, f, s - [ f.read_pointer.read_string, s.read_int ] + @rs0 ||= FFI::MemoryPointer.new :string + @ri0 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_font_get @ptr, @rs0, @ri0 + [ @rs0.read_pointer.read_string, @ri0.read_int ] end alias :font :font_get def char_pos_get pos - cx = FFI::MemoryPointer.new :int - cy = FFI::MemoryPointer.new :int - cw = FFI::MemoryPointer.new :int - ch = FFI::MemoryPointer.new :int - Native.evas_object_text_char_pos_get @ptr, pos, cx, cy, cw, ch - return [ cx.read_int, cy.read_int, cw.read_int, ch.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_char_pos_get @ptr, pos, @ri0, @ri1, @ri2, @ri3 + return [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :char_pos :char_pos_get def char_coords_get x, y - cx = FFI::MemoryPointer.new :int - cy = FFI::MemoryPointer.new :int - cw = FFI::MemoryPointer.new :int - ch = FFI::MemoryPointer.new :int - r = Native.evas_object_text_char_coords_get @ptr, x, y, cx, cy, cw, ch - return [ r, cx.read_int, cy.read_int, cw.read_int, ch.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + r = Native.evas_object_text_char_coords_get @ptr, x, y, @ri0, @ri1, @ri2, @ri3 + return [ r, @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :char_coords :char_coords_get def style_pad_get - l = FFI::MemoryPointer.new :int - r = FFI::MemoryPointer.new :int - t = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - Native.evas_object_text_shadow_color_get @ptr, l, r, t, b - return [ l.read_int, r.read_int, t.read_int, b.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_shadow_color_get @ptr, @ri0, @ri1, @ri2, @ri3 + return [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :style_pad :style_pad_get def shadow_color_get - r = FFI::MemoryPointer.new :int - g = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - a = FFI::MemoryPointer.new :int - Native.evas_object_text_shadow_color_get @ptr, r, g, b, a - return [ r.read_int, g.read_int, b.read_int, a.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_shadow_color_get @ptr, @ri0, @ri1, @ri2, @ri3 + return [ @ri0.read_int, @ri1.read_int, @ri2.ead_int, @ri3.ead_int ] end alias :shadow_color :shadow_color_get def glow_color_get - r = FFI::MemoryPointer.new :int - g = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - a = FFI::MemoryPointer.new :int - Native.evas_object_text_glow_color_get @ptr, r, g, b, a - return [ r.read_int, g.read_int, b.read_int, a.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_glow_color_get @ptr, @ri0, @ri1, @ri2, @ri3 + return [ @ri0.read_int, @ri1.read_int, @ri2.ead_int, @ri3.ead_int ] end alias :glow_color :glow_color_get def glow2_color_get - r = FFI::MemoryPointer.new :int - g = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - a = FFI::MemoryPointer.new :int - Native.evas_object_text_glow2_color_get @ptr, r, g, b, a - return [ r.read_int, g.read_int, b.read_int, a.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_glow2_color_get @ptr, @ri0, @ri1, @ri2, @ri3 + return [ @ri0.read_int, @ri1.read_int, @ri2.ead_int, @ri3.ead_int ] end alias :glow2_color :glow2_color_get def outline_color_get - r = FFI::MemoryPointer.new :int - g = FFI::MemoryPointer.new :int - b = FFI::MemoryPointer.new :int - a = FFI::MemoryPointer.new :int - Native.evas_object_text_outline_color_get @ptr, r, g, b, a - return [ r.read_int, g.read_int, b.read_int, a.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + @ri2 ||= FFI::MemoryPointer.new :int + @ri3 ||= FFI::MemoryPointer.new :int + Native.evas_object_text_outline_color_get @ptr, @ri0, @ri1, @ri2, @ri3 + return [ @ri0.read_int, @ri1.read_int, @ri2.read_int, @ri3.read_int ] end alias :outline_color :outline_color_get end @@ -391,17 +398,17 @@ module Efl end alias :children :children_get def align_get - h = FFI::MemoryPointer.new :double - v = FFI::MemoryPointer.new :double - Native.evas_object_box_align_get @ptr, h, v - [ h.read_double, v.read_double ] + @rd0 ||= FFI::MemoryPointer.new :double + @rd1 ||= FFI::MemoryPointer.new :double + Native.evas_object_box_align_get @ptr, @rd0, @rd1 + [ @rd0.read_double, @rd1.read_double ] end alias :align :align_get def padding_get - h = FFI::MemoryPointer.new :int - v = FFI::MemoryPointer.new :int - Native.evas_object_box_padding_get @ptr, h, v - [ h.read_int, v.read_int ] + @ri0 ||= FFI::MemoryPointer.new :int + @ri1 ||= FFI::MemoryPointer.new :int + Native.evas_object_box_padding_get @ptr, @ri0, @ri1 + [ @ri0.read_int, @ri1.read_int ] end alias :padding :padding_get end |