[crossfire] Mac client - status

Amorya North amorya at amorya.freeserve.co.uk
Sun Aug 21 04:21:49 CDT 2005


On 21 Aug 2005, at 05:23, Mark Wedel wrote:

>
     
      Amorya North wrote:
     
     >
     
     
     >>
     
      I've got somewhere. Common files compile in now, and work fine.  
     
     >>
     
      I've  got a vague event loop up and running, and some of the  
     
     >>
     
      callbacks  work. I've got as far as displaying text sent to the  
     
     >>
     
      console, and  displaying a list of current stats.
     
     >>
     
      Here's a screenshot:
     
     >>
     
     
      http://www.amoryanorth.com/crossmac.png
      
      
     >>
     
      There's a lot I don't understand about the common code still - in   
     
     >>
     
      particular, what the create_and_rescale_image_from_data() function  
     
     >>
     
      is  actually supposed to do! But I'm working on it.
     
     >>
     
     
     >
     
     
     >
     
       Just as it sounds.
     
     >
     
     
     >
     
       All image data is png.  However, the png data has to be converted  
     
     >
     
      to something that the display system knows how to display.
     
     >
     
     
     >
     
       In order to abstract this, the cache_entry image_data pointer is  
     
     >
     
      basically private - whatever the display specific code deams to  
     
     >
     
      store there is fine.
     
     >
     
     
     >
     
       The basic idea of this is to have the caching logic all in the  
     
     >
     
      common code (if it gets a face it knows about, it will do the right  
     
     >
     
      thing), but have the actual rendering code in the client area.
     
     >
     
     
     >
     
       For the gtk and gtk-v2 clients, that function is perhaps a bit  
     
     >
     
      messier than need be, because those clients support different  
     
     >
     
      display modes (pixmap, sdl, and in case of gtk-v2, opengl), so what  
     
     >
     
      exactly is stores there may be different.
     
     >
     
     
     >
     
       The rescale part is jsut that - rescaling of the image.  You may  
     
     >
     
      decide for your client that you don't want to allow rescaling -  
     
     >
     
      that's your choice.  Just for the gtk clients, people wanted to be  
     
     >
     
      able to rescale the data so they could play on lower resolution  
     
     >
     
      displays.
     
     >
     
     
     
Ah, ok - so I can store a pointer to an NSImage in the cache entry?  
That would help a lot. I was wondering where I'd be able to do the  
conversion.

As for scaling, it's dead easy in Cocoa. A single line of code will  
scale the map window's contents _after_ it's been composited. So I  
won't allow scaling of images to be stored - it's just not needed!


Thanks for your help.


Amorya

    
    


More information about the crossfire mailing list