rapngasm 3.1.7 → 3.2.0.pre2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,28 @@
1
- require 'rubygems'
2
- require 'mkmf-rice'
1
+ require 'mkmf'
3
2
 
4
- $CFLAGS = '-x c++'
5
- $LOCAL_LIBS = '-lapngasm'
3
+ return unless have_library('stdc++') # make sure we don't have some funny system
6
4
 
7
- dir_config 'apngasm'
5
+ $stdout.write 'Checking for APNGAsm.'
6
+ if have_library('apngasm')
7
+ $stdout.write 'APNGAsm found, building RAPNGAsm.'
8
+ else
9
+ $stdout.write 'APNGAsm NOT found. Please install libapngasm.'
10
+ exit 1
11
+ end
8
12
 
9
- # if have_header('apngasm.h')
10
- create_makefile 'rapngasm'
11
- # else
12
- # puts 'apngasm is not installed or the headers are not in the system path.'
13
- # end
13
+ #find header location
14
+ header_loc = `echo '#include <apngasm-conf.h>' | gcc -xc - -E`
15
+ header_loc = header_loc.to_s.match(".*apngasm-conf\.h")
16
+ header_loc = header_loc.to_s.match("\/.*\/")
17
+ $stdout.write "\nAPNGAsm config header found in: #{header_loc.to_s}"
18
+
19
+ dir_config('rapngasm')
20
+
21
+ $stdout.write "\nGenerating native interface wrappers with SWIG\n"
22
+ $stdout.write "Using SWIG from #{`which swig`}\n"
23
+ $stdout.write "Generating wrapper sources from #{File.expand_path(File.dirname(__FILE__))}/apngasm.i\n"
24
+ `swig -c++ -ruby -I#{header_loc.to_s} #{File.expand_path(File.dirname(__FILE__))}/apng.i`
25
+ $stdout.write 'Wrappers generated'
26
+ $distcleanfiles += ['apngasm_wrap.cxx']
27
+
28
+ create_makefile('rapngasm')
data/rapngasm.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rapngasm'
3
- s.version = '3.1.7'
3
+ s.version = '3.2.0.pre2'
4
4
  s.license = 'libpng/zlib'
5
5
  s.summary = 'apngasm for Ruby'
6
6
  s.description = 'Ruby native extension for the apngasm APNG Assembler.'
@@ -8,18 +8,13 @@ Gem::Specification.new do |s|
8
8
  s.email = 'zero@genshin.org'
9
9
  s.homepage = 'http://www.github.com/apngasm/rapngasm'
10
10
 
11
- s.files = Dir.glob('ext/**/*.{h,c,cpp,rb}') +
11
+ s.files = Dir.glob('ext/**/*') +
12
12
  Dir.glob('lib/**/*.rb') +
13
13
  Dir.glob('vendor/**/*') +
14
14
  ['rapngasm.gemspec']
15
15
 
16
16
  s.extensions << 'ext/rapngasm/extconf.rb'
17
- s.require_paths = ['lib', 'ext']
18
-
19
- # As of 3.1.7 we will expect full native compilation.
20
- # This is to avoid version issues. Precompiled native gems
21
- # would be nice if we could version lock them to native lib
22
- # versions...
23
- s.add_development_dependency 'rake-compiler', '~> 0.9', '~> 0.9.5'
24
- s.add_development_dependency 'rice', '~> 1.7', '~> 1.7.0'
17
+ s.require_paths = ['lib']
18
+
19
+ s.add_development_dependency 'rake-compiler', '~> 0.9'
25
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rapngasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.7
4
+ version: 3.2.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rei Kagetsuki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-17 00:00:00.000000000 Z
12
+ date: 2015-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake-compiler
@@ -18,9 +18,6 @@ dependencies:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0.9'
21
- - - "~>"
22
- - !ruby/object:Gem::Version
23
- version: 0.9.5
24
21
  type: :development
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,29 +25,6 @@ dependencies:
28
25
  - - "~>"
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0.9'
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.9.5
34
- - !ruby/object:Gem::Dependency
35
- name: rice
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.7'
41
- - - "~>"
42
- - !ruby/object:Gem::Version
43
- version: 1.7.0
44
- type: :development
45
- prerelease: false
46
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: '1.7'
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: 1.7.0
54
28
  description: Ruby native extension for the apngasm APNG Assembler.
