added flip to sprite, temporary
This commit is contained in:
parent
27b8ca961a
commit
df816e2092
2 changed files with 30 additions and 0 deletions
|
|
@ -51,6 +51,23 @@ void ARC_Sprite_Copy(ARC_Sprite **newSprite, ARC_Sprite *oldSprite);
|
||||||
*/
|
*/
|
||||||
void ARC_Sprite_Render(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds);
|
void ARC_Sprite_Render(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds);
|
||||||
|
|
||||||
|
//TODO: move this to a better location
|
||||||
|
typedef enum ARC_Sprite_Axis {
|
||||||
|
ARC_SPRITE_AXIS_NONE = 0x00,
|
||||||
|
ARC_SPRITE_AXIS_Y = 0x01,
|
||||||
|
ARC_SPRITE_AXIS_X = 0x02,
|
||||||
|
} ARC_Sprite_Axix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief renders ARC_Sprite type with flip
|
||||||
|
*
|
||||||
|
* @param sprite ARC_Sprite that will be rendered
|
||||||
|
* @param renderer ARC_Renderer that is handling rendering
|
||||||
|
* @param renderBounds area of renderer that ARC_Sprite will be rendered to
|
||||||
|
* @param axis axis to flip sprite
|
||||||
|
*/
|
||||||
|
void ARC_Sprite_RenderFlip(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds, enum ARC_Sprite_Axis axis);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief renders ARC_Sprite type with rotation
|
* @brief renders ARC_Sprite type with rotation
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,19 @@ void ARC_Sprite_Render(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *ren
|
||||||
SDL_RenderCopy((SDL_Renderer *)renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds);
|
SDL_RenderCopy((SDL_Renderer *)renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ARC_Sprite_RenderFlip(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds, enum ARC_Sprite_Axis axis){
|
||||||
|
SDL_RendererFlip flip = SDL_FLIP_NONE;
|
||||||
|
if(axis & ARC_SPRITE_AXIS_X){
|
||||||
|
flip |= SDL_FLIP_HORIZONTAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(axis & ARC_SPRITE_AXIS_Y){
|
||||||
|
flip |= SDL_FLIP_VERTICAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_RenderCopyEx((SDL_Renderer *)renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds, 0.0, NULL, flip);
|
||||||
|
}
|
||||||
|
|
||||||
void ARC_Sprite_RenderRotated(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds, ARC_Point *center, double angle){
|
void ARC_Sprite_RenderRotated(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Rect *renderBounds, ARC_Point *center, double angle){
|
||||||
SDL_RenderCopyEx((SDL_Renderer *)renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds, angle, (SDL_Point *)center, SDL_FLIP_NONE);
|
SDL_RenderCopyEx((SDL_Renderer *)renderer, sprite->spritesheet->texture, (SDL_Rect *)sprite->frames->data + *sprite->frameIndex, (SDL_Rect *)renderBounds, angle, (SDL_Point *)center, SDL_FLIP_NONE);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue