devil 0.1.8.8-x86-mswin32-60 → 0.1.9.0-x86-mswin32-60

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.
data/README CHANGED
@@ -1,4 +1,4 @@
1
- Ruby Devil version 0.1.8.8
1
+ Ruby Devil version 0.1.9.0
2
2
  ========================
3
3
 
4
4
  * Original author: Jaroslaw Tworek <dev.jrx@gmail.com>
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ require 'rake/gempackagetask'
8
8
  require 'rake/testtask'
9
9
  require 'rake/rdoctask'
10
10
 
11
- DEVIL_VERSION = "0.1.8.8"
11
+ DEVIL_VERSION = "0.1.9.0"
12
12
 
13
13
  dlext = Config::CONFIG['DLEXT']
14
14
 
data/ext/devil/extconf.rb CHANGED
@@ -1,23 +1,27 @@
1
- require 'mkmf'
2
-
3
- if RUBY_PLATFORM =~ /mingw/
4
- $CFLAGS += ' -I/home/john/.rake-compiler/ruby/ruby-1.8.6-p287/include/'
5
- $LDFLAGS += ' -L/home/john/.rake-compiler/ruby/ruby-1.8.6-p287/lib/'
6
- elsif RUBY_PLATFORM =~ /darwin/
7
-
8
- # this only works if you install devil via macports
9
- $CFLAGS += ' -I/opt/local/include/'
10
- $LDFLAGS += ' -L/opt/local/lib/'
11
- end
12
-
13
- if RUBY_PLATFORM =~ /(win32|mingw)/
14
- exit unless have_library("DevIL");
15
- else
16
- exit unless have_library("IL");
17
- end
18
-
19
- exit unless have_library("ILU");
20
-
21
- #have_library("ILUT", "ilutInit");
22
-
23
- create_makefile('devil')
1
+ require 'mkmf'
2
+
3
+ if RUBY_PLATFORM =~ /mingw|win32/
4
+ $CFLAGS += ' -I/home/john/.rake-compiler/ruby/ruby-1.8.6-p287/include/'
5
+ $LDFLAGS += ' -L/home/john/.rake-compiler/ruby/ruby-1.8.6-p287/lib/'
6
+ exit unless have_library("glut32")
7
+ exit unless have_library("DevIL")
8
+
9
+ elsif RUBY_PLATFORM =~ /darwin/
10
+
11
+ # this only works if you install devil via macports
12
+ $CFLAGS += ' -I/opt/local/include/ -I/System/Library/Frameworks/GLUT.framework/Headers'
13
+ $LDFLAGS += ' -L/opt/local/lib/ -framework GLUT'
14
+ exit unless have_library("IL")
15
+
16
+ elsif RUBY_PLATFORM =~ /linux/
17
+ exit unless have_library("IL")
18
+
19
+ exit unless have_library("glut")
20
+ exit unless have_library("GL")
21
+ end
22
+
23
+ # all platforms
24
+ exit unless have_library("ILU")
25
+ exit unless have_library("ILUT")
26
+
27
+ create_makefile('devil')
@@ -5,7 +5,5 @@ void
5
5
  Init_devil() {
6
6
  InitializeIL();
7
7
  InitializeILU();
8
-
9
- /* turning off ILUT layer */
10
- /* InitializeILUT(); */
8
+ InitializeILUT();
11
9
  }
@@ -0,0 +1,98 @@
1
+ #include <ruby.h>
2
+ #include <IL/ilut.h>
3
+ #include "ruby_devil_ext.h"
4
+
5
+ static VALUE mILUT;
6
+
7
+ static VALUE ilut_Renderer(VALUE obj, VALUE ilut_enum) {
8
+ ILenum renderer = NUM2INT(ilut_enum);
9
+ ilutRenderer(renderer);
10
+ return Qnil;
11
+ }
12
+
13
+ static VALUE ilut_Enable(VALUE obj, VALUE rb_Mode) {
14
+ ILenum Mode = NUM2INT(rb_Mode);
15
+ ILboolean flag = ilutEnable(Mode);
16
+ return flag ? Qtrue : Qfalse;
17
+ }
18
+
19
+ static VALUE ilut_GLTexImage(VALUE obj, VALUE rb_Level) {
20
+ GLuint Level = NUM2INT(rb_Level);
21
+ ILboolean flag = ilutGLTexImage(Level);
22
+ return flag ? Qtrue : Qfalse;
23
+ }
24
+
25
+ static VALUE ilut_GLBindTexImage(VALUE obj) {
26
+ GLuint ret = ilutGLBindTexImage();
27
+ return INT2FIX(ret);
28
+ }
29
+
30
+ static VALUE ilut_GLBuildMipmaps(VALUE obj) {
31
+ ILboolean flag = ilutGLBuildMipmaps();
32
+ return flag ? Qtrue : Qfalse;
33
+ }
34
+
35
+ static VALUE ilut_GLBindMipmaps(VALUE obj) {
36
+ ILuint ret = ilutGLBindMipmaps();
37
+ return INT2FIX(ret);
38
+ }
39
+
40
+ static VALUE ilut_GLLoadImage(VALUE obj, VALUE rb_FileName) {
41
+ const ILstring FileName = StringValuePtr(rb_FileName);
42
+ ILuint ret = ilutGLLoadImage(FileName);
43
+ return INT2FIX(ret);
44
+ }
45
+
46
+ static VALUE ilut_GLScreen(VALUE obj) {
47
+ ILboolean flag = ilutGLScreen();
48
+ return flag ? Qtrue : Qfalse;
49
+ }
50
+
51
+ static VALUE ilut_GLScreenie(VALUE obj) {
52
+ ILboolean flag = ilutGLScreenie();
53
+ return flag ? Qtrue : Qfalse;
54
+ }
55
+
56
+
57
+
58
+ void
59
+ InitializeILUT() {
60
+ mILUT = rb_define_module("ILUT");
61
+ //////////////////////////////////
62
+ //METHODS
63
+ //////////////////////////////////
64
+ rb_define_module_function(mILUT, "Renderer", ilut_Renderer, 1);
65
+ rb_define_module_function(mILUT, "Enable", ilut_Enable , 1);
66
+ rb_define_module_function(mILUT, "GLTexImage", ilut_GLTexImage, 1);
67
+ rb_define_module_function(mILUT, "GLBindTexImage", ilut_GLBindTexImage, 0);
68
+ rb_define_module_function(mILUT, "GLBuildMipmaps", ilut_GLBuildMipmaps , 0);
69
+ rb_define_module_function(mILUT, "GLBindMipmaps", ilut_GLBindMipmaps , 0);
70
+ rb_define_module_function(mILUT, "GLLoadImage", ilut_GLLoadImage, 1);
71
+ rb_define_module_function(mILUT, "GLScreen", ilut_GLScreen , 1);
72
+ rb_define_module_function(mILUT, "GLScreenie", ilut_GLScreenie , 1);
73
+
74
+ //////////////////////////////////
75
+ //CONSTANTS
76
+ //////////////////////////////////
77
+ rb_define_const(mILUT, "OPENGL", INT2NUM(ILUT_OPENGL));
78
+ rb_define_const(mILUT, "ALLEGRO", INT2NUM(ILUT_ALLEGRO));
79
+ rb_define_const(mILUT, "WIN32", INT2NUM(ILUT_WIN32));
80
+ rb_define_const(mILUT, "DIRECT3D8", INT2NUM(ILUT_DIRECT3D8));
81
+ rb_define_const(mILUT, "DIRECT3D9", INT2NUM(ILUT_DIRECT3D9));
82
+
83
+ rb_define_const(mILUT, "PALETTE_MODE", INT2NUM(ILUT_PALETTE_MODE));
84
+ rb_define_const(mILUT, "OPENGL_CONV", INT2NUM(ILUT_OPENGL_CONV));
85
+ rb_define_const(mILUT, "D3D_MIPLEVELS", INT2NUM(ILUT_D3D_MIPLEVELS));
86
+ rb_define_const(mILUT, "MAXTEX_WIDTH", INT2NUM(ILUT_MAXTEX_WIDTH));
87
+ rb_define_const(mILUT, "MAXTEX_HEIGHT", INT2NUM(ILUT_MAXTEX_HEIGHT));
88
+ rb_define_const(mILUT, "MAXTEX_DEPTH", INT2NUM(ILUT_MAXTEX_DEPTH));
89
+ rb_define_const(mILUT, "GL_USE_S3TC", INT2NUM(ILUT_GL_USE_S3TC));
90
+ rb_define_const(mILUT, "D3D_USE_DXTC", INT2NUM(ILUT_D3D_USE_DXTC));
91
+ rb_define_const(mILUT, "GL_GEN_S3TC", INT2NUM(ILUT_GL_GEN_S3TC));
92
+ rb_define_const(mILUT, "D3D_GEN_DXTC", INT2NUM(ILUT_D3D_GEN_DXTC));
93
+ rb_define_const(mILUT, "S3TC_FORMAT", INT2NUM(ILUT_S3TC_FORMAT));
94
+ rb_define_const(mILUT, "DXTC_FORMAT", INT2NUM(ILUT_DXTC_FORMAT));
95
+ rb_define_const(mILUT, "D3D_POOL", INT2NUM(ILUT_D3D_POOL));
96
+ rb_define_const(mILUT, "D3D_ALPHA_KEY_COLOR", INT2NUM(ILUT_D3D_ALPHA_KEY_COLOR));
97
+ rb_define_const(mILUT, "D3D_ALPHA_KEY_COLOUR", INT2NUM(ILUT_D3D_ALPHA_KEY_COLOUR));
98
+ }
data/lib/1.8/devil.so CHANGED
Binary file
data/lib/1.9/devil.so CHANGED
Binary file
data/lib/devil.rb CHANGED
@@ -19,7 +19,7 @@ module Devil
19
19
  include IL
