Module: IL

Included in:
Devil
Defined in:
ext/devil/ruby_il.c

Defined Under Namespace

Classes: ImageData

Constant Summary

TYPE_UNKNOWN =
INT2NUM(IL_TYPE_UNKNOWN)
BMP =
INT2NUM(IL_BMP)
CUT =
INT2NUM(IL_CUT)
DOOM =
INT2NUM(IL_DOOM)
DOOM_FLAT =
INT2NUM(IL_DOOM_FLAT)
ICO =
INT2NUM(IL_ICO)
JPG =
INT2NUM(IL_JPG)
JFIF =
INT2NUM(IL_JFIF)
LBM =
INT2NUM(IL_LBM)
PCD =
INT2NUM(IL_PCD)
PCX =
INT2NUM(IL_PCX)
PIC =
INT2NUM(IL_PIC)
PNG =
INT2NUM(IL_PNG)
PNM =
INT2NUM(IL_PNM)
SGI =
INT2NUM(IL_SGI)
TGA =
INT2NUM(IL_TGA)
TIF =
INT2NUM(IL_TIF)
CHEAD =
INT2NUM(IL_CHEAD)
RAW =
INT2NUM(IL_RAW)
MDL =
INT2NUM(IL_MDL)
WAL =
INT2NUM(IL_WAL)
LIF =
INT2NUM(IL_LIF)
MNG =
INT2NUM(IL_MNG)
JNG =
INT2NUM(IL_JNG)
GIF =
INT2NUM(IL_GIF)
DDS =
INT2NUM(IL_DDS)
DCX =
INT2NUM(IL_DCX)
PSD =
INT2NUM(IL_PSD)
EXIF =
INT2NUM(IL_EXIF)
PSP =
INT2NUM(IL_PSP)
PIX =
INT2NUM(IL_PIX)
PXR =
INT2NUM(IL_PXR)
XPM =
INT2NUM(IL_XPM)
HDR =
INT2NUM(IL_HDR)
JASC_PAL =
INT2NUM(IL_JASC_PAL)
COLOUR_INDEX =
INT2NUM(IL_COLOUR_INDEX)
COLOR_INDEX =
INT2NUM(IL_COLOR_INDEX)
RGB =
INT2NUM(IL_RGB)
RGBA =
INT2NUM(IL_RGBA)
BGR =
INT2NUM(IL_BGR)
BGRA =
INT2NUM(IL_BGRA)
LUMINANCE =
INT2NUM(IL_LUMINANCE)
LUMINANCE_ALPHA =
INT2NUM(IL_LUMINANCE_ALPHA)
UNSIGNED_BYTE =
INT2NUM(IL_UNSIGNED_BYTE)
SHORT =
INT2NUM(IL_SHORT)
UNSIGNED_SHORT =
INT2NUM(IL_UNSIGNED_SHORT)
INT =
INT2NUM(IL_INT)
UNSIGNED_INT =
INT2NUM(IL_UNSIGNED_INT)
FLOAT =
INT2NUM(IL_FLOAT)
DOUBLE =
INT2NUM(IL_DOUBLE)
NO_ERROR =
INT2NUM(IL_NO_ERROR)
INVALID_ENUM =
INT2NUM(IL_INVALID_ENUM)
OUT_OF_MEMORY =
INT2NUM(IL_OUT_OF_MEMORY)
FORMAT_NOT_SUPPORTED =
INT2NUM(IL_FORMAT_NOT_SUPPORTED)
INTERNAL_ERROR =
INT2NUM(IL_INTERNAL_ERROR)
INVALID_VALUE =
INT2NUM(IL_INVALID_VALUE)
ILLEGAL_OPERATION =
INT2NUM(IL_ILLEGAL_OPERATION)
ILLEGAL_FILE_VALUE =
INT2NUM(IL_ILLEGAL_FILE_VALUE)
INVALID_FILE_HEADER =
INT2NUM(IL_INVALID_FILE_HEADER)
INVALID_PARAM =
INT2NUM(IL_INVALID_PARAM)
COULD_NOT_OPEN_FILE =
INT2NUM(IL_COULD_NOT_OPEN_FILE)
INVALID_EXTENSION =
INT2NUM(IL_INVALID_EXTENSION)
FILE_ALREADY_EXISTS =
INT2NUM(IL_FILE_ALREADY_EXISTS)
OUT_FORMAT_SAME =
INT2NUM(IL_OUT_FORMAT_SAME)
STACK_OVERFLOW =
INT2NUM(IL_STACK_OVERFLOW)
STACK_UNDERFLOW =
INT2NUM(IL_STACK_UNDERFLOW)
INVALID_CONVERSION =
INT2NUM(IL_INVALID_CONVERSION)
BAD_DIMENSIONS =
INT2NUM(IL_BAD_DIMENSIONS)
FILE_READ_ERROR =
INT2NUM(IL_FILE_READ_ERROR)
FILE_WRITE_ERROR =
INT2NUM(IL_FILE_WRITE_ERROR)
LIB_GIF_ERROR =
INT2NUM(IL_LIB_GIF_ERROR)
LIB_JPEG_ERROR =
INT2NUM(IL_LIB_JPEG_ERROR)
LIB_PNG_ERROR =
INT2NUM(IL_LIB_PNG_ERROR)
LIB_TIFF_ERROR =
INT2NUM(IL_LIB_TIFF_ERROR)
LIB_MNG_ERROR =
INT2NUM(IL_LIB_MNG_ERROR)
UNKNOWN_ERROR =
INT2NUM(IL_UNKNOWN_ERROR)
IMAGE_DEPTH =

