rays 0.3 → 0.3.1
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/.doc/ext/rays/bounds.cpp +14 -10
- data/.doc/ext/rays/defs.cpp +4 -4
- data/.doc/ext/rays/image.cpp +31 -17
- data/.doc/ext/rays/matrix.cpp +2 -2
- data/.doc/ext/rays/point.cpp +8 -4
- data/.doc/ext/rays/polygon.cpp +8 -6
- data/.doc/ext/rays/polyline.cpp +3 -1
- data/.doc/ext/rays/rays.cpp +15 -5
- data/.doc/ext/rays/shader.cpp +1 -1
- data/ChangeLog.md +6 -0
- data/Gemfile.lock +1 -1
- data/LICENSE +1 -1
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/ext/rays/bounds.cpp +14 -10
- data/ext/rays/defs.cpp +4 -4
- data/ext/rays/image.cpp +33 -17
- data/ext/rays/matrix.cpp +2 -2
- data/ext/rays/point.cpp +8 -4
- data/ext/rays/polygon.cpp +8 -6
- data/ext/rays/polyline.cpp +3 -1
- data/ext/rays/rays.cpp +15 -5
- data/ext/rays/shader.cpp +1 -1
- data/include/rays/image.h +8 -2
- data/lib/rays/image.rb +4 -0
- data/rays.gemspec +2 -2
- data/src/bounds.cpp +6 -2
- data/src/color.cpp +12 -4
- data/src/image.cpp +32 -4
- data/src/ios/bitmap.mm +18 -4
- data/src/ios/font.mm +3 -1
- data/src/osx/bitmap.mm +18 -4
- data/src/osx/font.mm +3 -1
- data/src/painter.cpp +3 -1
- data/src/point.cpp +15 -3
- data/src/polygon.cpp +3 -5
- data/src/render_buffer.cpp +11 -3
- data/src/shader_program.cpp +19 -9
- data/src/shader_source.cpp +5 -1
- data/src/texture.cpp +33 -11
- data/src/texture.h +6 -2
- data/src/win32/bitmap.cpp +12 -2
- data/src/win32/font.cpp +3 -1
- data/test/test_painter_shape.rb +6 -5
- metadata +6 -6
data/src/texture.cpp
CHANGED
@@ -23,7 +23,7 @@ namespace Rays
|
|
23
23
|
|
24
24
|
ColorSpace color_space;
|
25
25
|
|
26
|
-
bool modified;
|
26
|
+
bool smooth, modified;
|
27
27
|
|
28
28
|
Data ()
|
29
29
|
{
|
@@ -44,6 +44,7 @@ namespace Rays
|
|
44
44
|
width_pow2 =
|
45
45
|
height_pow2 = 0;
|
46
46
|
color_space = COLORSPACE_UNKNOWN;
|
47
|
+
smooth = false;
|
47
48
|
modified = false;
|
48
49
|
}
|
49
50
|
|
@@ -110,7 +111,13 @@ namespace Rays
|
|
110
111
|
size_t width,
|
111
112
|
uchar* dest, size_t dest_stride, const uchar* src, size_t src_stride)
|
112
113
|
{
|
113
|
-
if (!dest
|
114
|
+
if (!dest)
|
115
|
+
argument_error(__FILE__, __LINE__);
|
116
|
+
if (!src)
|
117
|
+
argument_error(__FILE__, __LINE__);
|
118
|
+
if (dest_stride <= 0)
|
119
|
+
argument_error(__FILE__, __LINE__);
|
120
|
+
if ( src_stride <= 0)
|
114
121
|
argument_error(__FILE__, __LINE__);
|
115
122
|
|
116
123
|
while (width--)
|
@@ -171,7 +178,8 @@ namespace Rays
|
|
171
178
|
|
172
179
|
static void
|
173
180
|
setup_texture (
|
174
|
-
Texture::Data* self,
|
181
|
+
Texture::Data* self,
|
182
|
+
int width, int height, const ColorSpace& cs, bool smooth = false,
|
175
183
|
const Bitmap* bitmap = NULL, bool npot = false)
|
176
184
|
{
|
177
185
|
assert(self && !self->has_id());
|
@@ -184,7 +192,8 @@ namespace Rays
|
|
184
192
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
185
193
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
186
194
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
187
|
-
glTexParameteri(
|
195
|
+
glTexParameteri(
|
196
|
+
GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, smooth ? GL_LINEAR : GL_NEAREST);
|
188
197
|
|
189
198
|
GLenum format, type;
|
190
199
|
ColorSpace_get_gl_format_and_type(&format, &type, cs);
|
@@ -216,6 +225,7 @@ namespace Rays
|
|
216
225
|
self->width = width;
|
217
226
|
self->height = height;
|
218
227
|
self->color_space = cs;
|
228
|
+
self->smooth = smooth;
|
219
229
|
self->modified = true;
|
220
230
|
}
|
221
231
|
|
@@ -224,21 +234,25 @@ namespace Rays
|
|
224
234
|
{
|
225
235
|
}
|
226
236
|
|
227
|
-
Texture::Texture (int width, int height, const ColorSpace& cs)
|
237
|
+
Texture::Texture (int width, int height, const ColorSpace& cs, bool smooth)
|
228
238
|
{
|
229
|
-
if (width
|
239
|
+
if (width <= 0)
|
240
|
+
argument_error(__FILE__, __LINE__);
|
241
|
+
if (height <= 0)
|
242
|
+
argument_error(__FILE__, __LINE__);
|
243
|
+
if (!cs)
|
230
244
|
argument_error(__FILE__, __LINE__);
|
231
245
|
|
232
|
-
setup_texture(self.get(), width, height, cs);
|
246
|
+
setup_texture(self.get(), width, height, cs, smooth);
|
233
247
|
}
|
234
248
|
|
235
|
-
Texture::Texture (const Bitmap& bitmap)
|
249
|
+
Texture::Texture (const Bitmap& bitmap, bool smooth)
|
236
250
|
{
|
237
251
|
if (!bitmap)
|
238
252
|
argument_error(__FILE__, __LINE__);
|
239
253
|
|
240
254
|
setup_texture(
|
241
|
-
self.get(), bitmap.width(), bitmap.height(), bitmap.color_space(),
|
255
|
+
self.get(), bitmap.width(), bitmap.height(), bitmap.color_space(), smooth,
|
242
256
|
&bitmap);
|
243
257
|
}
|
244
258
|
|
@@ -249,8 +263,10 @@ namespace Rays
|
|
249
263
|
argument_error(__FILE__, __LINE__);
|
250
264
|
|
251
265
|
int w = bitmap.width(), h = bitmap.height();
|
252
|
-
if (w != width()
|
253
|
-
argument_error(__FILE__, __LINE__, "the
|
266
|
+
if (w != width())
|
267
|
+
argument_error(__FILE__, __LINE__, "the width of bitmap does not match");
|
268
|
+
if (h != height())
|
269
|
+
argument_error(__FILE__, __LINE__, "the height of bitmap does not match");
|
254
270
|
|
255
271
|
GLenum format, type;
|
256
272
|
ColorSpace_get_gl_format_and_type(&format, &type, bitmap.color_space());
|
@@ -297,6 +313,12 @@ namespace Rays
|
|
297
313
|
return self->color_space;
|
298
314
|
}
|
299
315
|
|
316
|
+
bool
|
317
|
+
Texture::smooth () const
|
318
|
+
{
|
319
|
+
return self->smooth;
|
320
|
+
}
|
321
|
+
|
300
322
|
GLuint
|
301
323
|
Texture::id () const
|
302
324
|
{
|
data/src/texture.h
CHANGED
@@ -24,9 +24,11 @@ namespace Rays
|
|
24
24
|
|
25
25
|
Texture ();
|
26
26
|
|
27
|
-
Texture (
|
27
|
+
Texture (
|
28
|
+
int width, int height, const ColorSpace& cs = RGBA,
|
29
|
+
bool smooth = false);
|
28
30
|
|
29
|
-
Texture (const Bitmap& bitmap);
|
31
|
+
Texture (const Bitmap& bitmap, bool smooth = false);
|
30
32
|
|
31
33
|
Texture& operator = (const Bitmap& bitmap);
|
32
34
|
|
@@ -42,6 +44,8 @@ namespace Rays
|
|
42
44
|
|
43
45
|
const ColorSpace& color_space () const;
|
44
46
|
|
47
|
+
bool smooth () const;
|
48
|
+
|
45
49
|
GLuint id () const;
|
46
50
|
|
47
51
|
void set_modified (bool modified = true);
|
data/src/win32/bitmap.cpp
CHANGED
@@ -60,7 +60,11 @@ namespace Rays
|
|
60
60
|
int w, int h, const ColorSpace& cs,
|
61
61
|
const void* pixels = NULL, bool clear_pixels = true, HDC hdc = NULL)
|
62
62
|
{
|
63
|
-
if (w <= 0
|
63
|
+
if (w <= 0)
|
64
|
+
argument_error(__FILE__, __LINE__);
|
65
|
+
if (h <= 0)
|
66
|
+
argument_error(__FILE__, __LINE__);
|
67
|
+
if (!cs)
|
64
68
|
argument_error(__FILE__, __LINE__);
|
65
69
|
|
66
70
|
Bitmap::Data* self = bitmap->self.get();
|
@@ -134,7 +138,13 @@ namespace Rays
|
|
134
138
|
Bitmap_draw_string (
|
135
139
|
Bitmap* bitmap, const RawFont& font, const char* str, coord x, coord y)
|
136
140
|
{
|
137
|
-
if (!bitmap
|
141
|
+
if (!bitmap)
|
142
|
+
argument_error(__FILE__, __LINE__);
|
143
|
+
if (!*bitmap)
|
144
|
+
argument_error(__FILE__, __LINE__);
|
145
|
+
if (!font)
|
146
|
+
argument_error(__FILE__, __LINE__);
|
147
|
+
if (!str)
|
138
148
|
argument_error(__FILE__, __LINE__);
|
139
149
|
|
140
150
|
if (*str == '\0') return;
|
data/src/win32/font.cpp
CHANGED
data/test/test_painter_shape.rb
CHANGED
@@ -8,11 +8,12 @@ class TestPainterShape < Test::Unit::TestCase
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def image(fill = 1, stroke = 0, pixel_density = 1, &block)
|
11
|
-
Rays::Image.new(100, 100, Rays::RGBA, pixel_density)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
Rays::Image.new(100, 100, Rays::RGBA, pixel_density: pixel_density)
|
12
|
+
.paint {|p|
|
13
|
+
p.fill fill > 0 ? color(fill) : nil
|
14
|
+
p.stroke stroke > 0 ? color(stroke) : nil
|
15
|
+
p.instance_eval(&block) if block
|
16
|
+
}
|
16
17
|
end
|
17
18
|
|
18
19
|
def test_line()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rays
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.3.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.3.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rucy
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.3.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.3.1
|
41
41
|
description: This library helps you to develop graphics application with OpenGL.
|
42
42
|
email: xordog@gmail.com
|
43
43
|
executables: []
|