55
29
  email: zero@genshin.org
56
30
  executables: []
@@ -58,9 +32,9 @@ extensions:
58
32
  - ext/rapngasm/extconf.rb
59
33
  extra_rdoc_files: []
60
34
  files:
61
- - ext/rapngasm/apngasm_ruby.h
35
+ - ext/rapngasm/apng.i
36
+ - ext/rapngasm/apng_wrap.cxx
62
37
  - ext/rapngasm/extconf.rb
63
- - ext/rapngasm/rapngasm.cpp
64
38
  - rapngasm.gemspec
65
39
  homepage: http://www.github.com/apngasm/rapngasm
66
40
  licenses:
@@ -70,7 +44,6 @@ post_install_message:
70
44
  rdoc_options: []
71
45
  require_paths:
72
46
  - lib
73
- - ext
74
47
  required_ruby_version: !ruby/object:Gem::Requirement
75
48
  requirements:
76
49
  - - ">="
@@ -78,9 +51,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
78
51
  version: '0'
79
52
  required_rubygems_version: !ruby/object:Gem::Requirement
80
53
  requirements:
81
- - - ">="
54
+ - - ">"
82
55
  - !ruby/object:Gem::Version
83
- version: '0'
56
+ version: 1.3.1
84
57
  requirements: []
85
58
  rubyforge_project:
86
59
  rubygems_version: 2.4.8
@@ -1,5 +0,0 @@
1
- #ifndef _APNGASM_RUBY_
2
- #define _APNGASM_RUBY_
3
-
4
-
5
- #endif /* _APNGASM_RUBY_ */
@@ -1,124 +0,0 @@
1
- //#include <apngasm_ruby.h>
2
-
3
- #include <apngasm.h>
4
- #include <apngframe.h>
5
- #include "rice/Data_Type.hpp"
6
- #include "rice/Class.hpp"
7
- #include "rice/Constructor.hpp"
8
- #include "rice/Array.hpp"
9
-
10
- using namespace Rice;
11
- using namespace apngasm;
12
-
13
- template<>
14
- Object to_ruby< std::vector<APNGFrame> > (std::vector<APNGFrame> const & x)
15
- {
16
- std::vector<APNGFrame> v = x;
17
- Array a;
18
-
19
- for (std::vector<APNGFrame>::iterator vi = v.begin(); vi != v.end(); ++vi)
20
- a.push(to_ruby<APNGFrame> (*vi));
21
-
22
- return a;
23
- }
24
-
25
- template<>
26
- rgb* from_ruby< rgb* > (Object o)
27
- {
28
- Array a(o);
29
- rgb* rgbArray = (rgb*)malloc(a.size() * 3);
30
-
31
- for (unsigned int i = 0; i < a.size(); i++)
32
- {
33
- Array array(a[i]);
34
- rgb r = { from_ruby<unsigned char>(array[0]), from_ruby<unsigned char>(array[1]),
35
- from_ruby<unsigned char>(array[2]) };
36
- rgbArray[i] = r;
37
- }
38
-
39
- return rgbArray;
40
- return NULL;
41
- }
42
-
43
- template<>
44
- rgba* from_ruby< rgba* > (Object o)
45
- {
46
- Array a(o);
47
- rgba* rgbaArray = (rgba*)malloc(a.size() * 4);
48
-
49
- for (unsigned int i = 0; i < a.size(); i++)
50
- {
51
- Array array(a[i]);
52
- rgba r = { from_ruby<unsigned char>(array[0]), from_ruby<unsigned char>(array[1]),
53
- from_ruby<unsigned char>(array[2]), from_ruby<unsigned char>(array[3]) };
54
- rgbaArray[i] = r;
55
- }
56
-
57
- return rgbaArray;
58
- }
59
-
60
- template<>
61
- const std::string& from_ruby< const std::string& > (Object o)
62
- {
63
- static std::string tmp;
64
- String str(o);
65
- tmp.clear();
66
- tmp.append(str.c_str());
67
- return tmp;
68
- }
69
-
70
- //size_t APNGAsm::wrap_add_frame_rgb(Object pixels, unsigned int width, unsigned int height, Object trns_color = NULL, unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR) {
71
- // return this.addFrame(from_ruby<rgb*>(pixels), width, height, from_ruby<rgb*>(trns_color), delayNum, delayDen);
72
- //}
73
-
74
- extern "C"
75
- void Init_rapngasm()
76
- {
77
- define_class<APNGFrame>("APNGFrame")
78
- .define_constructor(Constructor<APNGFrame>())
79
- .define_method("pixels", &APNGFrame::pixels, (Arg("pixels") = NULL))
80
- .define_method("width", &APNGFrame::width, (Arg("width") = 0))
81
- .define_method("height", &APNGFrame::height, (Arg("height") = 0))
82
- .define_method("color_type", &APNGFrame::colorType, (Arg("color_type") = 255))
83
- .define_method("palette", &APNGFrame::palette, (Arg("palette") = NULL))
84
- .define_method("transparency", &APNGFrame::transparency, (Arg("transparency") = NULL))
85
- .define_method("palettes_size", &APNGFrame::paletteSize, (Arg("palettes_size") = 0))
86
- .define_method("transparency_size", &APNGFrame::transparencySize, (Arg("transparency_size") = NULL))
87
- .define_method("delay_numerator", &APNGFrame::delayNum, (Arg("delay_numerator") = 0))
88
- .define_method("delay_denominator", &APNGFrame::delayDen, (Arg("delay_denominator") = 0))
89
- .define_method("rows", &APNGFrame::rows, (Arg("rows") = NULL))
90
- .define_method("save", &APNGFrame::save, (Arg("out_path")));
91
-
92
- typedef size_t (APNGAsm::*add_frame_object)(const APNGFrame&);
93
- typedef size_t (APNGAsm::*add_frame_file)(const std::string&, unsigned, unsigned);
94
- typedef size_t (APNGAsm::*add_frame_rgb)(rgb*, unsigned int, unsigned int, rgb*, unsigned, unsigned);
95
- typedef size_t (APNGAsm::*add_frame_rgba)(rgba*, unsigned int, unsigned int, unsigned, unsigned);
96
- define_class<APNGAsm>("APNGAsm")
97
- .define_constructor(Constructor<APNGAsm>())
98
- .define_method("assemble", &APNGAsm::assemble)
99
- .define_method("disassemble", &APNGAsm::disassemble)
100
- .define_method("load_animation_spec", &APNGAsm::loadAnimationSpec)
101
- .define_method("save_pngs", &APNGAsm::savePNGs)
102
- .define_method("save_json", &APNGAsm::saveJSON)
103
- .define_method("save_xml", &APNGAsm::saveXML)
104
- //.define_method("set_apngasm_listener", &APNGAsm::setAPNGAsmListener)
105
- .define_method("get_frames", &APNGAsm::getFrames)
106
- .define_method("frame_count", &APNGAsm::frameCount)
107
- .define_method("set_loops", &APNGAsm::setLoops, Arg("loops") = 0)
108
- .define_method("set_skip_first", &APNGAsm::setSkipFirst, Arg("skip_first"))
109
- .define_method("get_loops", &APNGAsm::getLoops)
110
- .define_method("is_skip_first", &APNGAsm::isSkipFirst)
111
- .define_method("reset", &APNGAsm::reset)
112
- .define_method("version", &APNGAsm::version)
113
- .define_method("add_frame", add_frame_object(&APNGAsm::addFrame))
114
- .define_method("add_frame_file", add_frame_file(&APNGAsm::addFrame),
115
- (Arg("file_path"), Arg("delay_numerator") = DEFAULT_FRAME_NUMERATOR,
116
- Arg("delay_denominator") = DEFAULT_FRAME_DENOMINATOR))
117
- .define_method("add_frame_rgb", add_frame_rgb(&APNGAsm::addFrame),
118
- (Arg("pixels"), Arg("width"), Arg("height"), Arg("trns_color") = NULL,
119
- Arg("delay_numerator") = DEFAULT_FRAME_NUMERATOR,
120
- Arg("delay_denominator") = DEFAULT_FRAME_DENOMINATOR))
121
- .define_method("add_frame_rgba", add_frame_rgba(&APNGAsm::addFrame),
122
- (Arg("pixels"), Arg("width"), Arg("height"),
123
- Arg("delay_numerator") = DEFAULT_FRAME_NUMERATOR, Arg("delay_denominator") = DEFAULT_FRAME_DENOMINATOR));
124
- }