mirror of
https://github.com/love2d/love-android.git
synced 2026-08-20 12:40:28 +02:00
added dependencies and build files (loosely inspired by Sebastian Dorda's love-native-android)
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Sources
|
||||
// Copyright (C) 2000 by Denton Woods
|
||||
// Last modified: 11/23/2000 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: openilut/allegro.c
|
||||
//
|
||||
// Description: Allegro functions for images
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif //HAVE_CONFIG_H
|
||||
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
#include "ilut_allegro.h"
|
||||
#endif
|
||||
|
||||
#include "ilut_internal.h"
|
||||
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
|
||||
ILboolean ilConvertPal(ILenum DestFormat);
|
||||
|
||||
// Does not account for converting luminance...
|
||||
BITMAP* ILAPIENTRY ilutConvertToAlleg(PALETTE Pal)
|
||||
{
|
||||
BITMAP *Bitmap;
|
||||
ILimage *TempImage;
|
||||
ILuint i = 0, j = 0;
|
||||
|
||||
ilutCurImage = ilGetCurImage();
|
||||
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Should be IL_BGR(A), but Djgpp screws up somewhere along the line.
|
||||
if (ilutCurImage->Format == IL_RGB || ilutCurImage->Format == IL_RGBA) {
|
||||
iluSwapColours();
|
||||
}
|
||||
|
||||
if (ilutCurImage->Origin == IL_ORIGIN_LOWER_LEFT)
|
||||
iluFlipImage();
|
||||
if (ilutCurImage->Type > IL_UNSIGNED_BYTE) {} // Can't do anything about this right now...
|
||||
if (ilutCurImage->Type == IL_BYTE) {} // Can't do anything about this right now...
|
||||
|
||||
Bitmap = create_bitmap_ex(ilutCurImage->Bpp * 8, ilutCurImage->Width, ilutCurImage->Height);
|
||||
if (Bitmap == NULL) {
|
||||
return IL_FALSE;
|
||||
}
|
||||
memcpy(Bitmap->dat, ilutCurImage->Data, ilutCurImage->SizeOfData);
|
||||
|
||||
// Should we make this toggleable?
|
||||
if (ilutCurImage->Bpp == 8 && ilutCurImage->Pal.PalType != IL_PAL_NONE) {
|
||||
// Use the image's palette if there is one
|
||||
|
||||
// ilConvertPal is destructive to the original image
|
||||
// @TODO: Use new ilCopyPal!!!
|
||||
TempImage = ilNewImage(ilutCurImage->Width, ilutCurImage->Height, ilutCurImage->Depth, ilutCurImage->Bpp, 1);
|
||||
ilCopyImageAttr(TempImage, ilutCurImage);
|
||||
ilSetCurImage(TempImage);
|
||||
|
||||
if (!ilConvertPal(IL_PAL_RGB24)) {
|
||||
destroy_bitmap(Bitmap);
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (; i < ilutCurImage->Pal.PalSize && i < 768; i += 3, j++) {
|
||||
Pal[j].r = TempImage->Pal.Palette[i+0];
|
||||
Pal[j].g = TempImage->Pal.Palette[i+1];
|
||||
Pal[j].b = TempImage->Pal.Palette[i+2];
|
||||
Pal[j].filler = 255;
|
||||
}
|
||||
|
||||
ilCloseImage(TempImage);
|
||||
ilSetCurImage(ilutCurImage);
|
||||
}
|
||||
|
||||
return Bitmap;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
BITMAP* ILAPIENTRY ilutAllegLoadImage(ILstring FileName)
|
||||
{
|
||||
ILuint ImgId;
|
||||
PALETTE Pal;
|
||||
|
||||
ilGenImages(1, &ImgId);
|
||||
ilBindImage(ImgId);
|
||||
if (!ilLoadImage(FileName)) {
|
||||
ilDeleteImages(1, &ImgId);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ilDeleteImages(1, &ImgId);
|
||||
|
||||
return ilutConvertToAlleg(Pal);
|
||||
}
|
||||
#endif//_WIN32_WCE
|
||||
|
||||
|
||||
// Unfinished
|
||||
ILboolean ILAPIENTRY ilutAllegFromBitmap(BITMAP *Bitmap)
|
||||
{
|
||||
ilutCurImage = ilGetCurImage();
|
||||
if (ilutCurImage == NULL) {
|
||||
ilSetError(ILUT_ILLEGAL_OPERATION);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (Bitmap == NULL || Bitmap->w == 0 || Bitmap->h == 0) {
|
||||
ilSetError(ILUT_INVALID_PARAM);
|
||||
return IL_FALSE;
|
||||
}
|
||||
|
||||
if (!ilTexImage(Bitmap->w, Bitmap->h, 1, 3, IL_RGB, IL_UNSIGNED_BYTE, NULL))
|
||||
return IL_FALSE;
|
||||
|
||||
ilutCurImage->Origin = IL_ORIGIN_LOWER_LEFT; // I have no idea.
|
||||
|
||||
return IL_TRUE;
|
||||
}
|
||||
|
||||
#endif//ILUT_USE_ALLEGRO
|
||||
|
||||
Reference in New Issue
Block a user