void iV_DrawImageRepeatY(IMAGEFILE *ImageFile, UWORD ID, int x, int y, int Height) { int vRep, vRemainder; assertValidImage(ImageFile, ID); const ImageDef *Image = &ImageFile->imageDefs[ID]; pie_SetRendMode(REND_OPAQUE); pie_SetAlphaTest(true); PIERECT dest; Vector2i pieImage = makePieImage(ImageFile, ID, &dest, x, y); vRemainder = Height % Image->Height; for (vRep = 0; vRep < Height / Image->Height; vRep++) { pie_DrawImage(ImageFile, ID, pieImage, &dest); dest.y += Image->Height; } // draw remainder if (vRemainder > 0) { pieImage.y = vRemainder; dest.h = vRemainder; pie_DrawImage(ImageFile, ID, pieImage, &dest); } }
// Repeat a texture void iV_DrawImageRepeatX(IMAGEFILE *ImageFile, UWORD ID, int x, int y, int Width) { int hRep, hRemainder; assertValidImage(ImageFile, ID); const ImageDef *Image = &ImageFile->imageDefs[ID]; pie_SetRendMode(REND_OPAQUE); pie_SetAlphaTest(true); PIERECT dest; Vector2i pieImage = makePieImage(ImageFile, ID, &dest, x, y); hRemainder = Width % Image->Width; for (hRep = 0; hRep < Width / Image->Width; hRep++) { pie_DrawImage(ImageFile, ID, pieImage, &dest); dest.x += Image->Width; } // draw remainder if (hRemainder > 0) { pieImage.x = hRemainder; dest.w = hRemainder; pie_DrawImage(ImageFile, ID, pieImage, &dest); } }
void iV_DrawImageTc(Image image, Image imageTc, int x, int y, PIELIGHT colour) { if (!assertValidImage(image.images, image.id) || !assertValidImage(imageTc.images, imageTc.id)) { return; } PIERECT dest; Vector2i pieImage = makePieImage(image.images, image.id, &dest, x, y); Vector2i pieImageTc = makePieImage(imageTc.images, imageTc.id); pie_SetRendMode(REND_ALPHA); pie_DrawImage(image.images, image.id, pieImage, &dest); pie_DrawImage(imageTc.images, imageTc.id, pieImageTc, &dest, colour); }
void iV_DrawImageTc(IMAGEFILE *imageFile, unsigned id, unsigned idTc, int x, int y, PIELIGHT colour) { if (!assertValidImage(imageFile, id) || !assertValidImage(imageFile, idTc)) { return; } PIERECT dest; PIEIMAGE pieImage = makePieImage(imageFile, id, &dest, x, y); PIEIMAGE pieImageTc = makePieImage(imageFile, idTc); pie_SetRendMode(REND_ALPHA); pie_SetAlphaTest(true); pie_DrawImage(&pieImage, &dest); pie_DrawImage(&pieImageTc, &dest, colour); }
void iV_DrawImage(IMAGEFILE *ImageFile, UWORD ID, int x, int y) { if (!assertValidImage(ImageFile, ID)) { return; } PIERECT dest; Vector2i pieImage = makePieImage(ImageFile, ID, &dest, x, y); pie_SetRendMode(REND_ALPHA); pie_DrawImage(ImageFile, ID, pieImage, &dest); }
void iV_DrawImageScaled(IMAGEFILE *ImageFile, UWORD ID, int x, int y, int w, int h) { if (!assertValidImage(ImageFile, ID)) { return; } PIERECT dest; Vector2i pieImage = makePieImage(ImageFile, ID, &dest, x, y); dest.w = w; dest.h = h; pie_SetRendMode(REND_ALPHA); pie_SetAlphaTest(true); pie_DrawImage(ImageFile, ID, pieImage, &dest); }
void iV_DrawImageRect(IMAGEFILE *ImageFile, UWORD ID, int x, int y, int Width, int Height) { SDWORD hRep, hRemainder, vRep, vRemainder; assertValidImage(ImageFile, ID); ImageDef *Image = &ImageFile->imageDefs[ID]; pie_SetRendMode(REND_OPAQUE); pie_SetAlphaTest(true); PIERECT dest; PIEIMAGE pieImage = makePieImage(ImageFile, ID, &dest, x, y); vRemainder = Height % Image->Height; hRemainder = Width % Image->Width; for (vRep = 0; vRep < Height/Image->Height; vRep++) { pieImage.tw = Image->Width; dest.x = x + Image->XOffset; dest.w = Image->Width; for (hRep = 0; hRep < Width/Image->Width; hRep++) { pie_DrawImage(&pieImage, &dest); dest.x += Image->Width; } //draw remainder if (hRemainder > 0) { pieImage.tw = hRemainder; dest.w = hRemainder; pie_DrawImage(&pieImage, &dest); } dest.y += Image->Height; } //draw remainder if (vRemainder > 0) { //as above pieImage.tw = Image->Width; dest.x = x + Image->XOffset; dest.w = Image->Width; pieImage.th = vRemainder; dest.h = vRemainder; for (hRep = 0; hRep < Width/Image->Width; hRep++) { pie_DrawImage(&pieImage, &dest); dest.x += Image->Width; } //draw remainder if (hRemainder > 0) { pieImage.tw = hRemainder; dest.w = hRemainder; pie_DrawImage(&pieImage, &dest); } } }