John,

Thanks very much for the help. The "data = CGBitmapContextGetData(context)" had 
me confused, I was wondering if the Pointer type need a change, so you view 
that it's a bug is very helpful. Yes, I now have IcePhage working.

I'll start trying to collate what has been written about Pointer and see if 
Julian and I can start to publish something that can then be expanded.

Many thanks, Jonathan.


regards,  Jonathan

Jonathan T Waddilove
email: jonat...@waddilove.net 
web: jonathan.waddilove.net

On 24 Jan 2010, at 11:07, John Shea wrote:

> Hi Jonathan,
> 
> yes i discovered that yesterday too.
> 
> Changing all of the "i" s to "I"s was not too hard - i do not know if this is 
> a change in Pointer types or whatever.
> 
> The bigger issue is that this call:
> data = CGBitmapContextGetData(context)
> 
> no longer seems to return the correct data type (type "C" rather than type 
> "v") - perhaps this is a BridgeSupport issue - I do not know, however the fix 
> and the reason why i think its a bug, is that you can get all working (once 
> the first fix with "i" s are done) by replacing the following code in the 
> GLView.load_texture method from:
> 
>   context = Tools.sendTexture(imageRef)
>   data = CGBitmapContextGetData(context)
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, 
> GL_STORAGE_SHARED_APPLE)
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 
> GL_LINEAR_MIPMAP_LINEAR); 
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE )
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE )
>   gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, width, height, GL_BGRA, 
> GL_UNSIGNED_INT_8_8_8_8, data)
> 
> to
> 
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, 
> GL_STORAGE_SHARED_APPLE)
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 
> GL_LINEAR_MIPMAP_LINEAR); 
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE )
>   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE )
>   Tools.sendTexture(imageRef)
> 
> and add to the objc class, in class method sendTexture, before the return 
> (which is now superfluous, but i did not change through laziness):
> 
>       CGContextRelease(context);
>       gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, width, height, GL_BGRA, 
> GL_UNSIGNED_INT_8_8_8_8, data);
> 
> the release is there because i know now that CoreGraphics is not garbage 
> collected.
> 
> So the very same opengl mipmap call (with same datatype) works fine now, and 
> so does the game (IcePhage - and its the same code in CarNage).
> 
> Of course you could move most of those opengl calls into the objC method - 
> but that might defeat the purpose of limiting the objc code to the minimum.
> 
> 
> Cheers,
> J
> 
> 
> On Jan 23, 2010, at 3:19 PM, Jonathan Waddilove wrote:
> 
>> John,
>> 
>> I've just started to look at your IcPhage9 and CarNage8. Neither runs 'out 
>> of the box' under MacRuby Beta.5(2). There are various problems with the 
>> Pointer support having evolved (I think), e.g.: errors like "Pointer of type 
>> `i', got `l'" - I'm working to correct these and see if I can make the code 
>> function again.
>> 
>> It would be great if we could assemble a web page that documents some of the 
>> required knowledge on MAcRuby Pointers for OpenGL.
>> 
>> regards,  Jonathan
>> 
>> 
>> On 22 Jan 2010, at 16:06, John Shea wrote:
>> 
>>> 
>>> 
>>> Thank you again for offering the additional resources. It would be great if 
>>> you wanted to add them to your idisc.
>>> sure.
>>> 
>>> 
>>> 
>>> I did find a copy of your excellent presentation "Building Games with 
>>> MacRuby and OpenGL", I must work through the slides again. Did you consider 
>>> sharing your game tools? The presentation would make a very useful basis 
>>> for a web tutorial on the MacRuby/openGL topic.
>>> As far as tools are concerned the only one that ended up being useful in 
>>> the end was canning particle effects, so you run the explosion, fireworks 
>>> or whatever and then record a series of images, which you can use for 
>>> animation later. With IcePhage however it was all on the fly particle 
>>> effects - canned animation was not necessary - it could do with some 
>>> optimisation (both in look and efficiency) - and macruby speed increases 
>>> have probably have improved performance.
>>> 
>>> Is that what you meant by tools?
>>> 
>>> The only other software (sans MacRuby) I used was XCode, TextMate and for 
>>> 3D experiments Cheetah 3D, some Illustrator & Ria for drawing, graphic 
>>> converter to clean up the PNGs.
>>> 
>>> Let me know if you meant something else regarding tools.
>>> 
>>> Cheers,
>>> 
>>> J
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Like you, I'm new to both openGL and MacRuby - my interest is in 
>>> visualisations rather than games. Right now I'm just greatfull that folks 
>>> like you are willing to share their hard earned skills.
>>> 
>>> Best wishes, Jonathan
>>> 
>>> jonathan 'at' waddilove.net
>>> 
>>> 
>>> On 22 Jan 2010, at 09:28, John Shea wrote:
>>> 
>>>> Jonathan,
>>>> 
>>>> I made some games in opengl this time last year (which now seem quite 
>>>> naive, as i did not know opengl or cocoa, so they could do with a good 
>>>> refactor).
>>>> 
>>>> I do not know if they work with the current version of macruby but they 
>>>> are on my idisk:
>>>> 
>>>> www.johnmacshea.org
>>>> 
>>>> navigate thru MacRuby / Game Related / Mine
>>>> 
>>>> Two 2D games CarNage8 and IcePhage9 are there.
>>>> 
>>>> They do screen setup, texture loading, writing text to opengl scenes (two 
>>>> different ways), canned explosions sometimes and particle effects for 
>>>> other explosions.
>>>> 
>>>> They do not use VAs or VBOs - but I do have some test projects which use 
>>>> VAs and VBOs, and a 3D test (which uses an exported c header file (from 
>>>> Cheetah 3D) holding vertex arrays).
>>>> 
>>>> Let me know if you are interested and I will dig them up and send them to 
>>>> you (only tested on MacRuby 0.4 however).
>>>> 
>>>> In that game related folder you will also see translations from other 
>>>> people's opengl work (also only tested on 0.4)
>>>> 
>>>> Cheers,
>>>> J
>>>> 
>>>> 
>>>> On Fri, 22 Jan 2010 09:32:57 +0100, Jonathan Waddilove 
>>>> <jonat...@waddilove.net> wrote:
>>>> 
>>>>> John,
>>>>> 
>>>>> Thank you for the response. GLUT won't be my first choice but I'm trying 
>>>>> to follow the examples in the SuperBible.
>>>>> 
>>>>> I'm wondering what the plan is to support all the 'standard' frameworks 
>>>>> in MacRuby is? Should I be able to process the GLUT.framework with 
>>>>> gen_bridge_metadata?
>>>>> 
>>>>> Meanwhile I will look at providing my own wrapper class as you suggest. 
>>>>> As you say this provides a flexible way of handling any framework that 
>>>>> lacks bridge support.
>>>>> 
>>>>> Many thank, Jonathan
>>>>> 
>>>>> On 21 Jan 2010, at 20:56, John Shea wrote:
>>>>> 
>>>>>> Yes as far as I know bridge support does not support GLUT.
>>>>>> 
>>>>>> So you (obviously) have two other options other than gen_bridge_metadata 
>>>>>> (which I gave up on after a few tries) :
>>>>>> 
>>>>>> - don't use GLUT - use the equivalent (set of) non GLUT openGL calls
>>>>>> - place the GLUT calls in an ObjC class - and call out to that class 
>>>>>> from MacRuby
>>>>>> 
>>>>>> you might find that the second option is quite quick - i found that for 
>>>>>> some openGL calls (but not all) that dispatching to my own bridge class 
>>>>>> which then called opengl functions was quicker than going through 
>>>>>> BridgeSupport.
>>>>>> 
>>>>>> There are other good reasons to have your own bridge class anyway - i 
>>>>>> imagine that BridgeSupport is always going to be lagging Cocoa a bit (eg 
>>>>>> Core Animation constants), and it might just be easier allocating OpenGL 
>>>>>> texture memory in ObjC (well I still use objC for that)
>>>>>> 
>>>>>> HTH,
>>>>>> J
>>>>>> 
>>>>>> 
>>>>>> On Jan 20, 2010, at 8:14 PM, Jonathan Waddilove wrote:
>>>>>> 
>>>>>>> Hi, I'm back to using MacRuby again and I'm confused about Bridge 
>>>>>>> Support.
>>>>>>> 
>>>>>>> I have been using the excellent sojaster port of the Cocoa OpenGL 
>>>>>>> example to help develop an OpenGL playpen. However, when I started 
>>>>>>> using glut calls (glutBitmapCharacter, glutStrokeString, etc) I started 
>>>>>>> to get problems.
>>>>>>> 
>>>>>>> It seems that the OpenGL glut.framework (10.6.2) doesn't include bridge 
>>>>>>> support. I've tried using gen_bridge_metadata to add bridge support but 
>>>>>>> without success.
>>>>>>> 
>>>>>>> Should glut work in MacRuby? How does one add BridgeSupport to the 
>>>>>>> Apple shipped frameworks?
>>>>>>> 
>>>>>>> Sorry if I have missed some very obvious step.
>>>>>>> 
>>>>>>> regards and thanks,  Jonathan
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> MacRuby-devel mailing list
>>>>>>> MacRuby-devel@lists.macosforge.org
>>>>>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>>>>> 
>>>>>> _______________________________________________
>>>>>> MacRuby-devel mailing list
>>>>>> MacRuby-devel@lists.macosforge.org
>>>>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>>>> 
>>>>> _______________________________________________
>>>>> MacRuby-devel mailing list
>>>>> MacRuby-devel@lists.macosforge.org
>>>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>>> 
>>>> _______________________________________________
>>>> MacRuby-devel mailing list
>>>> MacRuby-devel@lists.macosforge.org
>>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>> 
>>> 
>>> regards,  Jonathan
>>> 
>>> Jonathan T Waddilove
>>> email: jonat...@waddilove.net 
>>> web: jonathan.waddilove.net
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> MacRuby-devel mailing list
>>> MacRuby-devel@lists.macosforge.org
>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>> 
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel@lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> 
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel@lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to