rays 0.2 → 0.3
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/bitmap.cpp +100 -33
- data/.doc/ext/rays/bounds.cpp +2 -2
- data/.doc/ext/rays/camera.cpp +2 -2
- data/.doc/ext/rays/color.cpp +2 -2
- data/.doc/ext/rays/color_space.cpp +3 -3
- data/.doc/ext/rays/font.cpp +5 -4
- data/.doc/ext/rays/image.cpp +1 -1
- data/.doc/ext/rays/matrix.cpp +4 -4
- data/.doc/ext/rays/painter.cpp +1 -1
- data/.doc/ext/rays/point.cpp +2 -2
- data/.doc/ext/rays/polygon.cpp +3 -3
- data/.doc/ext/rays/polyline.cpp +3 -3
- data/.doc/ext/rays/rays.cpp +10 -10
- data/.doc/ext/rays/shader.cpp +2 -2
- data/.github/workflows/release-gem.yml +2 -2
- data/.github/workflows/tag.yml +1 -1
- data/.github/workflows/test.yml +10 -1
- data/ChangeLog.md +14 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +17 -2
- data/VERSION +1 -1
- data/ext/rays/bitmap.cpp +100 -33
- data/ext/rays/bounds.cpp +2 -2
- data/ext/rays/camera.cpp +2 -2
- data/ext/rays/color.cpp +2 -2
- data/ext/rays/color_space.cpp +3 -3
- data/ext/rays/defs.h +2 -0
- data/ext/rays/extconf.rb +4 -2
- data/ext/rays/font.cpp +5 -4
- data/ext/rays/image.cpp +1 -1
- data/ext/rays/matrix.cpp +4 -4
- data/ext/rays/painter.cpp +1 -1
- data/ext/rays/point.cpp +2 -2
- data/ext/rays/polygon.cpp +3 -3
- data/ext/rays/polyline.cpp +3 -3
- data/ext/rays/rays.cpp +10 -10
- data/ext/rays/shader.cpp +2 -2
- data/include/rays/color_space.h +4 -4
- data/include/rays/defs.h +7 -0
- data/include/rays/rays.h +8 -0
- data/include/rays/ruby/bitmap.h +2 -2
- data/include/rays/ruby/bounds.h +2 -2
- data/include/rays/ruby/camera.h +2 -2
- data/include/rays/ruby/color.h +2 -2
- data/include/rays/ruby/color_space.h +2 -2
- data/include/rays/ruby/exception.h +3 -3
- data/include/rays/ruby/font.h +2 -2
- data/include/rays/ruby/image.h +2 -2
- data/include/rays/ruby/matrix.h +2 -2
- data/include/rays/ruby/painter.h +2 -2
- data/include/rays/ruby/point.h +2 -2
- data/include/rays/ruby/polygon.h +2 -2
- data/include/rays/ruby/polyline.h +2 -2
- data/include/rays/ruby/rays.h +6 -6
- data/include/rays/ruby/shader.h +2 -2
- data/include/rays/ruby.h +3 -1
- data/include/rays.h +3 -0
- data/lib/rays/bitmap.rb +7 -0
- data/lib/rays/extension.rb +4 -0
- data/rays.gemspec +2 -2
- data/src/coord.h +2 -2
- data/src/font.cpp +1 -0
- data/src/image.cpp +0 -29
- data/src/ios/bitmap.mm +23 -30
- data/src/ios/font.mm +4 -1
- data/src/ios/opengl.mm +23 -10
- data/src/ios/rays.mm +5 -3
- data/src/matrix.h +1 -1
- data/src/opengl.h +7 -8
- data/src/osx/bitmap.mm +23 -30
- data/src/osx/font.mm +4 -1
- data/src/osx/opengl.mm +31 -19
- data/src/osx/rays.mm +5 -3
- data/src/painter.cpp +1 -0
- data/src/shader.cpp +3 -0
- data/src/texture.cpp +3 -25
- data/src/texture.h +0 -2
- data/src/win32/bitmap.cpp +167 -65
- data/src/win32/camera.cpp +119 -0
- data/src/win32/font.cpp +179 -40
- data/src/win32/gdi.cpp +2 -4
- data/src/win32/gdi.h +1 -1
- data/src/win32/opengl.cpp +127 -0
- data/src/win32/rays.cpp +16 -9
- data/test/helper.rb +2 -5
- data/test/test_bitmap.rb +3 -1
- data/test/test_image.rb +8 -14
- data/test/test_painter.rb +4 -4
- metadata +8 -8
- data/include/rays/opengl.h +0 -20
- data/src/win32/font.h +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9cb95796a8c672691ee51529359a2f4fbe5476dd7a3edf27d03ac79f40a045e3
|
4
|
+
data.tar.gz: 3f28f201cffc7d1a021846791ba10ab637ef33aa70618a7fce00085a73438ac4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bae41d0c790c9b9e766f5c28849ce91de22be9a27434b1713103cf1a4f93c11b4b2f78c2f4ce6fe7132c44c9baea78c09bb7b6f578bffc87c2b0e706c27398b2
|
7
|
+
data.tar.gz: 48b7ba9a9b3a8bacd70913b1caa6cf5aaea4eea4397eaea6408278999ccb848720e44f0f6b5c7b851cff7ee987407851a8dc463f8df6cfbefc58cf71e94d25cc
|
data/.doc/ext/rays/bitmap.cpp
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
#include "defs.h"
|
8
8
|
|
9
9
|
|
10
|
-
RUCY_DEFINE_VALUE_FROM_TO(Rays::Bitmap)
|
10
|
+
RUCY_DEFINE_VALUE_FROM_TO(RAYS_EXPORT, Rays::Bitmap)
|
11
11
|
|
12
12
|
#define THIS to<Rays::Bitmap*>(self)
|
13
13
|
|
@@ -317,23 +317,23 @@ set_pixels (Rays::Bitmap* bmp, Value pixels)
|
|
317
317
|
}
|
318
318
|
}
|
319
319
|
|
320
|
-
static inline
|
321
|
-
|
320
|
+
static inline uint32_t
|
321
|
+
to_rgb (uint8_t r, uint8_t g, uint8_t b)
|
322
322
|
{
|
323
|
-
return
|
324
|
-
((
|
325
|
-
((
|
326
|
-
((
|
323
|
+
return
|
324
|
+
((uint32_t) r) << 16 |
|
325
|
+
((uint32_t) g) << 8 |
|
326
|
+
((uint32_t) b);
|
327
327
|
}
|
328
328
|
|
329
|
-
static inline
|
330
|
-
|
329
|
+
static inline uint32_t
|
330
|
+
to_argb (uint8_t r, uint8_t g, uint8_t b, uint8_t a)
|
331
331
|
{
|
332
|
-
return
|
333
|
-
((
|
334
|
-
((
|
335
|
-
((
|
336
|
-
((
|
332
|
+
return
|
333
|
+
((uint32_t) a) << 24 |
|
334
|
+
((uint32_t) r) << 16 |
|
335
|
+
((uint32_t) g) << 8 |
|
336
|
+
((uint32_t) b);
|
337
337
|
}
|
338
338
|
|
339
339
|
static void
|
@@ -392,7 +392,7 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
392
392
|
{
|
393
393
|
const auto* p = bmp.at<uint8_t>(0, y);
|
394
394
|
for (int x = 0; x < w; ++x, p += 3)
|
395
|
-
pixels->push_back(
|
395
|
+
pixels->push_back(value(to_rgb(p[0], p[1], p[2])));
|
396
396
|
}
|
397
397
|
break;
|
398
398
|
|
@@ -402,7 +402,7 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
402
402
|
{
|
403
403
|
const auto* p = bmp.at<uint8_t>(0, y);
|
404
404
|
for (int x = 0; x < w; ++x, p += 4)
|
405
|
-
pixels->push_back(
|
405
|
+
pixels->push_back(value(to_argb(p[0], p[1], p[2], p[3])));
|
406
406
|
}
|
407
407
|
break;
|
408
408
|
|
@@ -412,7 +412,7 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
412
412
|
{
|
413
413
|
const auto* p = bmp.at<uint8_t>(0, y);
|
414
414
|
for (int x = 0; x < w; ++x, p += 4)
|
415
|
-
pixels->push_back(
|
415
|
+
pixels->push_back(value(to_argb(p[1], p[2], p[3], p[0])));
|
416
416
|
}
|
417
417
|
break;
|
418
418
|
|
@@ -421,7 +421,7 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
421
421
|
{
|
422
422
|
const auto* p = bmp.at<uint8_t>(0, y);
|
423
423
|
for (int x = 0; x < w; ++x, p += 3)
|
424
|
-
pixels->push_back(
|
424
|
+
pixels->push_back(value(to_rgb(p[2], p[1], p[0])));
|
425
425
|
}
|
426
426
|
break;
|
427
427
|
|
@@ -431,7 +431,7 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
431
431
|
{
|
432
432
|
const auto* p = bmp.at<uint8_t>(0, y);
|
433
433
|
for (int x = 0; x < w; ++x, p += 4)
|
434
|
-
pixels->push_back(
|
434
|
+
pixels->push_back(value(to_argb(p[2], p[1], p[0], p[3])));
|
435
435
|
}
|
436
436
|
break;
|
437
437
|
|
@@ -441,7 +441,7 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
441
441
|
{
|
442
442
|
const auto* p = bmp.at<uint8_t>(0, y);
|
443
443
|
for (int x = 0; x < w; ++x, p += 4)
|
444
|
-
pixels->push_back(
|
444
|
+
pixels->push_back(value(to_argb(p[3], p[2], p[1], p[0])));
|
445
445
|
}
|
446
446
|
break;
|
447
447
|
|
@@ -532,17 +532,85 @@ get_pixels (auto* pixels, const Rays::Bitmap& bmp)
|
|
532
532
|
}
|
533
533
|
}
|
534
534
|
|
535
|
-
static
|
536
|
-
|
535
|
+
static Value
|
536
|
+
get_32bit_pixels_string (const Rays::Bitmap& bmp)
|
537
537
|
{
|
538
|
-
|
538
|
+
// avoid SEGV caused by 32bit argb value on 'x64-mingw-ucrt' platform.
|
539
|
+
|
540
|
+
const auto& cs = bmp.color_space();
|
541
|
+
if (cs.bpp() != 32) return nil();
|
542
|
+
|
543
|
+
int w = bmp.width(), h = bmp.height();
|
539
544
|
|
540
|
-
|
545
|
+
std::vector<uint32_t> pixels;
|
546
|
+
pixels.reserve(w * h);
|
547
|
+
|
548
|
+
switch (cs.type())
|
541
549
|
{
|
542
|
-
|
543
|
-
|
550
|
+
case Rays::GRAY_32:
|
551
|
+
case Rays::ALPHA_32:
|
552
|
+
for (int y = 0; y < h; ++y)
|
553
|
+
{
|
554
|
+
const auto* p = bmp.at<uint32_t>(0, y);
|
555
|
+
for (int x = 0; x < w; ++x, ++p)
|
556
|
+
pixels.push_back(*p);
|
557
|
+
}
|
558
|
+
break;
|
559
|
+
|
560
|
+
case Rays::RGBA_8888:
|
561
|
+
case Rays::RGBX_8888:
|
562
|
+
for (int y = 0; y < h; ++y)
|
563
|
+
{
|
564
|
+
const auto* p = bmp.at<uint8_t>(0, y);
|
565
|
+
for (int x = 0; x < w; ++x, p += 4)
|
566
|
+
pixels.push_back(to_argb(p[0], p[1], p[2], p[3]));
|
567
|
+
}
|
568
|
+
break;
|
569
|
+
|
570
|
+
case Rays::ARGB_8888:
|
571
|
+
case Rays::XRGB_8888:
|
572
|
+
for (int y = 0; y < h; ++y)
|
573
|
+
{
|
574
|
+
const auto* p = bmp.at<uint8_t>(0, y);
|
575
|
+
for (int x = 0; x < w; ++x, p += 4)
|
576
|
+
pixels.push_back(to_argb(p[1], p[2], p[3], p[0]));
|
577
|
+
}
|
578
|
+
break;
|
579
|
+
|
580
|
+
case Rays::BGRA_8888:
|
581
|
+
case Rays::BGRX_8888:
|
582
|
+
for (int y = 0; y < h; ++y)
|
583
|
+
{
|
584
|
+
const auto* p = bmp.at<uint8_t>(0, y);
|
585
|
+
for (int x = 0; x < w; ++x, p += 4)
|
586
|
+
pixels.push_back(to_argb(p[2], p[1], p[0], p[3]));
|
587
|
+
}
|
588
|
+
break;
|
589
|
+
|
590
|
+
case Rays::ABGR_8888:
|
591
|
+
case Rays::XBGR_8888:
|
592
|
+
for (int y = 0; y < h; ++y)
|
593
|
+
{
|
594
|
+
const auto* p = bmp.at<uint8_t>(0, y);
|
595
|
+
for (int x = 0; x < w; ++x, p += 4)
|
596
|
+
pixels.push_back(to_argb(p[3], p[2], p[1], p[0]));
|
597
|
+
}
|
598
|
+
break;
|
599
|
+
|
600
|
+
default:
|
601
|
+
return nil();
|
544
602
|
}
|
545
603
|
|
604
|
+
return value(
|
605
|
+
(const char*) &pixels[0], pixels.size() * sizeof(uint32_t),
|
606
|
+
rb_ascii8bit_encoding());
|
607
|
+
}
|
608
|
+
|
609
|
+
static
|
610
|
+
VALUE set_pixels(VALUE self, VALUE pixels)
|
611
|
+
{
|
612
|
+
CHECK;
|
613
|
+
|
546
614
|
set_pixels(THIS, pixels);
|
547
615
|
return pixels;
|
548
616
|
}
|
@@ -552,15 +620,14 @@ VALUE get_pixels(VALUE self)
|
|
552
620
|
{
|
553
621
|
CHECK;
|
554
622
|
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
}
|
623
|
+
#ifdef RAYS_32BIT_PIXELS_STRING
|
624
|
+
Value str = get_32bit_pixels_string(*THIS);
|
625
|
+
if (str) return str;
|
626
|
+
#endif
|
560
627
|
|
561
628
|
std::vector<VALUE> pixels;
|
562
629
|
get_pixels(&pixels, *THIS);
|
563
|
-
return
|
630
|
+
return array((const Value*) &pixels[0], pixels.size());
|
564
631
|
}
|
565
632
|
|
566
633
|
static
|
@@ -603,7 +670,7 @@ Init_rays_bitmap ()
|
|
603
670
|
rb_define_method(cBitmap, "height", RUBY_METHOD_FUNC(height), 0);
|
604
671
|
rb_define_method(cBitmap, "color_space", RUBY_METHOD_FUNC(color_space), 0);
|
605
672
|
rb_define_method(cBitmap, "pixels=", RUBY_METHOD_FUNC(set_pixels), 1);
|
606
|
-
|
673
|
+
cBitmap.define_method("pixels!", get_pixels);
|
607
674
|
cBitmap.define_method("[]=", set_at);
|
608
675
|
cBitmap.define_method("[]", get_at);
|
609
676
|
}
|
data/.doc/ext/rays/bounds.cpp
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
#include "defs.h"
|
7
7
|
|
8
8
|
|
9
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Bounds)
|
9
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Bounds)
|
10
10
|
|
11
11
|
#define THIS to<Rays::Bounds*>(self)
|
12
12
|
|
@@ -582,7 +582,7 @@ namespace Rucy
|
|
582
582
|
{
|
583
583
|
|
584
584
|
|
585
|
-
template <> Rays::Bounds
|
585
|
+
template <> RAYS_EXPORT Rays::Bounds
|
586
586
|
value_to<Rays::Bounds> (int argc, const Value* argv, bool convert)
|
587
587
|
{
|
588
588
|
if (argc == 1 && argv->is_array())
|
data/.doc/ext/rays/camera.cpp
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#include "defs.h"
|
6
6
|
|
7
7
|
|
8
|
-
RUCY_DEFINE_VALUE_FROM_TO(Rays::Camera)
|
8
|
+
RUCY_DEFINE_VALUE_FROM_TO(RAYS_EXPORT, Rays::Camera)
|
9
9
|
|
10
10
|
#define THIS to<Rays::Camera*>(self)
|
11
11
|
|
@@ -127,7 +127,7 @@ VALUE device_names(VALUE self)
|
|
127
127
|
std::vector<Value> v;
|
128
128
|
for (const auto& name : names)
|
129
129
|
v.emplace_back(name.c_str());
|
130
|
-
return
|
130
|
+
return array(&v[0], v.size());
|
131
131
|
}
|
132
132
|
|
133
133
|
|
data/.doc/ext/rays/color.cpp
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
#include "defs.h"
|
7
7
|
|
8
8
|
|
9
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Color)
|
9
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Color)
|
10
10
|
|
11
11
|
#define THIS to<Rays::Color*>(self)
|
12
12
|
|
@@ -330,7 +330,7 @@ namespace Rucy
|
|
330
330
|
return find_color(str_.c_str());
|
331
331
|
}
|
332
332
|
|
333
|
-
template <> Rays::Color
|
333
|
+
template <> RAYS_EXPORT Rays::Color
|
334
334
|
value_to<Rays::Color> (int argc, const Value*argv, bool convert)
|
335
335
|
{
|
336
336
|
if (argc == 1 && argv->is_array())
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#include "defs.h"
|
6
6
|
|
7
7
|
|
8
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::ColorSpace)
|
8
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::ColorSpace)
|
9
9
|
|
10
10
|
#define THIS to<Rays::ColorSpace*>(self)
|
11
11
|
|
@@ -206,7 +206,7 @@ namespace Rucy
|
|
206
206
|
{
|
207
207
|
|
208
208
|
|
209
|
-
template <> Rays::ColorSpace
|
209
|
+
template <> RAYS_EXPORT Rays::ColorSpace
|
210
210
|
value_to<Rays::ColorSpace> (int argc, const Value* argv, bool convert)
|
211
211
|
{
|
212
212
|
if (argc == 1 && argv->is_array())
|
@@ -234,7 +234,7 @@ namespace Rucy
|
|
234
234
|
}
|
235
235
|
|
236
236
|
|
237
|
-
template <> Rays::ColorSpaceType
|
237
|
+
template <> RAYS_EXPORT Rays::ColorSpaceType
|
238
238
|
value_to<Rays::ColorSpaceType> (Value value, bool convert)
|
239
239
|
{
|
240
240
|
if (convert)
|
data/.doc/ext/rays/font.cpp
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#include "defs.h"
|
6
6
|
|
7
7
|
|
8
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Font)
|
8
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Font)
|
9
9
|
|
10
10
|
#define THIS to<Rays::Font*>(self)
|
11
11
|
|
@@ -109,7 +109,7 @@ VALUE families(VALUE self)
|
|
109
109
|
std::vector<Value> members;
|
110
110
|
for (const auto& member : family.second)
|
111
111
|
members.emplace_back(member.c_str());
|
112
|
-
hash.set(family.first.c_str(),
|
112
|
+
hash.set(family.first.c_str(), array(&members[0], members.size()));
|
113
113
|
}
|
114
114
|
return hash;
|
115
115
|
}
|
@@ -156,7 +156,7 @@ namespace Rucy
|
|
156
156
|
{
|
157
157
|
|
158
158
|
|
159
|
-
template <> Rays::Font
|
159
|
+
template <> RAYS_EXPORT Rays::Font
|
160
160
|
value_to<Rays::Font> (int argc, const Value* argv, bool convert)
|
161
161
|
{
|
162
162
|
if (argc == 1 && argv->is_array())
|
@@ -172,7 +172,8 @@ namespace Rucy
|
|
172
172
|
if (argc == 0)
|
173
173
|
return Rays::get_default_font();
|
174
174
|
|
175
|
-
coord size =
|
175
|
+
coord size =
|
176
|
+
argc >= 2 ? to<coord>(argv[1]) : (coord) Rays::Font::DEFAULT_SIZE;
|
176
177
|
if (argv->is_nil())
|
177
178
|
return Rays::Font(NULL, size);
|
178
179
|
else if (argv->is_s() || argv->is_sym())
|
data/.doc/ext/rays/image.cpp
CHANGED
data/.doc/ext/rays/matrix.cpp
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
#include "defs.h"
|
7
7
|
|
8
8
|
|
9
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Matrix)
|
9
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Matrix)
|
10
10
|
|
11
11
|
#define THIS to<Rays::Matrix*>(self)
|
12
12
|
|
@@ -214,10 +214,10 @@ VALUE s_ortho(VALUE self)
|
|
214
214
|
}
|
215
215
|
|
216
216
|
static
|
217
|
-
VALUE s_perspective(VALUE self, VALUE fov_y, VALUE aspect_ratio, VALUE
|
217
|
+
VALUE s_perspective(VALUE self, VALUE fov_y, VALUE aspect_ratio, VALUE near_, VALUE far_)
|
218
218
|
{
|
219
219
|
return value(Rays::perspective(
|
220
|
-
to<float>(fov_y), to<float>(aspect_ratio), to<coord>(
|
220
|
+
to<float>(fov_y), to<float>(aspect_ratio), to<coord>(near_), to<coord>(far_)));
|
221
221
|
}
|
222
222
|
|
223
223
|
static
|
@@ -281,7 +281,7 @@ namespace Rucy
|
|
281
281
|
{
|
282
282
|
|
283
283
|
|
284
|
-
template <> Rays::Matrix
|
284
|
+
template <> RAYS_EXPORT Rays::Matrix
|
285
285
|
value_to<Rays::Matrix> (int argc, const Value* argv, bool convert)
|
286
286
|
{
|
287
287
|
if (argc == 1 && argv->is_array())
|
data/.doc/ext/rays/painter.cpp
CHANGED
data/.doc/ext/rays/point.cpp
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#include "defs.h"
|
6
6
|
|
7
7
|
|
8
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Point)
|
8
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Point)
|
9
9
|
|
10
10
|
#define THIS to<Rays::Point*>(self)
|
11
11
|
|
@@ -275,7 +275,7 @@ namespace Rucy
|
|
275
275
|
{
|
276
276
|
|
277
277
|
|
278
|
-
template <> Rays::Point
|
278
|
+
template <> RAYS_EXPORT Rays::Point
|
279
279
|
value_to<Rays::Point> (int argc, const Value* argv, bool convert)
|
280
280
|
{
|
281
281
|
if (argc == 1 && argv->is_array())
|
data/.doc/ext/rays/polygon.cpp
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
#include "defs.h"
|
9
9
|
|
10
10
|
|
11
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Polygon)
|
11
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Polygon)
|
12
12
|
|
13
13
|
#define THIS to<Rays::Polygon*>(self)
|
14
14
|
|
@@ -46,7 +46,7 @@ VALUE expand(VALUE self)
|
|
46
46
|
coord width = to<coord> (argv[0]);
|
47
47
|
Rays::CapType cap = argc >= 2 ? to<Rays::CapType> (argv[1]) : Rays::CAP_DEFAULT;
|
48
48
|
Rays::JoinType join = argc >= 3 ? to<Rays::JoinType>(argv[2]) : Rays::JOIN_DEFAULT;
|
49
|
-
coord ml = argc >= 4 ? to<coord> (argv[3]) : Rays::JOIN_DEFAULT_MITER_LIMIT;
|
49
|
+
coord ml = argc >= 4 ? to<coord> (argv[3]) : (coord) Rays::JOIN_DEFAULT_MITER_LIMIT;
|
50
50
|
|
51
51
|
Rays::Polygon polygon;
|
52
52
|
THIS->expand(&polygon, width, cap, join, ml);
|
@@ -375,7 +375,7 @@ namespace Rucy
|
|
375
375
|
{
|
376
376
|
|
377
377
|
|
378
|
-
template <> Rays::Polygon
|
378
|
+
template <> RAYS_EXPORT Rays::Polygon
|
379
379
|
value_to<Rays::Polygon> (int argc, const Value* argv, bool convert)
|
380
380
|
{
|
381
381
|
if (convert)
|
data/.doc/ext/rays/polyline.cpp
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#include "defs.h"
|
11
11
|
|
12
12
|
|
13
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Polyline)
|
13
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Polyline)
|
14
14
|
|
15
15
|
#define THIS to<Rays::Polyline*>(self)
|
16
16
|
|
@@ -44,7 +44,7 @@ VALUE expand(VALUE self)
|
|
44
44
|
coord width = to<coord> (argv[0]);
|
45
45
|
Rays::CapType cap = argc >= 2 ? to<Rays::CapType> (argv[1]) : Rays::CAP_DEFAULT;
|
46
46
|
Rays::JoinType join = argc >= 3 ? to<Rays::JoinType>(argv[2]) : Rays::JOIN_DEFAULT;
|
47
|
-
coord ml = argc >= 4 ? to<coord> (argv[3]) : Rays::JOIN_DEFAULT_MITER_LIMIT;
|
47
|
+
coord ml = argc >= 4 ? to<coord> (argv[3]) : (coord) Rays::JOIN_DEFAULT_MITER_LIMIT;
|
48
48
|
|
49
49
|
Rays::Polygon polygon;
|
50
50
|
THIS->expand(&polygon, width, cap, join, ml);
|
@@ -206,7 +206,7 @@ namespace Rucy
|
|
206
206
|
{
|
207
207
|
|
208
208
|
|
209
|
-
template <> Rays::Polyline
|
209
|
+
template <> RAYS_EXPORT Rays::Polyline
|
210
210
|
value_to<Rays::Polyline> (int argc, const Value* argv, bool convert)
|
211
211
|
{
|
212
212
|
assert(argc == 0 || (argc > 0 && argv));
|
data/.doc/ext/rays/rays.cpp
CHANGED
@@ -6,11 +6,11 @@
|
|
6
6
|
#include "defs.h"
|
7
7
|
|
8
8
|
|
9
|
-
RUCY_DEFINE_CONVERT_TO(Rays::CapType)
|
10
|
-
RUCY_DEFINE_CONVERT_TO(Rays::JoinType)
|
11
|
-
RUCY_DEFINE_CONVERT_TO(Rays::BlendMode)
|
12
|
-
RUCY_DEFINE_CONVERT_TO(Rays::TexCoordMode)
|
13
|
-
RUCY_DEFINE_CONVERT_TO(Rays::TexCoordWrap)
|
9
|
+
RUCY_DEFINE_CONVERT_TO(RAYS_EXPORT, Rays::CapType)
|
10
|
+
RUCY_DEFINE_CONVERT_TO(RAYS_EXPORT, Rays::JoinType)
|
11
|
+
RUCY_DEFINE_CONVERT_TO(RAYS_EXPORT, Rays::BlendMode)
|
12
|
+
RUCY_DEFINE_CONVERT_TO(RAYS_EXPORT, Rays::TexCoordMode)
|
13
|
+
RUCY_DEFINE_CONVERT_TO(RAYS_EXPORT, Rays::TexCoordWrap)
|
14
14
|
|
15
15
|
|
16
16
|
template <typename T>
|
@@ -102,7 +102,7 @@ namespace Rucy
|
|
102
102
|
{
|
103
103
|
|
104
104
|
|
105
|
-
template <> Rays::CapType
|
105
|
+
template <> RAYS_EXPORT Rays::CapType
|
106
106
|
value_to<Rays::CapType> (int argc, const Value* argv, bool convert)
|
107
107
|
{
|
108
108
|
assert(argc > 0 && argv);
|
@@ -133,7 +133,7 @@ namespace Rucy
|
|
133
133
|
}
|
134
134
|
|
135
135
|
|
136
|
-
template <> Rays::JoinType
|
136
|
+
template <> RAYS_EXPORT Rays::JoinType
|
137
137
|
value_to<Rays::JoinType> (int argc, const Value* argv, bool convert)
|
138
138
|
{
|
139
139
|
assert(argc > 0 && argv);
|
@@ -164,7 +164,7 @@ namespace Rucy
|
|
164
164
|
}
|
165
165
|
|
166
166
|
|
167
|
-
template <> Rays::BlendMode
|
167
|
+
template <> RAYS_EXPORT Rays::BlendMode
|
168
168
|
value_to<Rays::BlendMode> (int argc, const Value* argv, bool convert)
|
169
169
|
{
|
170
170
|
assert(argc > 0 && argv);
|
@@ -195,7 +195,7 @@ namespace Rucy
|
|
195
195
|
}
|
196
196
|
|
197
197
|
|
198
|
-
template <> Rays::TexCoordMode
|
198
|
+
template <> RAYS_EXPORT Rays::TexCoordMode
|
199
199
|
value_to<Rays::TexCoordMode> (int argc, const Value* argv, bool convert)
|
200
200
|
{
|
201
201
|
assert(argc > 0 && argv);
|
@@ -226,7 +226,7 @@ namespace Rucy
|
|
226
226
|
}
|
227
227
|
|
228
228
|
|
229
|
-
template <> Rays::TexCoordWrap
|
229
|
+
template <> RAYS_EXPORT Rays::TexCoordWrap
|
230
230
|
value_to<Rays::TexCoordWrap> (int argc, const Value* argv, bool convert)
|
231
231
|
{
|
232
232
|
assert(argc > 0 && argv);
|
data/.doc/ext/rays/shader.cpp
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
#include "defs.h"
|
7
7
|
|
8
8
|
|
9
|
-
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(Rays::Shader)
|
9
|
+
RUCY_DEFINE_VALUE_OR_ARRAY_FROM_TO(RAYS_EXPORT, Rays::Shader)
|
10
10
|
|
11
11
|
#define THIS to<Rays::Shader*>(self)
|
12
12
|
|
@@ -189,7 +189,7 @@ namespace Rucy
|
|
189
189
|
{
|
190
190
|
|
191
191
|
|
192
|
-
template <> Rays::Shader
|
192
|
+
template <> RAYS_EXPORT Rays::Shader
|
193
193
|
value_to<Rays::Shader> (int argc, const Value* argv, bool convert)
|
194
194
|
{
|
195
195
|
if (argc == 1 && argv->is_array())
|
@@ -15,7 +15,7 @@ jobs:
|
|
15
15
|
ruby-version: 3.2
|
16
16
|
|
17
17
|
- name: checkout
|
18
|
-
uses: actions/checkout@
|
18
|
+
uses: actions/checkout@v4
|
19
19
|
|
20
20
|
- name: setup gems
|
21
21
|
run: bundle install
|
@@ -24,7 +24,7 @@ jobs:
|
|
24
24
|
run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
|
25
25
|
|
26
26
|
- name: test
|
27
|
-
run: bundle exec rake quiet test
|
27
|
+
run: bundle exec rake quiet packages test
|
28
28
|
|
29
29
|
- name: create gem
|
30
30
|
id: gem
|
data/.github/workflows/tag.yml
CHANGED
data/.github/workflows/test.yml
CHANGED
@@ -16,7 +16,7 @@ jobs:
|
|
16
16
|
ruby-version: 3.2
|
17
17
|
|
18
18
|
- name: checkout
|
19
|
-
uses: actions/checkout@
|
19
|
+
uses: actions/checkout@v4
|
20
20
|
|
21
21
|
- name: setup gems
|
22
22
|
run: bundle install
|
@@ -24,5 +24,14 @@ jobs:
|
|
24
24
|
- name: setup dependencies
|
25
25
|
run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
|
26
26
|
|
27
|
+
- name: packages
|
28
|
+
run: bundle exec rake packages
|
29
|
+
|
30
|
+
- name: lib
|
31
|
+
run: bundle exec rake lib
|
32
|
+
|
33
|
+
- name: ext
|
34
|
+
run: bundle exec rake ext
|
35
|
+
|
27
36
|
- name: test
|
28
37
|
run: bundle exec rake test
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
# rays ChangeLog
|
2
2
|
|
3
3
|
|
4
|
+
## [v0.3] - 2024-07-06
|
5
|
+
|
6
|
+
- Support Windows
|
7
|
+
|
8
|
+
|
9
|
+
## [v0.2.1] - 2024-07-05
|
10
|
+
|
11
|
+
- Add OpenGL_init() and OpenGL_fin()
|
12
|
+
- Add activate_offscreen_context()
|
13
|
+
- Do not redefine fin!() methods, they are no longer needed
|
14
|
+
- Update workflows for test
|
15
|
+
- Update to actions/checkout@v4
|
16
|
+
|
17
|
+
|
4
18
|
## [v0.2] - 2024-03-14
|
5
19
|
|
6
20
|
- Change the super class for exception class from RuntimeError to StandardError
|
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -15,6 +15,8 @@ require 'rays/extension'
|
|
15
15
|
EXTENSIONS = [Xot, Rucy, Rays]
|
16
16
|
TESTS_ALONE = ['test/test_rays_init.rb']
|
17
17
|
|
18
|
+
install_packages win32: %w[MINGW_PACKAGE_PREFIX-glew]
|
19
|
+
|
18
20
|
use_external_library 'https://github.com/g-truc/glm',
|
19
21
|
tag: '0.9.9.8',
|
20
22
|
srcdirs: 'NOSRC'
|
@@ -32,12 +34,25 @@ use_external_library 'https://github.com/mapbox/earcut.hpp',
|
|
32
34
|
|
33
35
|
use_external_library 'https://github.com/andrewwillmott/splines-lib',
|
34
36
|
commit: '11e7240d57b0d22871aec3308186a5fcf915ba77',
|
35
|
-
excludes: 'Test\.cpp'
|
37
|
+
excludes: 'Test\.cpp',
|
38
|
+
&proc {
|
39
|
+
filter_file('Splines.cpp') do |cpp|
|
40
|
+
<<~EOS + cpp
|
41
|
+
#include <cstdint>
|
42
|
+
EOS
|
43
|
+
end
|
44
|
+
}
|
45
|
+
|
46
|
+
if win32?
|
47
|
+
use_external_library 'https://github.com/nothings/stb',
|
48
|
+
commit: 'ae721c50eaf761660b4f90cc590453cdb0c2acd0',
|
49
|
+
srcdirs: 'NOSRC'
|
50
|
+
end
|
36
51
|
|
37
52
|
default_tasks :ext
|
38
53
|
use_bundler
|
39
54
|
build_native_library
|
40
55
|
build_ruby_extension
|
41
|
-
test_ruby_extension
|
56
|
+
test_ruby_extension unless github_actions? && win32?
|
42
57
|
generate_documents
|
43
58
|
build_ruby_gem
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3
|