20
20
  include ILU
21
21
 
22
- VERSION = '0.1.8.8'
22
+ VERSION = '0.1.9.0'
23
23
 
24
24
  class << self
25
25
 
@@ -35,23 +35,9 @@ module Devil
35
35
  # apply a color profile if one is provided
36
36
  IL.ApplyProfile(in_profile, out_profile) if out_profile
37
37
 
38
- # run the load image hook (if it exists)
39
38
  check_and_run_hook(:load_image_hook)
40
-
41
39
  error_check
42
-
43
- img = Image.new(name, file)
44
- if block
45
- begin
46
- block.call(img)
47
- ensure
48
- # don't bother freeing it if it's already free
49
- img.free if img.name
50
- end
51
- else
52
- # ObjectSpace.define_finalizer(img, proc { IL.DeleteImages([img.name]) if img.name })
53
- img
54
- end
40
+ wrap_and_yield(name, file, block)
55
41
  end
56
42
 
57
43
  alias_method :with_image, :load_image
@@ -78,22 +64,9 @@ module Devil
78
64
  IL.ClearImage
79
65
  IL.ClearColour(*Devil.get_options[:clear_color]) if clear_color
80
66
 
81
- # run the create image hook (if it exists)
82
67
  check_and_run_hook(:create_image_hook)
83
-
84
68
  error_check
85
-
86
- img = Image.new(name, nil)
87
- if block
88
- begin
89
- block.call(img)
90
- ensure
91
- img.free if img.name
92
- end
93
- else
94
- # ObjectSpace.define_finalizer(img, proc { IL.DeleteImages([img.name]) if img.name })
95
- img
96
- end
69
+ wrap_and_yield(name, nil, block)
97
70
  end
98
71
 
99
72
  alias_method :create_blank_image, :create_image
@@ -219,7 +192,6 @@ module Devil
219
192
  name = IL.GenImages(1).first
220
193
  IL.BindImage(name)
221
194
 
222
- # run the prepare image hook (if it exists)
223
195
  check_and_run_hook(:prepare_image_hook)
224
196
 
225
197
  name
@@ -232,6 +204,19 @@ module Devil
232
204
  IL.ConvertImage(IL::RGBA, IL::UNSIGNED_BYTE)
233
205
  end
234
206
 
207
+ def wrap_and_yield(name, file, block)
208
+ img = Image.new(name, file)
209
+ if block
210
+ begin
211
+ block.call(img)
212
+ ensure
213
+ img.free if img.name
214
+ end
215
+ else
216
+ img
217
+ end
218
+ end
219
+
235
220
  def check_and_run_hook(hook_name)
236
221
  Devil.get_options[hook_name].call if Devil.get_options[hook_name]
237
222
  end
