roglew 0.2.4 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NzI0NjU1NTAzNzA3NDQ2ZDJmOTc3MjYwY2IyNGZhOTM4MTQ3ZDdjYw==
5
+ data.tar.gz: !binary |-
6
+ ZmY1YTNkYzk0MGZmYzNhMmZjNDFhYTM3ZGE5ZGY0MjYyMDc5ZWUzNg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZTQxN2ZiMmEyZjNlYzlkYzY1MDNjMzhmNzU5NzRkMzZlZDJlZThiNjAwYzdk
10
+ N2IxYjQ3YWU4NmQ0MWUwZDk2N2E2ZjhlM2JmOWE0ZjlhNmJhNjZmMTk3Y2Qx
11
+ Nzg1ZTc1NTg3OGJhOTM3MjQwZWJmNWFlOWEwZDg0NTFmYzIxYjA=
12
+ data.tar.gz: !binary |-
13
+ MjE3NDVkMDEwZDBkMGJmYTRhYzZhM2U3ZjIzNmI4NGExYjgyNGNjN2U1NzM4
14
+ ZTU0NzkzY2UwNTZjN2M2Mzg0ZjUxZDIwYThkYWQzNTkxNTMxMTUzNDY3NTg1
15
+ N2RkZGRkNzdkOGNmMWNhNjkzMDQ0M2NkMzJiNmZhYzdiNDhlMDY=
data/README.md CHANGED
@@ -1,6 +1,38 @@
1
- roglew
2
- ======
1
+ # roglew
2
+
3
+ * https://github.com/SilverPhoenix99/roglew
4
+
5
+ ## INSTALL:
6
+
7
+ gem install roglew
8
+
9
+ ## DESCRIPTION:
3
10
 
4
11
  Raw Glue - the Ruby OpenGL and Extensions Wrapper
5
12
 
6
- <a href='http://www.pledgie.com/campaigns/18830'><img alt='Click here to lend your support to: roglew and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/18830.png?skin_name=chrome' border='0' /></a>
13
+ <a href='http://www.pledgie.com/campaigns/18830'><img alt='Click here to lend your support to: roglew and make a donation at www.pledgie.com !' src='http://www.pledgie.com/campaigns/18830.png?skin_name=chrome' border='0' /></a>
14
+
15
+ ## LICENSE:
16
+
17
+ (The MIT License)
18
+
19
+ Copyright (c) 2012 Pedro Pinto
20
+
21
+ Permission is hereby granted, free of charge, to any person obtaining
22
+ a copy of this software and associated documentation files (the
23
+ 'Software'), to deal in the Software without restriction, including
24
+ without limitation the rights to use, copy, modify, merge, publish,
25
+ distribute, sublicense, and/or sell copies of the Software, and to
26
+ permit persons to whom the Software is furnished to do so, subject to
27
+ the following conditions:
28
+
29
+ The above copyright notice and this permission notice shall be
30
+ included in all copies or substantial portions of the Software.
31
+
32
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
33
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
34
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
35
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
36
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
37
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
38
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -26,7 +26,7 @@ module Roglew
26
26
 
27
27
  wglDeleteContext(old_hrc) if old_hrc
28
28
 
29
- self.class.finalize(self, @hrc)
29
+ ObjectSpace.define_finalizer(self, self.class.finalize(@hrc))
30
30
  end
31
31
 
32
32
  alias_method :get_proc_address, :wglGetProcAddress
@@ -1,15 +1,14 @@
1
1
  module Roglew
2
2
  class RenderContext
3
- include Roglew::Contextual(nil)
4
- include GLObject
3
+ include GLObject, Roglew::Contextual(nil)
5
4
 
6
5
  @registered_extensions = {}
7
6
 
8
- def self.finalize(obj, *args)
9
- ObjectSpace.define_finalizer(obj, proc do
7
+ def self.finalize(*args)
8
+ proc do
10
9
  puts 'releasing a render context'
11
10
  GL.platform_module.delete_context(*args)
12
- end)
11
+ end
13
12
  end
14
13
 
15
14
  def self.register_extensions(extensions)
@@ -1,3 +1,5 @@
1
+ #TODO
2
+
1
3
  module Roglew
2
4
  class RenderHandle
3
5
  def initialize(hdc)
@@ -0,0 +1,24 @@
1
+ module Roglew
2
+ class Texture
3
+ include Roglew::Contextual(TextureContext)
4
+
5
+ attr_reader :context, :id
6
+
7
+ def initialize(context)
8
+ @context = context
9
+ @id = context.gen_textures
10
+ self.class.finalize(self, @context, @id)
11
+ end
12
+
13
+ def self.finalize(obj, ctx, id)
14
+ ObjectSpace.define_finalizer(obj, proc do
15
+ puts "releasing texture #{id}"
16
+ ctx.glDeleteTextures(id)
17
+ end)
18
+ end
19
+
20
+ def bind(level = 0, deferred = nil, &block)
21
+ create_binding(deferred, GL::TEXTURE_2D, level, &block)
22
+ end
23
+ end
24
+ end
@@ -1,20 +1,20 @@
1
1
  module Roglew
