rapngasm 0.0.1 → 1.0.0
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.
- checksums.yaml +4 -4
- data/ext/rapngasm/apngasm_ruby.h +5 -0
- data/ext/rapngasm/extconf.rb +12 -0
- data/ext/rapngasm/rapngasm.cpp +111 -0
- metadata +12 -11
- data/.gitignore +0 -2
- data/README.md +0 -4
- data/rapngasm.gemspec +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92d8f726309d7524f19d695fdc95d4e3aba2588e
|
4
|
+
data.tar.gz: c78a22ad85f90c2760db03ddac460afc25c79ebf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 404d4b212bb7014a009f43a042890e0a1ffb27c01abb5a06ddd3b533b1c221f709c41e9e7f4ab006a04ba0ed47198205f6046816e01f4b02b3f45aa674fa474e
|
7
|
+
data.tar.gz: e33591d72f8b74ed38e4dbe2501aa9177a3837a169d5318a3d50ec82a9d92fb2cab89d5d67841fd2bad815f16b1d4e81056bdd2d0b48a659a86ce8eadaf13a7a
|
@@ -0,0 +1,111 @@
|
|
1
|
+
//#include <apngasm_ruby.h>
|
2
|
+
|
3
|
+
#include <apngasm.h>
|
4
|
+
#include <apngframe.h>
|
5
|
+
#include "rice/Class.hpp"
|
6
|
+
#include "rice/Data_Type.hpp"
|
7
|
+
#include "rice/Constructor.hpp"
|
8
|
+
#include "rice/String.hpp"
|
9
|
+
#include "rice/Array.hpp"
|
10
|
+
#include <iostream>
|
11
|
+
|
12
|
+
using namespace Rice;
|
13
|
+
using namespace apngasm;
|
14
|
+
|
15
|
+
namespace apngasm
|
16
|
+
{
|
17
|
+
class RAPNGAsm : public APNGAsm
|
18
|
+
{
|
19
|
+
public:
|
20
|
+
size_t addFrameFromFrameObject(const APNGFrame &frame)
|
21
|
+
{
|
22
|
+
return this->addFrame(frame);
|
23
|
+
}
|
24
|
+
|
25
|
+
size_t addFrameFromFile(const std::string &filePath,
|
26
|
+
unsigned delayNum = DEFAULT_FRAME_NUMERATOR, unsigned delayDen = DEFAULT_FRAME_DENOMINATOR)
|
27
|
+
{
|
28
|
+
return this->addFrame(filePath, delayNum, delayDen);
|
29
|
+
}
|
30
|
+
|
31
|
+
template<typename T>
|
32
|
+
T from_ruby(Object o);
|
33
|
+
|
34
|
+
template<typename T>
|
35
|
+
Object to_ruby(T const & x);
|
36
|
+
};
|
37
|
+
}
|
38
|
+
|
39
|
+
// template<>
|
40
|
+
// std::vector<APNGFrame> from_ruby<std::vector<APNGFrame> >(Object o)
|
41
|
+
// {
|
42
|
+
// Array a(o);
|
43
|
+
// std::vector<APNGFrame> v;
|
44
|
+
// for(Array::iterator ai = a.begin(); ai != a.end(); ++ai)
|
45
|
+
// v.push_back(from_ruby<APNGFrame> (*ai));
|
46
|
+
// return v;
|
47
|
+
// }
|
48
|
+
|
49
|
+
template<>
|
50
|
+
Object to_ruby< unsigned char* > (unsigned char* const & x)
|
51
|
+
{
|
52
|
+
unsigned char* const c = x;
|
53
|
+
Array a;
|
54
|
+
for (unsigned int i = 0; i < sizeof(c); i++)
|
55
|
+
a.push(c[i]);
|
56
|
+
return a;
|
57
|
+
}
|
58
|
+
|
59
|
+
template<>
|
60
|
+
Object to_ruby< std::vector<APNGFrame> > (std::vector<APNGFrame> const & x)
|
61
|
+
{
|
62
|
+
std::vector<APNGFrame> v = x;
|
63
|
+
Array a;
|
64
|
+
for (std::vector<APNGFrame>::iterator vi = v.begin(); vi != v.end(); ++vi)
|
65
|
+
a.push(to_ruby<APNGFrame> (*vi));
|
66
|
+
return a;
|
67
|
+
}
|
68
|
+
|
69
|
+
template<>
|
70
|
+
unsigned char* from_ruby< unsigned char* > (Object o)
|
71
|
+
{
|
72
|
+
Array a(o);
|
73
|
+
unsigned char* c = (unsigned char*)malloc(a.size());
|
74
|
+
for (unsigned int i = 0; i < a.size(); i++)
|
75
|
+
c[i] = from_ruby<unsigned char>(a[i]);
|
76
|
+
return c;
|
77
|
+
}
|
78
|
+
|
79
|
+
extern "C"
|
80
|
+
void Init_rapngasm()
|
81
|
+
{
|
82
|
+
define_class<APNGFrame>("APNGFrame")
|
83
|
+
//.define_constructor(Constructor<APNGFrame>())
|
84
|
+
.define_constructor(Constructor<APNGFrame, const std::string, unsigned, unsigned>(),
|
85
|
+
(Arg("file_path"), Arg("delay_num") = DEFAULT_FRAME_NUMERATOR, Arg("dela_den") = DEFAULT_FRAME_DENOMINATOR))
|
86
|
+
.define_method("pixels", &APNGFrame::pixels, (Arg("pixels") = NULL))
|
87
|
+
.define_method("width", &APNGFrame::width, (Arg("width") = 0))
|
88
|
+
.define_method("height", &APNGFrame::height, (Arg("height") = 0))
|
89
|
+
.define_method("color_type", &APNGFrame::colorType, (Arg("color_type") = 255))
|
90
|
+
// .define_method("palette", &APNGFrame::palette, (Arg("palette") = NULL))
|
91
|
+
.define_method("transparency", &APNGFrame::transparency, (Arg("transparency") = NULL))
|
92
|
+
.define_method("palettes_size", &APNGFrame::paletteSize, (Arg("palettes_size") = 0))
|
93
|
+
.define_method("transparency_size", &APNGFrame::transparencySize, (Arg("transparency_size") = NULL))
|
94
|
+
.define_method("delay_numerator", &APNGFrame::delayNum, (Arg("delay_numerator") = 0))
|
95
|
+
.define_method("delay_denominator", &APNGFrame::delayDen, (Arg("delay_denominator") = 0));
|
96
|
+
// .define_method("rows", &APNGFrame::rows, (Arg("rows") = NULL));
|
97
|
+
|
98
|
+
define_class<APNGAsm>("APNGAsmSuper")
|
99
|
+
.define_constructor(Constructor<APNGAsm>())
|
100
|
+
.define_method("version", &APNGAsm::version)
|
101
|
+
.define_method("assemble", &APNGAsm::assemble)
|
102
|
+
.define_method("disassemble", &APNGAsm::disassemble)
|
103
|
+
.define_method("frame_count", &APNGAsm::frameCount)
|
104
|
+
.define_method("reset", &APNGAsm::reset);
|
105
|
+
|
106
|
+
define_class<RAPNGAsm, APNGAsm>("APNGAsm")
|
107
|
+
.define_constructor(Constructor<RAPNGAsm>())
|
108
|
+
.define_method("add_frame", &RAPNGAsm::addFrameFromFrameObject, Arg("frame"))
|
109
|
+
.define_method("add_frame_from_file", &RAPNGAsm::addFrameFromFile,
|
110
|
+
(Arg("filePath"), Arg("delayNum") = DEFAULT_FRAME_NUMERATOR, Arg("delayDen") = DEFAULT_FRAME_DENOMINATOR));
|
111
|
+
}
|
metadata
CHANGED
@@ -1,27 +1,28 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rapngasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rei Kagetsuki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
14
|
-
email:
|
13
|
+
description: Ruby native extension for the apngasm APNG Assembler.
|
14
|
+
email: zero@genshin.org
|
15
15
|
executables: []
|
16
|
-
extensions:
|
16
|
+
extensions:
|
17
|
+
- ext/rapngasm/extconf.rb
|
17
18
|
extra_rdoc_files: []
|
18
19
|
files:
|
19
|
-
- .
|
20
|
-
-
|
21
|
-
- rapngasm.
|
22
|
-
homepage: http://
|
20
|
+
- ext/rapngasm/apngasm_ruby.h
|
21
|
+
- ext/rapngasm/rapngasm.cpp
|
22
|
+
- ext/rapngasm/extconf.rb
|
23
|
+
homepage: http://www.github.com/apngasm/rapngasm
|
23
24
|
licenses:
|
24
|
-
-
|
25
|
+
- libpng/zlib
|
25
26
|
metadata: {}
|
26
27
|
post_install_message:
|
27
28
|
rdoc_options: []
|
@@ -39,7 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
39
40
|
version: '0'
|
40
41
|
requirements: []
|
41
42
|
rubyforge_project:
|
42
|
-
rubygems_version: 2.
|
43
|
+
rubygems_version: 2.1.11
|
43
44
|
signing_key:
|
44
45
|
specification_version: 4
|
45
46
|
summary: apngasm for Ruby
|
data/.gitignore
DELETED
data/README.md
DELETED
data/rapngasm.gemspec
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
Gem::Specification.new do |s|
|
2
|
-
s.name = 'rapngasm'
|
3
|
-
s.version = '0.0.1'
|
4
|
-
s.license = "GPLv3"
|
5
|
-
s.summary = "apngasm for Ruby"
|
6
|
-
s.description = "[Will be:] Ruby front end and module library for apngasm."
|
7
|
-
s.authors = ["Rei Kagetsuki"]
|
8
|
-
s.email = 'info@genshin.org'
|
9
|
-
s.files = `git ls-files`.split("\n")
|
10
|
-
s.homepage = 'http://genshin.org'
|
11
|
-
end
|