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