A3DGraphPictureData
-
struct
A3DGraphPictureData deprecated
A description of a two-dimensional picture.
2.0A picture is a set of color information organised according to a specific memory layout known as format. HOOPS supports various layouts such as RGB or grayscale.
Pictures are mainly used within textures descriptions. To known how to read or define texture information within Exchange, see
A3DGraphTextureDefinitionData.The pixel array is describes row-major, where the origin is at the topleft corner of the image.
A3DGraphPictureDatapicture; A3D_INITIALIZE_DATA(A3DGraphPictureData,picture); picture.m_eFormat=kA3DPictureBitmapRgbByte; picture.m_uiPixelWidth=255; picture.m_uiPixelHeight=100; picture.m_uiSize=picture.m_uiPixelWidth*picture.m_uiPixelHeight*3; picture.m_pucBinaryData=malloc(picture.m_uiSize); for(A3DUns32row=0;row<picture.m_uiPixelHeight;++row){ for(A3DUns32column=0;column<picture.m_uiPixelHeight;++column){ A3DUns32red_i=(picture.m_uiPixelWidth*row+column)*3; A3DUns32green_i=red_i+1; A3DUns32blue_i=green_i+1; picture.m_pucBinaryData[red_i]=255-row; picture.m_pucBinaryData[green_i]=row; picture.m_pucBinaryData[blue]=0; } }
A3DStatuspicture_data_to_gl_texture(constA3DGraphPictureData*picture) { assert(picture); GLenumtarget=GL_TEXTURE_2D; GLenumlevel=0; GLsizeiwidth=picture->m_uiPixelWidth; GLsizeiheight=picture->m_uiPixelHeight; GLintborder=0; GLenumtype=GL_UNSIGNED_BYTE; GLintinternalformat; GLenumformat; switch(picture->m_eFormat){ casekA3DPictureBitmapGreyByte:internalformat=GL_RED;format=GL_RED_INTEGER;break; casekA3DPictureBitmapGreyaByte:internalformat=GL_RG;format=GL_RG_INTEGER;break; casekA3DPictureBitmapRgbByte:internalformat=GL_RGB;format=GL_RGB_INTEGER;break; casekA3DPictureBitmapRgbaByte:internalformat=GL_RGBA;format=GL_RGBA_INTEGER;break; default:returnA3D_ERROR; } glTexImage2D(target,level,internalformat, width,height,border, format,type,picture->m_pucBinaryData ); returnA3D_SUCCESS; }
The following code describes an RGB 255x100 image with a color fading from red to green: The following function is an example on how to use [OpenGL 4
glTexImage2D] with HOOPS picture data:
Variables
-
A3DEPictureDataFormat
A3DGraphPictureData.m_eFormat -
Image format specifier.
-
A3DUns32
A3DGraphPictureData.m_uiSize -
The size of
m_pucBinaryDatain bytes.
-
A3DUns8 *
A3DGraphPictureData.m_pucBinaryData -
Image binary data.
-
A3DUns32
A3DGraphPictureData.m_uiPixelWidth -
Image width in pixels. If picture dimension is part of
m_pucBinaryData, this field is 0.
-
A3DUns32
A3DGraphPictureData.m_uiPixelHeight -
Image height in pixels. If picture dimension is part of
m_pucBinaryData, this field is 0.