rapngasm 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|