Ejemplo n.º 1
0
ILuint iGetActiveNum(ILenum Type)
{
	ILimage *BaseImage;
	ILuint Num = 0;

	if (iCurImage == NULL) {
		ilSetError(IL_ILLEGAL_OPERATION);
		return 0;
	}

	BaseImage = iGetBaseImage();

	if (BaseImage == iCurImage)
		return 0;

	switch (Type)
	{
		case IL_ACTIVE_IMAGE:
			BaseImage = BaseImage->Next;
			break;
		case IL_ACTIVE_MIPMAP:
			BaseImage = BaseImage->Mipmaps;
			break;
		case IL_ACTIVE_LAYER:
			BaseImage = BaseImage->Layers;
			break;
	}

	do {
		if (BaseImage == NULL)
			return 0;
		Num++;
		if (BaseImage == iCurImage)
			return Num;
	} while ((BaseImage = BaseImage->Next));

	//ilSetError(IL_ILLEGAL_OPERATION);

	return 0;
}
Ejemplo n.º 2
0
//! Internal function to figure out where we are in an image chain.
//@TODO: This may get much more complex with mipmaps under faces, etc.
ILAPI ILuint iGetActiveNum(ILenum Type)
{
	ILimage *BaseImage;
	ILuint Num = 0;

	if (iCurImage == NULL) {
		il2SetError(IL_ILLEGAL_OPERATION);
		return 0;
	}

	BaseImage = iGetBaseImage();
	if (BaseImage == iCurImage)
		return 0;

	switch (Type)
	{
		case IL_ACTIVE_IMAGE:
			BaseImage = BaseImage->Next;
			do {
				if (BaseImage == NULL)
					return 0;
				Num++;
				if (BaseImage == iCurImage)
					return Num;
			} while ((BaseImage = BaseImage->Next));
			break;
		case IL_ACTIVE_MIPMAP:
			BaseImage = BaseImage->Mipmaps;
			do {
				if (BaseImage == NULL)
					return 0;
				Num++;
				if (BaseImage == iCurImage)
					return Num;
			} while ((BaseImage = BaseImage->Mipmaps));
			break;
		/*case IL_ACTIVE_LAYER:
			BaseImage = BaseImage->Layers;
			do {
				if (BaseImage == NULL)
					return 0;
				Num++;
				if (BaseImage == iCurImage)
					return Num;
			} while ((BaseImage = BaseImage->Layers));
			break;*/
		case IL_ACTIVE_FACE:
			BaseImage = BaseImage->Faces;
			do {
				if (BaseImage == NULL)
					return 0;
				Num++;
				if (BaseImage == iCurImage)
					return Num;
			} while ((BaseImage = BaseImage->Faces));
			break;
	}

	//@TODO: Any error needed here?

	return 0;
}