[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2-demos] master 850cb19 1/2: * graph/gblbgra.h: Make it wotk fo
From: |
Alexei Podtelezhnikov |
Subject: |
[freetype2-demos] master 850cb19 1/2: * graph/gblbgra.h: Make it wotk for all destination targets. |
Date: |
Mon, 21 May 2018 23:04:50 -0400 (EDT) |
branch: master
commit 850cb199d5a23e5171f110d5cc67c7a90c7d503b
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>
* graph/gblbgra.h: Make it wotk for all destination targets.
---
ChangeLog | 4 ++++
graph/gblany.h | 2 --
graph/gblbgra.h | 39 ++++++++++++++++++++-------------------
3 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index fe64aef..4a50165 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-05-21 Alexei Podtelezhnikov <address@hidden>
+
+ * graph/gblbgra.h: Make it wotk for all destination targets.
+
2018-05-19 Alexei Podtelezhnikov <address@hidden>
[graph] Fast "powerless" gamma ramps.
diff --git a/graph/gblany.h b/graph/gblany.h
index 0e4173a..21a1721 100644
--- a/graph/gblany.h
+++ b/graph/gblany.h
@@ -119,8 +119,6 @@ static void
GCONCAT( _gblender_blit_bgra_, GDST_TYPE )( GBlenderBlit blit,
GBlenderPixel color )
{
- GBlender blender = blit->blender;
-
(void)color; /* unused */
#include "gblbgra.h"
diff --git a/graph/gblbgra.h b/graph/gblbgra.h
index 1cdb1ea..c7a60b6 100644
--- a/graph/gblbgra.h
+++ b/graph/gblbgra.h
@@ -3,8 +3,6 @@
const unsigned char* src_line = blit->src_line;
unsigned char* dst_line = blit->dst_line;
- gblender_use_channels( blender, 0 );
-
do
{
const unsigned char* src = src_line + blit->src_x * 4;
@@ -13,12 +11,10 @@
do
{
- unsigned int a = GBLENDER_SHADE_INDEX(src[3]);
- unsigned int ra = src[3];
-
- unsigned int b = src[0];
- unsigned int g = src[1];
- unsigned int r = src[2];
+ unsigned int pix_b = src[0];
+ unsigned int pix_g = src[1];
+ unsigned int pix_r = src[2];
+ unsigned int a = src[3];
if ( a == 0 )
@@ -27,21 +23,27 @@
}
else if ( a == 255 )
{
- dst[0] = (unsigned char)r;
- dst[1] = (unsigned char)g;
- dst[2] = (unsigned char)b;
+ GDST_STOREC(dst,pix_r,pix_g,pix_b);
}
else
{
- unsigned int ba = 255 - ra;
- unsigned int br = dst[0];
- unsigned int bb = dst[1];
- unsigned int bg = dst[2];
+ GBlenderPixel back;
+
+ GDST_READ(dst,back);
+ {
+ unsigned int ba = 255 - a;
+ unsigned int back_r = (back >> 16) & 255;
+ unsigned int back_g = (back >> 8) & 255;
+ unsigned int back_b = (back) & 255;
- dst[0] = (unsigned char)(br * ba / 255 + r);
- dst[1] = (unsigned char)(bg * ba / 255 + g);
- dst[2] = (unsigned char)(bb * ba / 255 + b);
+
+ pix_r = (back_r * ba / 255 + pix_r);
+ pix_g = (back_g * ba / 255 + pix_g);
+ pix_b = (back_b * ba / 255 + pix_b);
+ }
+
+ GDST_STOREC(dst,pix_r,pix_g,pix_b);
}
src += 4;
@@ -53,4 +55,3 @@
dst_line += blit->dst_pitch;
} while ( --h > 0 );
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2-demos] master 850cb19 1/2: * graph/gblbgra.h: Make it wotk for all destination targets.,
Alexei Podtelezhnikov <=