summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 317e5ac)
raw | patch | inline | side by side (parent: 317e5ac)
| author | jucablues <jucablues@users.sourceforge.net> | |
| Thu, 21 Feb 2008 10:38:19 +0000 (10:38 +0000) | ||
| committer | jucablues <jucablues@users.sourceforge.net> | |
| Thu, 21 Feb 2008 10:38:19 +0000 (10:38 +0000) |
* corrected a slight mistake on a comment (!) on fecolormatrix :-P
| src/display/nr-filter-colormatrix.cpp | patch | blob | history | |
| src/display/nr-filter-displacement-map.cpp | patch | blob | history |
index 51017ab029cd8b873b00c51a0e4f9c7fbebde14a..054b3899b41171a84156539a208a82995ca96def 100644 (file)
true);
// this primitive is defined for non-premultiplied RGBA values,
- // thus convert them to that format before blending
+ // thus convert them to that format
if (in->mode != NR_PIXBLOCK_MODE_R8G8B8A8N) {
NRPixBlock *original_in = in;
in = new NRPixBlock;
diff --git a/src/display/nr-filter-displacement-map.cpp b/src/display/nr-filter-displacement-map.cpp
index 5d454e6cdd5fd87cbb1500f923a27f236d9a9dff..1345924fcd0057a2a29c93aa5ce32060477e9997 100644 (file)
#include "display/nr-filter-displacement-map.h"
#include "display/nr-filter-types.h"
#include "display/nr-filter-units.h"
+#include "libnr/nr-blit.h"
#include "libnr/nr-pixops.h"
namespace NR {
out->area.x1 = out_x0 + out_w;
out->area.y1 = out_y0 + out_h;
- nr_pixblock_setup_fast(out, map->mode, out->area.x0, out->area.y0, out->area.x1, out->area.y1, true);
+ nr_pixblock_setup_fast(out, texture->mode, out->area.x0, out->area.y0, out->area.x1, out->area.y1, true);
+
+ // this primitive is defined for non-premultiplied RGBA values,
+ // thus convert them to that format
+ if (map->mode != NR_PIXBLOCK_MODE_R8G8B8A8N) {
+ NRPixBlock *original_map = map;
+ map = new NRPixBlock;
+ nr_pixblock_setup_fast(map, NR_PIXBLOCK_MODE_R8G8B8A8N,
+ original_map->area.x0, original_map->area.y0,
+ original_map->area.x1, original_map->area.y1,
+ false);
+ nr_blit_pixblock_pixblock(map, original_map);
+ }
unsigned char *map_data = NR_PIXBLOCK_PX(map);
unsigned char *texture_data = NR_PIXBLOCK_PX(texture);