2
2
  class Texture2d
3
- include Roglew::Contextual(TextureContext)
3
+ include Roglew::Contextual(Texture2dContext)
4
4
 
5
5
  attr_reader :context, :id
6
6
 
7
7
  def initialize(context)
8
8
  @context = context
9
9
  @id = context.gen_textures
10
- self.class.finalize(self, @context, @id)
10
+ ObjectSpace.define_finalizer(self, self.class.finalize(@context, @id))
11
11
  end
12
12
 
13
- def self.finalize(obj, ctx, id)
14
- ObjectSpace.define_finalizer(obj, proc do
13
+ def self.finalize(ctx, id)
14
+ proc do
15
15
  puts "releasing texture #{id}"
16
16
  ctx.glDeleteTextures(id)
17
- end)
17
+ end
18
18
  end
19
19
 
20
20
  def bind(level = 0, deferred = nil, &block)
@@ -0,0 +1,52 @@
1
+ module Roglew
2
+ class Texture2dContext
3
+ include Roglew::BaseContext(:texture)
4
+
5
+ attr_accessor :level
6
+
7
+ def initialize(texture, deferred, target, level, &block)
8
+ @target, @level = target, level
9
+ super(texture, deferred, &block)
10
+ end
11
+
12
+ {
13
+ :min_filter => :TEXTURE_MIN_FILTER,
14
+ :mag_filter => :TEXTURE_MAG_FILTER,
15
+ :min_lod => :TEXTURE_MIN_LOD,
16
+ :max_lod => :TEXTURE_MAX_LOD,
17
+ :base_level => :TEXTURE_BASE_LEVEL,
18
+ :max_level => :TEXTURE_MAX_LEVEL,
19
+ :wrap_s => :TEXTURE_WRAP_S,
20
+ :wrap_t => :TEXTURE_WRAP_T,
21
+ :wrap_r => :TEXTURE_WRAP_R,
22
+ :priority => :TEXTURE_PRIORITY,
23
+ :compare_mode => :TEXTURE_COMPARE_MODE,
24
+ :compare_func => :TEXTURE_COMPARE_FUNC,
25
+ :depth_mode => :DEPTH_TEXTURE_MODE,
26
+ :mipmap => :GENERATE_MIPMAP
27
+ }.each do |name, cnst|
28
+ class_eval "def #{name}=(v) make_call(:tex_parameter, @target, GL::#{cnst}, v) end"
29
+ end
30
+
31
+ def border_color(r, g, b, a)
32
+ make_call(:tex_parameter, @target, GL::TEXTURE_BORDER_COLOR, r, g, b, a)
33
+ end
34
+
35
+ def tex_image_2d(width, height, internalFormat, format, type, data = nil)
36
+ make_call(:glTexImage2D, @target, @level, internalFormat, width, height, 0, format, type, data)
37
+ end
38
+
39
+ def tex_subimage_2d(x, y, width, height, format, type, data = nil)
40
+ make_call(:glTexSubImage2D, @target, @level, x, y, width, height, format, type, data)
41
+ end
42
+
43
+ private
44
+ def bind
45
+ context.glBindTexture(@target, texture.id)
46
+ end
47
+
48
+ def unbind
49
+ context.glBindTexture(@target, 0)
50
+ end
51
+ end
52
+ end
@@ -2,51 +2,8 @@ module Roglew
2
2
  class TextureContext
3
3
  include Roglew::BaseContext(:texture)
4
4
 
5
- attr_accessor :level
5
+ attr_accessor :target, :level
6
6
 
7
- def initialize(texture, deferred, target, level, &block)
8
- @target, @level = target, level
9
- super(texture, deferred, &block)
10
- end
11
7
 
12
- {
13
- :min_filter => :TEXTURE_MIN_FILTER,
14
- :mag_filter => :TEXTURE_MAG_FILTER,
15
- :min_lod => :TEXTURE_MIN_LOD,
16
- :max_lod => :TEXTURE_MAX_LOD,
17
- :base_level => :TEXTURE_BASE_LEVEL,
18
- :max_level => :TEXTURE_MAX_LEVEL,
19
- :wrap_s => :TEXTURE_WRAP_S,
20
- :wrap_t => :TEXTURE_WRAP_T,
21
- :wrap_r => :TEXTURE_WRAP_R,
22
- :priority => :TEXTURE_PRIORITY,
23
- :compare_mode => :TEXTURE_COMPARE_MODE,
24
- :compare_func => :TEXTURE_COMPARE_FUNC,
25
- :depth_mode => :DEPTH_TEXTURE_MODE,
26
- :mipmap => :GENERATE_MIPMAP
27
- }.each do |name, cnst|
28
- class_eval "def #{name}=(v) make_call(:tex_parameter, @target, GL::#{cnst}, v) end"
29
- end
30
-
31
- def border_color(r, g, b, a)
32
- make_call(:tex_parameter, @target, GL::TEXTURE_BORDER_COLOR, r, g, b, a)
33
- end
34
-
35
- def tex_image_2d(width, height, internalFormat, format, type, data = nil)
36
- make_call(:glTexImage2D, @target, @level, internalFormat, width, height, 0, format, type, data)
37
- end
38
-
39
- def tex_subimage_2d(x, y, width, height, format, type, data = nil)
40
- make_call(:glTexSubImage2D, @target, @level, x, y, width, height, format, type, data)
41
- end
42
-
43
- private
44
- def bind
45
- context.glBindTexture(@target, texture.id)
46
- end
47
-
48
- def unbind
49
- context.glBindTexture(@target, 0)
50
- end
51
8
  end