data/test/test_ilut.rb ADDED
@@ -0,0 +1,95 @@
1
+ # this test is a hold over from the original ruby-devil bindings (by Jaroslaw Tworek)
2
+
3
+ $direc = File.dirname(__FILE__)
4
+
5
+ $LOAD_PATH.push("#{$direc}/../lib/")
6
+
7
+ require 'rubygems'
8
+ require 'glut'
9
+ require 'opengl'
10
+ require 'devil'
11
+ require 'thread'
12
+
13
+ $tex_id = 0
14
+
15
+ $idle = proc {
16
+ GLUT.PostRedisplay
17
+ }
18
+
19
+ $display = proc {
20
+ GL.Clear(GL::COLOR_BUFFER_BIT | GL::DEPTH_BUFFER_BIT)
21
+ GL.LoadIdentity
22
+ GLU.LookAt(0,0,-5,0,0,0,0,1,0)
23
+
24
+ GL.Begin GL::QUADS
25
+
26
+
27
+ GL.TexCoord(1,0)
28
+ GL.Vertex(1, 1,0)
29
+ GL.TexCoord(1,1)
30
+ GL.Vertex(1, -1,0)
31
+ GL.TexCoord(0,1)
32
+ GL.Vertex(-1, -1,0)
33
+ GL.TexCoord(0,0)
34
+ GL.Vertex(-1, 1,0)
35
+
36
+ GL.End
37
+
38
+ GLUT.SwapBuffers
39
+ }
40
+
41
+ $reshape = proc { |w,h|
42
+ GL.Viewport(0,0,w,h)
43
+ GL.MatrixMode(GL::PROJECTION)
44
+ GL.LoadIdentity
45
+ GLU.Perspective(45.0, Float(w)/h, 0.01, 100)
46
+ GL.MatrixMode(GL::MODELVIEW)
47
+ GL.LoadIdentity
48
+ }
49
+
50
+ def setup_gl
51
+ GL.ClearColor( 0,0,0,1)
52
+ IL.Init
53
+ ILUT.Renderer(ILUT::OPENGL)
54
+ GL.Enable(GL::DEPTH_TEST)
55
+ GL.DrawBuffer(GL::BACK)
56
+ GL.Disable(GL::CULL_FACE)
57
+ GL.ShadeModel(GL::FLAT)
58
+ GL.Enable(GL::TEXTURE_2D)
59
+
60
+ name = IL.GenImages(1)[0]
61
+ IL.BindImage(name)
62
+
63
+ if File.directory?("test") then
64
+ if !File.exist?("test/texture.png") then
65
+ raise RuntimeError, "File test/texture.png doesn't exist"
66
+ end
67
+ IL.LoadImage("test/texture.png")
68
+ else
69
+ if !File.exist?("texture.png") then
70
+ raise RuntimeError, "File texture.png doesn't exist"
71
+ end
72
+ IL.LoadImage("texture.png")
73
+ end
74
+
75
+ $tex_id = ILUT.GLBindMipmaps()
76
+ IL.DeleteImages([name])
77
+
78
+
79
+ end
80
+
81
+ def main
82
+ GLUT.Init
83
+ GLUT.InitDisplayMode(GLUT::DOUBLE | GLUT::RGB | GLUT::DEPTH)
84
+ GLUT.InitWindowSize(800,600)
85
+ GLUT.CreateWindow("Ruby-DevIL test")
86
+ setup_gl
87
+ GLUT.DisplayFunc($display)
88
+ GLUT.ReshapeFunc($reshape)
89
+ GLUT.IdleFunc($idle)
90
+ GLUT.MainLoop
91
+
92
+
93
+ end
94
+
95
+ main
@@ -6,7 +6,7 @@ require 'rubygems'
6
6
  require 'devil/gosu'
7
7
 
8
8
  Devil.load("texture.png") do |img|
9
- img.dup.thumbnail(150, :filter => Devil::NEAREST).show(100, 300).free
10
- img.dup.thumbnail(150).show(100, 100).free
9
+ img.dup.thumbnail(100, :filter => Devil::NEAREST).show(200, 300).free
10
+ img.dup.thumbnail(100).show(200, 500).free
11
11
  end
12
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.8
4
+ version: 0.1.9.0
5
5
  platform: x86-mswin32-60
6
6
  authors:
7
7
  - Jaroslaw Tworek, John Mair (banisterfiend)
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-29 00:00:00 +13:00
12
+ date: 2009-11-10 00:00:00 +13:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -33,6 +33,7 @@ files:
33
33
  - ext/devil/ruby_devil_ext.c
34
34
  - ext/devil/ruby_il.c
35
35
  - ext/devil/ruby_ilu.c
36
+ - ext/devil/ruby_ilut.c
36
37
  - test/test_blank.rb
37
38
  - test/test_blit.rb
38
39
  - test/test_clone_and_crop.rb
@@ -41,6 +42,7 @@ files:
41
42
  - test/test_gosu_save.rb
42
43
  - test/test_gosu_show.rb
43
44
  - test/test_group.rb
45
+ - test/test_ilut.rb
44
46
  - test/test_new_api.rb
45
47
  - test/test_profile.rb
46
48
  - test/test_scale_algos.rb