Sprite accepts alpha mod parameter; duplicate texture method
This commit is contained in:
parent
74ca4da69a
commit
605360bae5
|
@ -194,6 +194,7 @@ void Sprite::update()
|
|||
{
|
||||
SDL_Texture* texture = frames[frame_ii];
|
||||
SDL_Renderer* renderer = get_root()->renderer;
|
||||
SDL_SetTextureAlphaMod(texture, alpha_mod);
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
SDL_RenderCopyF(renderer, texture, NULL, box.get_rect());
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ struct Sprite : Node
|
|||
Animation blink_animation = Animation(&Sprite::toggle_hidden, this, 500);
|
||||
bool is_hidden = false;
|
||||
glm::vec2 step = {0, 0};
|
||||
Uint8 alpha_mod = 255;
|
||||
|
||||
Sprite(Node*);
|
||||
Sprite(Node*, std::string);
|
||||
|
|
|
@ -35,6 +35,16 @@ void sfw::fill_texture(SDL_Renderer* renderer, SDL_Texture* texture, SDL_Texture
|
|||
}
|
||||
}
|
||||
|
||||
SDL_Texture* sfw::duplicate_texture(SDL_Renderer* renderer, SDL_Texture* texture)
|
||||
{
|
||||
Box box = get_texture_box(texture);
|
||||
SDL_Texture* duplicate = SDL_CreateTexture(
|
||||
renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, box.get_w(), box.get_h());
|
||||
SDL_SetRenderTarget(renderer, duplicate);
|
||||
SDL_RenderCopyF(renderer, texture, NULL, NULL);
|
||||
return duplicate;
|
||||
}
|
||||
|
||||
std::vector<fs::path> sfw::glob(fs::path query)
|
||||
{
|
||||
fs::path basename = query.parent_path();
|
||||
|
|
|
@ -23,6 +23,7 @@ namespace sfw
|
|||
Box get_texture_box(SDL_Texture*);
|
||||
void fill_texture(SDL_Renderer*, SDL_Texture*, int, int, int, int = 0xff);
|
||||
void fill_texture(SDL_Renderer*, SDL_Texture*, SDL_Texture*);
|
||||
SDL_Texture* duplicate_texture(SDL_Renderer*, SDL_Texture*);
|
||||
std::vector<fs::path> glob(fs::path);
|
||||
fs::path get_next_file_name(
|
||||
fs::path, int = 0, std::string = "", std::string = "");
|
||||
|
|
Loading…
Reference in New Issue