I just used swig to translate soil.h for FreeBasic. I don't really know enough about ogl to really use it yet, but by plugging it into some FB ogl examples I was able to verify that libSOIL.a does work when linked statically in FB.
'''''' soil -- header translated with help of SWIG FB wrapper'''' NOTICE: This file is part of the FreeBASIC Compiler package and can't'' be included in other distributions without authorization.''''#ifndef __soil_bi__#define __soil_bi__#inclib "SOIL"enum SOIL_LOAD_AUTO = 0 SOIL_LOAD_L = 1 SOIL_LOAD_LA = 2 SOIL_LOAD_RGB = 3 SOIL_LOAD_RGBA = 4end enumenum SOIL_CREATE_NEW_ID = 0end enumenum SOIL_FLAG_POWER_OF_TWO = 1 SOIL_FLAG_MIPMAPS = 2 SOIL_FLAG_TEXTURE_REPEATS = 4 SOIL_FLAG_MULTIPLY_ALPHA = 8 SOIL_FLAG_INVERT_Y = 16 SOIL_FLAG_COMPRESS_TO_DXT = 32 SOIL_FLAG_DDS_LOAD_DIRECT = 64end enumenum SOIL_SAVE_TYPE_TGA = 0 SOIL_SAVE_TYPE_BMP SOIL_SAVE_TYPE_DDSend enumdeclare function SOIL_load_OGL_texture cdecl alias "SOIL_load_OGL_texture" (byval filename as zstring ptr, byval force_channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_load_OGL_cubemap cdecl alias "SOIL_load_OGL_cubemap" (byval x_pos_file as zstring ptr, byval x_neg_file as zstring ptr, byval y_pos_file as zstring ptr, byval y_neg_file as zstring ptr, byval z_pos_file as zstring ptr, byval z_neg_file as zstring ptr, byval force_channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_load_OGL_single_cubemap cdecl alias "SOIL_load_OGL_single_cubemap" (byval filename as zstring ptr, byval face_order as zstring ptr, byval force_channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_load_OGL_texture_from_memory cdecl alias "SOIL_load_OGL_texture_from_memory" (byval buffer as ubyte ptr, byval buffer_length as integer, byval force_channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_load_OGL_cubemap_from_memory cdecl alias "SOIL_load_OGL_cubemap_from_memory" (byval x_pos_buffer as ubyte ptr, byval x_pos_buffer_length as integer, byval x_neg_buffer as ubyte ptr, byval x_neg_buffer_length as integer, byval y_pos_buffer as ubyte ptr, byval y_pos_buffer_length as integer, byval y_neg_buffer as ubyte ptr, byval y_neg_buffer_length as integer, byval z_pos_buffer as ubyte ptr, byval z_pos_buffer_length as integer, byval z_neg_buffer as ubyte ptr, byval z_neg_buffer_length as integer, byval force_channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_load_OGL_single_cubemap_from_memory cdecl alias "SOIL_load_OGL_single_cubemap_from_memory" (byval buffer as ubyte ptr, byval buffer_length as integer, byval face_order as zstring ptr, byval force_channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_create_OGL_texture cdecl alias "SOIL_create_OGL_texture" (byval data as ubyte ptr, byval width as integer, byval height as integer, byval channels as integer, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_create_OGL_single_cubemap cdecl alias "SOIL_create_OGL_single_cubemap" (byval data as ubyte ptr, byval width as integer, byval height as integer, byval channels as integer, byval face_order as zstring ptr, byval reuse_texture_ID as uinteger, byval flags as uinteger) as uintegerdeclare function SOIL_save_screenshot cdecl alias "SOIL_save_screenshot" (byval filename as zstring ptr, byval image_type as integer, byval x as integer, byval y as integer, byval width as integer, byval height as integer) as integerdeclare function SOIL_load_image cdecl alias "SOIL_load_image" (byval filename as zstring ptr, byval width as integer ptr, byval height as integer ptr, byval channels as integer ptr, byval force_channels as integer) as ubyte ptrdeclare function SOIL_load_image_from_memory cdecl alias "SOIL_load_image_from_memory" (byval buffer as ubyte ptr, byval buffer_length as integer, byval width as integer ptr, byval height as integer ptr, byval channels as integer ptr, byval force_channels as integer) as ubyte ptrdeclare function SOIL_save_image cdecl alias "SOIL_save_image" (byval filename as zstring ptr, byval image_type as integer, byval width as integer, byval height as integer, byval channels as integer, byval data as ubyte ptr) as integerdeclare sub SOIL_free_image_data cdecl alias "SOIL_free_image_data" (byval img_data as ubyte ptr)declare function SOIL_last_result cdecl alias "SOIL_last_result" () as zstring ptr#endif
*edit*
Is there a function to get the pixel width and height of the image?
[Edited by - Merick Zero on September 21, 2007 9:39:32 PM]