/usr/include/Gem/Utils/PixPete.h is in gem-dev 1:0.93.3-10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | /*-----------------------------------------------------------------
LOG
GEM - Graphics Environment for Multimedia
helper stuff for ports of Pete's Plugins
http://www.petewarden.com
Copyright (c) 2004-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.
-----------------------------------------------------------------*/
#ifndef _INCLUDE__GEM_UTILS_PIXPETE_H_
#define _INCLUDE__GEM_UTILS_PIXPETE_H_
#include <stdlib.h>
// utility functions from PeteHelpers.h
#ifndef _MSC_VER
# include <stdint.h>
typedef uint32_t U32;
typedef uint16_t U16;
typedef uint8_t U8;
#else
typedef unsigned long U32;
typedef unsigned short U16;
typedef unsigned char U8;
#endif
/* is this only on my system ?
i thought Gem's YUV is UYVY and not YVYU
seems weird... (jmz)
*/
#ifdef __APPLE__
# define SHIFT_ALPHA (24)
# define SHIFT_RED (16)
# define SHIFT_GREEN (8)
# define SHIFT_BLUE (0)
# define SHIFT_U (24)
# define SHIFT_Y1 (16)
# define SHIFT_V (8)
# define SHIFT_Y2 (0)
#else
# define SHIFT_ALPHA (24)
# define SHIFT_RED (16)
# define SHIFT_GREEN (8)
# define SHIFT_BLUE (0)
# define SHIFT_U (0)
# define SHIFT_Y1 (8)
# define SHIFT_V (16)
# define SHIFT_Y2 (24)
#endif
const float Pete_Pi=3.141582f;
const float Pete_TwoPi=(2.0f*Pete_Pi);
const float Pete_HalfPi=(0.5f*Pete_Pi);
static inline void Pete_ZeroMemory(void* pMemory,int nCount) {
char* pCurrent=(char*)pMemory;
char* pEnd=(pCurrent+nCount);
// while (pCurrent<pEnd) *pCurrent=0;
// pCurrent+=1;
// }
while(pCurrent<pEnd)*pCurrent++=0;
// memset(pMemory,0,nCount);
}
typedef U32 PETE_PIXELDATA32;
#define SIZEOF_PETE_PIXELDATA32 (4)
typedef U32 PETE_PIXELDATA24;
#define SIZEOF_PETE_PIXELDATA24 (3)
typedef U16 PETE_PIXELDATA16;
#define SIZEOF_PETE_PIXELDATA16 (2)
static inline void Pete_CopyAndConvert24BitTo32Bit(PETE_PIXELDATA24* pSource,PETE_PIXELDATA32* pOutput,int nPixelCount) {
char* pSourceEnd=((char*)pSource)+(nPixelCount*SIZEOF_PETE_PIXELDATA24);
char* pCurrentSource=((char*)pSource);
char* pCurrentOutput=((char*)pOutput);
while (pCurrentSource<pSourceEnd) {
*((PETE_PIXELDATA32*)pCurrentOutput)=
*((PETE_PIXELDATA24*)pCurrentSource);
pCurrentSource+=SIZEOF_PETE_PIXELDATA24;
pCurrentOutput+=SIZEOF_PETE_PIXELDATA32;
}
}
static inline void Pete_CopyAndConvert32BitTo24Bit(PETE_PIXELDATA32* pSource,PETE_PIXELDATA24* pOutput,int nPixelCount) {
char* pSourceEnd=((char*)pSource)+(nPixelCount*SIZEOF_PETE_PIXELDATA32);
char* pCurrentSource=((char*)pSource);
char* pCurrentOutput=((char*)pOutput);
while (pCurrentSource<pSourceEnd) {
*((PETE_PIXELDATA24*)pCurrentOutput)=
*((PETE_PIXELDATA32*)pCurrentSource);
pCurrentSource+=SIZEOF_PETE_PIXELDATA32;
pCurrentOutput+=SIZEOF_PETE_PIXELDATA24;
}
}
static inline void Pete_InPlaceConvert24BitTo32Bit(PETE_PIXELDATA24* pBuffer,int nPixelCount) {
char* pBufferStart=(char*)pBuffer;
char* pBuffer32Current=(pBufferStart+((nPixelCount-1)*SIZEOF_PETE_PIXELDATA32));
char* pBuffer24Current=(pBufferStart+((nPixelCount-1)*SIZEOF_PETE_PIXELDATA24));
while (pBuffer32Current>=pBufferStart) {
*((PETE_PIXELDATA32*)pBuffer32Current)=
*((PETE_PIXELDATA24*)pBuffer24Current);
pBuffer32Current-=SIZEOF_PETE_PIXELDATA32;
pBuffer24Current-=SIZEOF_PETE_PIXELDATA24;
}
}
static inline void Pete_CopyAndConvert16Bit565To32Bit(PETE_PIXELDATA16* pSource,PETE_PIXELDATA32* pOutput,int nPixelCount) {
char* pSourceEnd=((char*)pSource)+(nPixelCount*SIZEOF_PETE_PIXELDATA16);
char* pCurrentSource=((char*)pSource);
char* pCurrentOutput=((char*)pOutput);
while (pCurrentSource<pSourceEnd) {
PETE_PIXELDATA16 SourceColour=
*((PETE_PIXELDATA16*)pCurrentSource);
const int nMaskedRed=(SourceColour>>11)&31;
const int nMaskedGreen=(SourceColour>>5)&63;
const int nMaskedBlue=(SourceColour>>0)&31;
const int nNormalizedRed=(nMaskedRed<<3)|(nMaskedRed>>2);
const int nNormalizedGreen=(nMaskedGreen<<2)|(nMaskedGreen>>4);
const int nNormalizedBlue=(nMaskedBlue<<3)|(nMaskedBlue>>2);
const PETE_PIXELDATA32 OutputColour=
(nNormalizedRed<<16)|
(nNormalizedGreen<<8)|
(nNormalizedBlue<<0);
*((PETE_PIXELDATA32*)pCurrentOutput)=OutputColour;
pCurrentSource+=SIZEOF_PETE_PIXELDATA16;
pCurrentOutput+=SIZEOF_PETE_PIXELDATA32;
}
}
static inline void Pete_CopyAndConvert32BitTo16Bit565(PETE_PIXELDATA32* pSource,PETE_PIXELDATA16* pOutput,int nPixelCount) {
char* pSourceEnd=((char*)pSource)+(nPixelCount*SIZEOF_PETE_PIXELDATA32);
char* pCurrentSource=((char*)pSource);
char* pCurrentOutput=((char*)pOutput);
while (pCurrentSource<pSourceEnd) {
PETE_PIXELDATA32 SourceColour=
*((PETE_PIXELDATA32*)pCurrentSource);
const int nSourceRed=(SourceColour>>16)&0xff;
const int nSourceGreen=(SourceColour>>8)&0xff;
const int nSourceBlue=(SourceColour>>0)&0xff;
const int nMaskedRed=(nSourceRed>>3);
const int nMaskedGreen=(nSourceGreen>>2);
const int nMaskedBlue=(nSourceBlue>>3);
PETE_PIXELDATA16 OutputColour=
(nMaskedRed<<11)|
(nMaskedGreen<<5)|
(nMaskedBlue<<0);
*((PETE_PIXELDATA16*)pCurrentOutput)=OutputColour;
pCurrentSource+=SIZEOF_PETE_PIXELDATA32;
pCurrentOutput+=SIZEOF_PETE_PIXELDATA16;
}
}
typedef void* SPete_MemHandle;
inline SPete_MemHandle Pete_NewHandle(int nBytesToAlloc) {
return malloc(nBytesToAlloc);
}
inline void Pete_FreeHandle(SPete_MemHandle InHandle) {
free(InHandle);
}
inline void* Pete_LockHandle(SPete_MemHandle InHandle) {
return InHandle;
}
inline void Pete_UnLockHandle(SPete_MemHandle InHandle) {
// do nothing
}
const int cnBiggestSignedInt=0x7fffffff;
inline int GetLuminance(const U32 inColour) {
const int nRed=(inColour&(0xff<<SHIFT_RED))>>16;
const int nGreen=(inColour&(0xff<<SHIFT_GREEN))>>8;
const int nBlue=(inColour&(0xff<<SHIFT_BLUE))>>0;
const int nLuminance =
((77 * nRed)+
(150* nGreen)+ // used to be 50 which is plain wrong
(29 * nBlue));
return nLuminance;
}
#endif /* _INCLUDE__GEM_UTILS_PIXPETE_H_ */
// end of PeteHelpers.h stuff
|