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);
|
||||
|
||||
//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
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
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){
|
||||
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