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

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