aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorheavydemon21 <nielsstunnebrink1@gmail.com>2024-12-02 19:18:41 +0100
committerheavydemon21 <nielsstunnebrink1@gmail.com>2024-12-02 19:18:41 +0100
commitcffa9f014c67133dc48569beb53a5bd6cb166faa (patch)
treeddbc7e83cb71f1b94f0052ebc912b0027b4be921 /src
parent9e1d1f0952ed09ee4b0c241fad3d0d66b380b1a3 (diff)
rendering color working
Diffstat (limited to 'src')
-rw-r--r--src/crepe/facade/SDLContext.cpp4
-rw-r--r--src/crepe/facade/SDLContext.h8
-rw-r--r--src/example/rendering_particle.cpp4
3 files changed, 9 insertions, 7 deletions
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index cfe79d2..aaaec6b 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -1,4 +1,5 @@
#include <SDL2/SDL.h>
+#include <SDL2/SDL_blendmode.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_keycode.h>
#include <SDL2/SDL_rect.h>
@@ -9,6 +10,7 @@
#include <cstddef>
#include <cstdint>
#include <functional>
+#include <iostream>
#include <memory>
#include <stdexcept>
@@ -215,6 +217,7 @@ SDLContext::texture_from_path(const std::string & path) {
std::unique_ptr<SDL_Texture, std::function<void(SDL_Texture *)>> img_texture;
img_texture = {tmp_texture, [](SDL_Texture * texture) { SDL_DestroyTexture(texture); }};
+ SDL_SetTextureBlendMode(img_texture.get(), SDL_BLENDMODE_BLEND);
return img_texture;
}
int SDLContext::get_width(const Texture & ctx) const {
@@ -235,5 +238,6 @@ void SDLContext::set_rbg_texture(const Texture & texture, const uint8_t & r,
}
void SDLContext::set_alpha_texture(const Texture & texture,
const uint8_t & alpha) {
+
SDL_SetTextureAlphaMod(texture.texture.get(), alpha);
}
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index 8d63c43..1c67301 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -162,10 +162,7 @@ private:
SDL_Rect get_dst_rect(const Sprite & sprite, const vec2 & pos, const Camera & cam,
const vec2 & cam_pos, const double & img_scale) const;
/**
- * \brief changes the texture rbg values with the given parameters
- * it sets the allowed color inside a image. So if all the colors are 255 (MAXIMUM)
- * it will show the given texture. however if the one of the colors is reduced it will reduce the
- *
+ * \brief Set an additional color value multiplied into render copy operations.
*
* \param texture the given texture to adjust
* \param r Red color
@@ -175,8 +172,9 @@ private:
void set_rbg_texture(const Texture & texture, const uint8_t & r,
const uint8_t & g, const uint8_t & b);
+
/**
- * \brief Modifies the transparency of the given texture
+ * \brief Set an additional alpha value multiplied into render copy operations.
*
* \param texture modify the given texture alpha channel
* \param alpha alpha channel
diff --git a/src/example/rendering_particle.cpp b/src/example/rendering_particle.cpp
index 3a12144..349d11e 100644
--- a/src/example/rendering_particle.cpp
+++ b/src/example/rendering_particle.cpp
@@ -28,7 +28,7 @@ int main(int argc, char * argv[]) {
ParticleSystem psys{mgr};
AnimatorSystem asys{mgr};
- Color color(255, 255, 255, 255);
+ Color color(255, 255, 255, 100);
auto img = Texture("asset/texture/test_ap43.png");
Sprite & test_sprite = game_object.add_component<Sprite>(
@@ -59,7 +59,7 @@ int main(int argc, char * argv[]) {
});
*/
- auto & cam = game_object.add_component<Camera>(Color::WHITE, ivec2{1080, 720},
+ auto & cam = game_object.add_component<Camera>(Color::RED, ivec2{1080, 720},
vec2{2000, 2000}, 1.0f);
/*