Go Back   AC3D Forums > General > AC3D Suggestions
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Thread Tools Display Modes
Old 30th November 2007, 05:30 AM   #1
Senior Member
Professional user
lisa's Avatar
Join Date: Mar 2005
Location: Phoenix, AZ
Posts: 917
Default ac_image_GET_data

Function I wish I had:

bool ac_image_get_data(ACImage *i, unsigned char *data, size_t maxlen);


i - Image I want to retrieve the pixels for
data - pointer to a buffer I have pre-allocated to receive the pixel data
maxlen - the size of my destination buffer in bytes


True if success, false if destination buffer size is too small. Correct buffer size can be calculate with ac_image_get_dim.

This would be the matching pair to ac_image_SET_data.

I don't know if AC3D keeps the pixel data around, or if it discards it after generating a surface for GL. I know reading pixels back from a surface is a no-no on some hardware. Alternatively, if this is the case, a variation of add_new_texture_opt that returned the image pixel data as a buffer instead of loading it to a texture would also work.

My goal is to access the texture data without having to re-implement the existing texture importers... I can work around it by getting the file name from AC3D and reloading the texture data myself, but then I don't get the benefit of all the nice image importers that have already been written, so I can't support all the formats that AC3D can.

Potential applications for this method:
- Texture baking
- Fur or other geometry generators that use input textures for color or density
- Displacement mapping
- Exporters that also perform image conversion
- Many more!

Ideas or more elegant work-arounds appreciated!
lisa is offline   Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT -4. The time now is 08:51 PM.

AC3D Forum
(C) Inivis Limited 2020