discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rendering grayscale on opengl using nsbitmaprep


From: AN Indie
Subject: Re: Rendering grayscale on opengl using nsbitmaprep
Date: Sun, 27 Feb 2011 21:58:44 +0530
User-agent: Opera Mail/11.01 (Linux)

Hi,
I accept their is mismatch between parameter/arguments. But this code just works!
[
But good news is, I was able to reproduce the bug in package gnustep-examples-1.2.0

I modified NSImage test case a little and  reproduced this bug!!


I changed


image = [[NSImage alloc] initWithContentsOfFile: file ];
[mview setImage: image];

with


image = [[NSImage alloc] initWithContentsOfFile: file ];
NSImage * aximage = [[NSImage alloc] initWithData:[image TIFFRepresentationUsingCompression:NSTIFFCompressionNone factor:0]];
[mview setImage: aximage];

An now  the gray scale image is not renders properly.


I attached test case along with this mail. Please confirm with latest GNUstep as I am using the older version.

-Thanks
AN Indie

On Sat, 26 Feb 2011 01:21:36 +0530, Fred Kiefer <fredkiefer@gmx.de> wrote:
Now having had a short look at your code I am almost sure that my
initial suspicion is correct. You first convert a grey scale image into
an RGB one, that step should work. Next you copy the data of this
converted bitmap into a large data structure where you extended width
and height to the next power of two. Here you have to copy over each row
separately. (You could save that step by supplying a corresponding
bytesPerRow value into the conversion.) Then you call your
initWithData:... method and hand over an unpackRowLength you computed
from the original data. But you don't use that value instead you use the
rounded up width (Line 524).

Not that I understand any of the stuff that goes on in this method, but
I am very sure that this is the cause of your trouble.

Cheers
Fred


Am 25.02.2011 19:15, schrieb AN Indie:
On Wed, 23 Feb 2011 15:22:09 +0530, Fred Kiefer <fredkiefer@gmx.de> wrote:

Sure. I always worried that, it may off the topic here.
Code is already hosted on internet. It is hosted in a public git
repository at github(https://github.com/ANindie/cocos2d-GNUstep).

You can take a quick look on problematic code at
https://github.com/ANindie/cocos2d-GNUstep/blob/85c5097047126107ef225b9025e972b97e60335d/src/cocostep/CCTexture2D.m.


I included th code you pointed here. Also added test case at
https://github.com/ANindie/cocos2d-GNUstep/blob/85c5097047126107ef225b9025e972b97e60335d/src/tests/BasicSpriteTest/BasicSprite.m


-Thanks
Indie AN




Thank you, with that explanation I finally understand where you trying
to get to. And the code that I pointed you to should work quite well for
that purpose. My feeling is still that your code that is calling this
has a problem. If you want you can send me the code off line and I have
a quick look at what may go wrong here.

Fred

Am 23.02.2011 05:21, schrieb Indie AN:
Ok. Let me clear it for once. I am trying to render image using
opengl, that we normally do for games. Opengl do not speak nsimage.
They speak textures . All i needed is magic piece of code that
converts every image to raw rbga or rbg data. In mac they do using
coreimage framework.         But its ok. I can live happily without
gray scale images. White image is sufficient.  Thanks to everybodies
time.

On 2/16/11, Fred Kiefer <fredkiefer@gmx.de> wrote:
Sorry, I still don't understand your problem. Why are you converting
the
image? The standard code should work fine in displaying it. Actually
the
code I pointed you to is used for that.
From your screen shot I would expect that your drawing code uses the
wrong sizes. To verify this it would help if you sent a bit more of
your
code.

Fred

PS: For drawing pre-multiplied images get used. Better convert in to
that format. But this is completely unrelated to your problem.



--
iPhone development on Linux! https://github.com/ANindie/cocos2d-GNUstep

Attachment: NSImage.tar.bz2
Description: application/bzip2


reply via email to

[Prev in Thread] Current Thread [Next in Thread]