CONSTANTS BELOW ADDED BY BANISTERFIEND

INT2NUM(IL_IMAGE_DEPTH)
IMAGE_WIDTH =
INT2NUM(IL_IMAGE_WIDTH)
IMAGE_HEIGHT =
INT2NUM(IL_IMAGE_HEIGHT)
IMAGE_FORMAT =
INT2NUM(IL_IMAGE_FORMAT)
IMAGE_BITS_PER_PIXEL =
INT2NUM(IL_IMAGE_BITS_PER_PIXEL)
IMAGE_BYTES_PER_PIXEL =
INT2NUM(IL_IMAGE_BYTES_PER_PIXEL)
FILE_OVERWRITE =
INT2NUM(IL_FILE_OVERWRITE)
ORIGIN_SET =
INT2NUM(IL_ORIGIN_SET)
CONV_PAL =
INT2NUM(IL_CONV_PAL)
CUR_IMAGE =
INT2NUM(IL_CUR_IMAGE)
ORIGIN_LOWER_LEFT =
INT2NUM(IL_ORIGIN_LOWER_LEFT)
ORIGIN_UPPER_LEFT =
INT2NUM(IL_ORIGIN_UPPER_LEFT)
JPG_QUALITY =
INT2NUM(IL_JPG_QUALITY)

Class Method Summary (collapse)

Class Method Details

+ (Object) ActiveImage

+ (Object) ActiveMipmap

+ (Object) ApplyProfile

+ (Object) BindImage

+ (Object) Blit

+ (Object) ClearColour

+ (Object) ClearImage

+ (Object) CloneCurImage

+ (Object) ConvertImage

+ (Object) CopyImage

+ (Object) CopyPixels

+ (Object) DeleteImages

+ (Object) Disable

+ (Object) Enable

methods below added by banisterfiend



# File 'ext/devil/ruby_il.c'

static VALUE il_Enable(VALUE obj, VALUE rb_mode) {
    ILenum mode = NUM2INT(rb_mode);

    ILboolean flag = ilEnable(mode);
    return flag ? Qtrue : Qfalse;
}

+ (Object) FromBlob

+ (Object) GenImages

+ (Object) GetData

+ (Object) GetError

+ (Object) GetInteger

+ (Object) Init

+ (Object) Load

+ (Object) LoadImage

+ (Object) OriginFunc

+ (Object) OverlayImage

+ (Object) Save

+ (Object) SaveImage

+ (Object) SetData

}



# File 'ext/devil/ruby_il.c'

static VALUE il_SetData(VALUE obj, VALUE rb_Data) {
    /* ILvoid */
    void* data = ImageData2Arr(rb_Data);
    ILboolean flag = ilSetData(data);
    return flag ? Qtrue : Qfalse;
}

+ (Object) SetInteger

+ (Object) SetPixels

+ (Object) TexImage

+ (Object) ToBlob

this function is not actually in the DevIL API, but im adding it here for convenience



# File 'ext/devil/ruby_il.c'

static VALUE bf_ToBlob(VALUE obj)
{
    ILuint width, height, saved_image, copy_image;
    char * img_ptr;
    VALUE blob;

    saved_image = ilGetInteger(IL_CUR_IMAGE);

    /* make a copy of the current image */
    copy_image = ilCloneCurImage();

    ilBindImage(copy_image);
    
    /* ensure the image is int RGBA UNSIGNED_BYTE format for blob */
    ilConvertImage(IL_RGBA, IL_UNSIGNED_BYTE);

    width = ilGetInteger(IL_IMAGE_WIDTH);
    height = ilGetInteger(IL_IMAGE_HEIGHT);

    img_ptr = (char *)ilGetData();

    blob = rb_str_new(img_ptr, 4 * width * height);

    /* restore saved binding */
    ilBindImage(saved_image);

    ilDeleteImages(1, &copy_image);

    return blob;
}