52
9
  end
data/lib/roglew.rb CHANGED
@@ -10,7 +10,7 @@
10
10
  '.each { |f| require f }
11
11
 
12
12
  module Roglew
13
- VERSION = '0.2.4'
13
+ VERSION = '0.2.6'.freeze
14
14
 
15
15
  PLATFORM = case
16
16
  when Platform.local.windows? then 'windows'
@@ -31,7 +31,7 @@ end
31
31
  platform/#{Roglew::PLATFORM}/gl
32
32
  gl
33
33
  platform/#{Roglew::PLATFORM}
34
- texture_context
34
+ texture2d_context
35
35
  texture2d
36
36
  render_context
37
37
  '.each { |f| require "roglew/#{f}" }
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roglew
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
5
- prerelease:
4
+ version: 0.2.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - SilverPhoenix99
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2012-12-28 00:00:00.000000000 Z
12
+ date: 2013-03-27 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: facets
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: ffi
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -601,46 +596,39 @@ files:
601
596
  - lib/roglew/platform/windows.rb
602
597
  - lib/roglew/render_context.rb
603
598
  - lib/roglew/render_handle.rb
599
+ - lib/roglew/texture.rb
604
600
  - lib/roglew/texture2d.rb
601
+ - lib/roglew/texture2d_context.rb
605
602
  - lib/roglew/texture_context.rb
606
603
  - lib/roglew.rb
607
604
  - README.md
608
605
  homepage: https://github.com/SilverPhoenix99/roglew
609
- licenses: []
606
+ licenses:
607
+ - MIT
608
+ metadata: {}
610
609
  post_install_message: ! "+----------------------------------------------------------------------------+\n
611
610
  \ Thanks for choosing Roglew.\n\n ==========================================================================\n
612
- \ 0.2.4 Changes:\n - Corrected a bug where contexts weren't calling the run method.\n
613
- \ - Corrected the calls to ObjectSpace::define_finalizer.\n - Changed RenderContext#buffer_data
614
- method to accept ffi instance types\n (e.g., Struct) as a parameter and calculates
615
- the size automatically.\n - ShaderProgram#use_program can act as a bind method.\n
616
- \ - Optional level parameter for Texture2d#bind.\n - Data parameter is now
617
- optional for TextureContext#tex_image_2d.\n - The level can now be changed in
618
- TextureContext at any point.\n - Added the methods:\n RenderContext#buffer_sub_data\n
619
- \ BufferContext#sub_data methods\n ShaderProgram#attrib_location\n
620
- \ ShaderProgram#attrib_locations\n ShaderProgram#uniform_location\n
621
- \ TextureContext#tex_subimage_2d\n ==========================================================================\n\n
611
+ \ 0.2.6 Changes:\n - Fixed a few finalizers.\n ==========================================================================\n\n
622
612
  \ If you like what you see, support us on Pledgie:\n http://www.pledgie.com/campaigns/18830\n\n
623
613
  \ If you find any bugs, please report them on\n https://github.com/SilverPhoenix99/roglew/issues\n\n+----------------------------------------------------------------------------+\n"
624
614
  rdoc_options: []
625
615
  require_paths:
626
616
  - lib
627
617
  required_ruby_version: !ruby/object:Gem::Requirement
628
- none: false
629
618
  requirements:
630
619
  - - ! '>='
631
620
  - !ruby/object:Gem::Version
632
621
  version: '0'
633
622
  required_rubygems_version: !ruby/object:Gem::Requirement
634
- none: false
635
623
  requirements:
636
624
  - - ! '>='
637
625
  - !ruby/object:Gem::Version
638
626
  version: '0'
639
627
  requirements: []
640
628
  rubyforge_project:
641
- rubygems_version: 1.8.24
629
+ rubygems_version: 2.0.3
642
630
  signing_key:
643
- specification_version: 3
631
+ specification_version: 4
644
632
  summary: Ruby OpenGL and Extensions Wrapper
645
633
  test_files: []
646
634
  has_rdoc: